From 1e3819092b811c5b6bd7ad9c067aaeaba28e57b0 Mon Sep 17 00:00:00 2001 From: Smilewithoutfalling <91455578+Smilewithoutfalling@users.noreply.github.com> Date: Sat, 10 Oct 2026 08:59:42 +0800 Subject: [PATCH 01/28] =?UTF-8?q?=E9=98=B6=E6=AE=B53=EF=BC=9A.github/workf?= =?UTF-8?q?lows/tests.yml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/tests.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 3d49669..8c6ce05 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -32,5 +32,7 @@ jobs: cache-dependency-path: requirements*.txt - name: 安装依赖 run: python -m pip install -r requirements-dev.txt + - name: 评测数据与生成脚本一致 + run: python scripts/gen_eval_data.py --check - name: pytest run: python -m pytest -q -p no:cacheprovider --durations=10 From 27658396a8b8fd8d8ee691c5590393516821e9c4 Mon Sep 17 00:00:00 2001 From: Smilewithoutfalling <91455578+Smilewithoutfalling@users.noreply.github.com> Date: Sat, 10 Oct 2026 08:59:43 +0800 Subject: [PATCH 02/28] =?UTF-8?q?=E9=98=B6=E6=AE=B53=EF=BC=9Aapp/eval/case?= =?UTF-8?q?s.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/eval/cases.py | 45 ++++++++++++++++++++++++--------------------- 1 file changed, 24 insertions(+), 21 deletions(-) diff --git a/app/eval/cases.py b/app/eval/cases.py index f79584e..04bbb43 100644 --- a/app/eval/cases.py +++ b/app/eval/cases.py @@ -1,23 +1,11 @@ -"""50条标注测试用例,覆盖聚合/过滤/关联/时序四类分析场景。 +"""评测用例:自然语言问题 + 标准答案代码。 -每个用例包含自然语言问题 + 标准答案代码。 +- 原 50 题(data/sample_eval.csv,dataset="sales"),覆盖聚合/过滤/关联/时序; +- 阶段 3 新增 80 题(app/eval/cases_extra.py),3 张合成表,另含应拒答题与歧义题。 """ +import os -from dataclasses import dataclass, field - - -@dataclass -class EvalCase: - id: str - category: str # aggregation | filtering | correlation | timeseries - question: str # 中文自然语言问题 - ground_truth: str # pandas代码,执行后 result = 期望结果 - keywords: list = field(default_factory=list) # 生成代码应包含的关键词 - has_chart: bool = False - # 结果顺序是否计分(B12):只有题目明确要求排序/排名时为 True,比较器据此决定是否比较顺序 - ordered: bool = False - # 题目问"占比"时,比例(0.49)与百分数(49%)都算对(B24 规则 12);问"百分比"的不设 - percent_equiv: bool = False +from app.eval.case_model import EvalCase # noqa: F401 (EvalCase 定义移到 case_model,供 cases_extra 共用) # ============================================================ @@ -216,7 +204,7 @@ class EvalCase: ), EvalCase( id="corr_003", category="correlation", - question="每个产品在各地区的销售额占比", + question="每个产品的销售额在各地区的占比(每个产品内部各地区合计为 100%)", ground_truth="result = df.assign(sales=df['units'] * df['price']).groupby(['product', 'region'])['sales'].sum().groupby(level=0, group_keys=False).apply(lambda x: (x / x.sum() * 100).round(2))", keywords=["groupby", "sum"], percent_equiv=True, @@ -241,7 +229,7 @@ class EvalCase: ), EvalCase( id="corr_007", category="correlation", - question="分析各产品在不同地区的销量标准差,判断分布是否均匀。", + question="先按产品和地区汇总销量,再求每个产品在各地区之间销量的标准差,判断分布是否均匀。", ground_truth="result = df.groupby(['product', 'region'])['units'].sum().groupby(level=0).std().round(2)", keywords=["groupby", "std"], ), @@ -334,7 +322,7 @@ class EvalCase: ), EvalCase( id="ts_011", category="timeseries", - question="每月平均单价的走势是怎样的?", + question="每月的平均单价(按记录简单平均)走势是怎样的?", ground_truth="df['date'] = pd.to_datetime(df['date']); result = df.set_index('date')['price'].resample('ME').mean().round(2)", keywords=["resample", "mean", "price"], ), @@ -352,11 +340,26 @@ class EvalCase: ), ] -ALL_CASES = AGG_CASES + FILT_CASES + CORR_CASES + TS_CASES +SALES_CASES = AGG_CASES + FILT_CASES + CORR_CASES + TS_CASES CATEGORY_MAP = { "aggregation": "聚合", "filtering": "过滤", "correlation": "关联", "timeseries": "时序", + "refusal": "应拒答", + "ambiguity": "歧义", +} + +_DATA = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))), "data") +# 数据表名 -> CSV 路径(相对仓库根目录)。同目录下的同名 .dict.csv 是它的数据字典 +DATASETS = { + "sales": os.path.join(_DATA, "sample_eval.csv"), + "orders": os.path.join(_DATA, "eval", "orders.csv"), + "employees": os.path.join(_DATA, "eval", "employees.csv"), + "inventory": os.path.join(_DATA, "eval", "inventory.csv"), } + +from app.eval.cases_extra import EXTRA_CASES # noqa: E402 + +ALL_CASES = SALES_CASES + EXTRA_CASES From 06ee2ee0369e50f860b00d7b4e711cea91401a90 Mon Sep 17 00:00:00 2001 From: Smilewithoutfalling <91455578+Smilewithoutfalling@users.noreply.github.com> Date: Sat, 10 Oct 2026 08:59:45 +0800 Subject: [PATCH 03/28] =?UTF-8?q?=E9=98=B6=E6=AE=B53=EF=BC=9Aapp/eval/comp?= =?UTF-8?q?arator.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/eval/comparator.py | 78 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 75 insertions(+), 3 deletions(-) diff --git a/app/eval/comparator.py b/app/eval/comparator.py index c4dbb6a..eb5827b 100644 --- a/app/eval/comparator.py +++ b/app/eval/comparator.py @@ -30,7 +30,14 @@ 16. 模型自己起键名的汇总 dict:期望数值时 ≤4 项也可(规则 10 的 Series 仍 ≤3); 期望标签元组(最高/最低月份)时,取 dict 里的标签值按顺序比较。 17. 实际多了"总计/合计/All/Total"汇总行或列(crosstab margins=True)而期望没有 → 去掉再比。 +阶段 3(新评测集的等价写法): + 18. 时间索引的其他写法:期望索引是季度序号 1–4 时,实际 'Q1' / '2024Q1' / 季度 Period / '第一季度' 都可; + 期望是月份时间索引、实际是同一年的月份序号 1–12 → 按月份号对齐; + 期望是时间索引、实际是严格递增的 ISO 周序号(1–53)且长度相同 → 按位置比值; + 期望索引是时间或从 1 起的连续序号时,实际是等长 list/tuple → 按位置比值。 规则之外的形态差异仍判错,需人工抽检(见 DEVLOG)。 + +阶段 3:应拒答题由 is_refusal() 判定("无法回答:<原因>",原因至少 2 个字),不经过上面的规则。 """ import math import re @@ -41,9 +48,25 @@ _MONTH_RE = re.compile(r"^\d{4}-\d{2}$") _QUARTER_RE = re.compile(r"^(?:\d{4})?\s*Q([1-4])$", re.IGNORECASE) _WEEK_RE = re.compile(r"^\d{4}-?W\d{1,2}$", re.IGNORECASE) +_CN_QUARTER_RE = re.compile(r"^(?:\d{4}\s*年?\s*)?第?\s*([一二三四1-4])\s*季度?$") +_CN_NUM = {"一": 1, "二": 2, "三": 3, "四": 4} _MARGIN_LABELS = {"总计", "合计", "总和", "汇总", "all", "total", "sum"} +REFUSAL_PREFIX = "无法回答" + + +def is_refusal(v) -> bool: + """结果契约(阶段 3):数据回答不了时 result = "无法回答:<原因>"。只有前缀、没有原因的不算。""" + if not isinstance(v, str): + return False + s = v.strip() + if not s.startswith(REFUSAL_PREFIX): + return False + reason = s[len(REFUSAL_PREFIX):].strip(" ::,,。.;;-—\n\t") + return len(reason) >= 2 + + # ------------------------------------------------------------------ 入口 def results_equal(actual, expected, float_tol=1e-4, *, ordered=None, percent_equiv=False) -> bool: """actual:模型结果;expected:标准答案。ordered=None 时按 expected 推断。 @@ -158,6 +181,10 @@ def _period_part(x, n: int): m = _QUARTER_RE.match(x.strip()) if m: return int(m.group(1)) if 1 <= n <= 4 else None + m = _CN_QUARTER_RE.match(x.strip()) # 规则 18:'第一季度'、'2024年Q'… + if m and ("季" in x): + g = m.group(1) + return (_CN_NUM.get(g) or int(g)) if 1 <= n <= 4 else None if 1 <= n <= 12: mk = _month_key(x) if mk is not None: @@ -385,13 +412,55 @@ def _series_eq(a: pd.Series, e: pd.Series, tol, ordered) -> bool: return all(_scalar_eq(av[k], v, tol) for k, v in zip(ke, e.values)) # 周/日频等无法按月对齐时,按位置比较数值 return all(_scalar_eq(x, y, tol) for x, y in zip(a.values, e.values)) - # 规则 14:期望索引是月份序号 + # 规则 14:期望索引是月份序号;规则 18:季度序号 parts = _month_numbers(a.index, e.index) if parts is not None: return _mapping_eq(dict(zip(parts, a.values)), dict(zip(e.index, e.values)), tol, ordered) + parts = _quarter_numbers(a.index, e.index) + if parts is not None: + return _mapping_eq(dict(zip(parts, a.values)), dict(zip(e.index, e.values)), tol, ordered) + if _is_time_index(e.index): + # 规则 18:期望是月份时间索引(同一年),实际是月份序号 + parts = _month_numbers(e.index, a.index) + if parts is not None: + return _mapping_eq(dict(zip(a.index, a.values)), dict(zip(parts, e.values)), tol, ordered) + # 规则 18:实际是 ISO 周序号 + if _increasing_ints(a.index, 1, 53): + return all(_scalar_eq(x, y, tol) for x, y in zip(a.values, e.values)) return False +def _increasing_ints(idx, lo, hi) -> bool: + try: + v = [_py(x) for x in idx] + return (len(v) > 0 and all(_is_num(x) and float(x).is_integer() and lo <= x <= hi for x in v) + and all(p < q for p, q in zip(v, v[1:]))) + except Exception: + return False + + +def _quarter_numbers(idx, e_idx): + """规则 18:e_idx 全是 1–4 的整数、idx 全能看作季度时,返回 idx 的季度号列表;否则 None。""" + try: + ev = [_py(x) for x in e_idx] + if not ev or not all(_is_num(x) and float(x).is_integer() and 1 <= x <= 4 for x in ev): + return None + parts = [] + for x in idx: + x = _py(x) + if isinstance(x, pd.Period) and x.freqstr.upper().startswith("Q"): + parts.append(x.quarter) + elif isinstance(x, str): + parts.append(_period_part(x, 4) if (_QUARTER_RE.match(x.strip()) or "季" in x) else None) + else: + parts.append(None) + if None in parts or len(set(parts)) != len(parts): + return None + return parts + except Exception: + return None + + def _month_numbers(idx, e_idx): """规则 14:e_idx 全是 1–12 的整数、idx 全能看作月份时,返回 idx 的月份号列表;否则 None。""" try: @@ -412,8 +481,11 @@ def _vs_series(a, e: pd.Series, tol, ordered) -> bool: if isinstance(a, dict): return _series_eq(pd.Series(a), e, tol, ordered) if isinstance(a, (list, tuple)): - # 只有当期望本身没有有意义的标签(默认整数索引)时才按位置比 - if isinstance(e.index, pd.RangeIndex) and len(a) == len(e): + # 只有当期望本身没有有意义的标签(默认整数索引)时才按位置比; + # 规则 18:期望索引是时间或从 1 起的连续序号(季度 1–4、月份 1–12)时也按位置比 + ordinal = _increasing_ints(e.index, 1, 12) and _py(e.index[0]) == 1 and \ + all(int(_py(q)) - int(_py(p)) == 1 for p, q in zip(e.index, e.index[1:])) + if (isinstance(e.index, pd.RangeIndex) or ordinal or _is_time_index(e.index)) and len(a) == len(e): return all(_scalar_eq(x, y, tol) for x, y in zip(a, e.values)) return False if not isinstance(a, pd.DataFrame): From b803dd5bc53ee548ad9b68d1028ec7165fcbfc7a Mon Sep 17 00:00:00 2001 From: Smilewithoutfalling <91455578+Smilewithoutfalling@users.noreply.github.com> Date: Sat, 10 Oct 2026 08:59:46 +0800 Subject: [PATCH 04/28] =?UTF-8?q?=E9=98=B6=E6=AE=B53=EF=BC=9Aapp/eval/repo?= =?UTF-8?q?rt.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/eval/report.py | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/app/eval/report.py b/app/eval/report.py index 71c63ae..f569e16 100644 --- a/app/eval/report.py +++ b/app/eval/report.py @@ -81,6 +81,20 @@ def run_metadata(llm_config=None, data_path: str | None = None) -> dict: return meta +def datasets_metadata(datasets: dict) -> dict: + """阶段 3:每张数据表的指纹,以及旁边有没有数据字典(B38:sample_eval 以前没有字典,"有/无字典"两组其实一样)。""" + from app.tools.dictionary import dict_path_for + out = {} + for name, path in datasets.items(): + if not os.path.exists(path): + continue + d = dict_path_for(path) + out[name] = {"path": os.path.relpath(path, _REPO).replace(os.sep, "/"), + "sha256": hashlib.sha256(open(path, "rb").read()).hexdigest()[:12], + "dictionary": os.path.exists(d)} + return out + + # ---------------------------------------------------------------- 结果对象的可还原存储 def _enc(x): import math @@ -168,9 +182,11 @@ def __init__(self, results: list, meta: dict | None = None): self.meta = meta or {} self.total = len(results) self.by_category = {} + self.by_dataset = {} for r in results: cat = r["case"].category self.by_category.setdefault(cat, []).append(r) + self.by_dataset.setdefault(getattr(r["case"], "dataset", "sales"), []).append(r) def _items(self, items): return self.results if items is None else items @@ -228,6 +244,7 @@ def block(items): **self.meta, "overall": block(self.results), "by_category": {k: block(v) for k, v in self.by_category.items()}, + "by_dataset": {k: block(v) for k, v in self.by_dataset.items()}, } def to_json(self, path: str, extra: dict | None = None) -> None: @@ -236,7 +253,8 @@ def to_json(self, path: str, extra: dict | None = None) -> None: for r in self.results: c = r["case"] rows.append({ - "id": c.id, "category": c.category, "question": c.question, + "id": c.id, "category": c.category, "dataset": getattr(c, "dataset", "sales"), + "question": c.question, "correct": r.get("correct"), "executed": r.get("executed"), "initial_error": r.get("initial_error"), "infra_error": r.get("infra_error"), "error_kind": r.get("error_kind"), "error": r.get("error"), @@ -283,13 +301,18 @@ def print_summary(self): print("\n 📂 分类指标") print(f" {'分类':<10} {'用例数':<6} {'正确率':<9} {'执行成功率':<11} {'修复率':<8}") print(f" {'-' * 52}") - for cat_key in ["aggregation", "filtering", "correlation", "timeseries"]: + for cat_key in CATEGORY_MAP: b = s["by_category"].get(cat_key) if not b: continue cat_name = CATEGORY_MAP.get(cat_key, cat_key) print(f" {cat_name:<10} {b['n']:<6} {self._pct(b['correctness_rate']):<9} " f"{self._pct(b['execution_success_rate']):<11} {self._pct(b['reviewer_fix_rate']):<8}") + if len(s["by_dataset"]) > 1: + print("\n 🗂 分表指标") + for name, b in s["by_dataset"].items(): + print(f" {name:<10} {b['n']:<6} {self._pct(b['correctness_rate']):<9} " + f"{self._pct(b['execution_success_rate']):<11} {self._pct(b['reviewer_fix_rate']):<8}") print() def print_details(self, verbose=False): From 9d80f0c5403f490b17d08c77ed33c7e4449c393c Mon Sep 17 00:00:00 2001 From: Smilewithoutfalling <91455578+Smilewithoutfalling@users.noreply.github.com> Date: Sat, 10 Oct 2026 08:59:48 +0800 Subject: [PATCH 05/28] =?UTF-8?q?=E9=98=B6=E6=AE=B53=EF=BC=9Aapp/eval/resc?= =?UTF-8?q?ore.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/eval/rescore.py | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/app/eval/rescore.py b/app/eval/rescore.py index 8c3a6ef..e35644d 100644 --- a/app/eval/rescore.py +++ b/app/eval/rescore.py @@ -8,16 +8,14 @@ import json from app.eval.cases import ALL_CASES -from app.eval.comparator import results_equal from app.eval.report import load_obj -from app.tools.csv_io import read_csv -from app.tools.sandbox import run_trusted +from app.eval.runner import EvalRunner, score def rescore(report_path: str, data_path: str | None = None) -> dict: data = json.load(open(report_path, encoding="utf-8")) cases = {c.id: c for c in ALL_CASES} - df = read_csv(data_path or data["data"]) + runner = EvalRunner(data_path or data.get("data")) # 阶段 3:按题目的 dataset 取表 rows, changed, skipped = [], [], [] for row in data["cases"]: case = cases.get(row["id"]) @@ -28,15 +26,14 @@ def rescore(report_path: str, data_path: str | None = None) -> dict: skipped.append(row["id"]) rows.append({"id": row["id"], "category": row["category"], "correct": row.get("correct")}) continue - expected, err = run_trusted(case.ground_truth, df.copy()) + expected_list, err = runner.expected_all(case) try: actual = load_obj(row["actual_obj"]) except Exception: skipped.append(row["id"]) rows.append({"id": row["id"], "category": row["category"], "correct": row.get("correct")}) continue - ok = (err is None) and results_equal(actual, expected, - ordered=case.ordered, percent_equiv=case.percent_equiv) + ok = (err is None) and score(actual, case, expected_list) if ok != row.get("correct"): changed.append({"id": row["id"], "before": row.get("correct"), "after": ok}) rows.append({"id": row["id"], "category": row["category"], "correct": ok}) From 46174b210ae997731bb728089b94ed866a4a6eca Mon Sep 17 00:00:00 2001 From: Smilewithoutfalling <91455578+Smilewithoutfalling@users.noreply.github.com> Date: Sat, 10 Oct 2026 08:59:49 +0800 Subject: [PATCH 06/28] =?UTF-8?q?=E9=98=B6=E6=AE=B53=EF=BC=9Aapp/eval/runn?= =?UTF-8?q?er.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/eval/runner.py | 67 ++++++++++++++++++++++++++++++++++++---------- 1 file changed, 53 insertions(+), 14 deletions(-) diff --git a/app/eval/runner.py b/app/eval/runner.py index 946eba6..99ace58 100644 --- a/app/eval/runner.py +++ b/app/eval/runner.py @@ -6,30 +6,60 @@ - 每题记录耗时与 token;LLM/基础设施失败(error_kind="llm")单独计数,不与"代码写错"混在一起。 """ from app.core import analyze -from app.eval.cases import EvalCase -from app.eval.comparator import results_equal +from app.eval.cases import DATASETS, EvalCase +from app.eval.comparator import is_refusal, results_equal from app.tools.csv_io import read_csv from app.tools.sandbox import run_trusted class EvalRunner: - def __init__(self, df_path: str, *, agent: str = "workflow", llm_config=None, - model_factory=None, use_dictionary: bool = True, max_attempts: int = 3): + def __init__(self, df_path: str | None = None, *, agent: str = "workflow", llm_config=None, + model_factory=None, use_dictionary: bool = True, max_attempts: int = 3, + datasets: dict | None = None): """model_factory:可选,case -> ChatModel。用于离线自检(--oracle)和单测; - 为 None 时用真实模型(llm_config 或环境变量)。""" - self.df_path = df_path - self.df = read_csv(df_path) + 为 None 时用真实模型(llm_config 或环境变量)。 + 阶段 3:每题按 case.dataset 取数据表(DATASETS);df_path 若给出,覆盖 "sales" 表的路径(兼容旧的 --data)。""" + self.datasets = dict(DATASETS if datasets is None else datasets) + if df_path: + self.datasets["sales"] = df_path + self.df_path = self.datasets["sales"] + self._frames = {} self.agent = agent self.llm_config = llm_config self.model_factory = model_factory self.use_dictionary = use_dictionary self.max_attempts = max_attempts - def _run_code(self, code: str): + def path_for(self, case: EvalCase) -> str: + if case.dataset not in self.datasets: + raise KeyError(f"未知数据表 {case.dataset!r},可选:{', '.join(self.datasets)}") + return self.datasets[case.dataset] + + def frame(self, name: str = "sales"): + if name not in self._frames: + self._frames[name] = read_csv(self.datasets[name]) + return self._frames[name] + + @property + def df(self): + return self.frame("sales") + + def _run_code(self, code: str, dataset: str = "sales"): """执行标准答案(可信代码,本进程执行,不走子进程沙箱),返回 (result, error)。""" - result, error = run_trusted(code, self.df.copy()) + result, error = run_trusted(code, self.frame(dataset).copy()) return result, error or None + def expected_all(self, case: EvalCase): + """标准答案及歧义题的其他合理答案。返回 ([结果...], 第一个报错)。""" + outs, first_err = [], None + for code in [case.ground_truth, *case.alt_ground_truths]: + r, err = self._run_code(code, case.dataset) + if err: + first_err = first_err or err + else: + outs.append(r) + return outs, first_err + def run_single(self, case: EvalCase): """执行单条用例,返回结果 dict。 @@ -48,15 +78,15 @@ def run_single(self, case: EvalCase): } # 1. ground truth - expected, gt_error = self._run_code(case.ground_truth) + expected_list, gt_error = self.expected_all(case) if gt_error: out["error"], out["error_kind"] = f"[ground_truth 执行失败] {gt_error}", "ground_truth" return out - out["expected"] = expected + out["expected"] = expected_list[0] # 2. 被测 Agent chat_model = self.model_factory(case) if self.model_factory else None - res = analyze(self.df_path, case.question, agent=self.agent, llm_config=self.llm_config, + res = analyze(self.path_for(case), case.question, agent=self.agent, llm_config=self.llm_config, chat_model=chat_model, max_attempts=self.max_attempts, use_dictionary=self.use_dictionary, log=False) out.update({ @@ -72,8 +102,7 @@ def run_single(self, case: EvalCase): if res.executed: out["executed"] = True out["actual"] = res.result - out["correct"] = results_equal(res.result, expected, ordered=case.ordered, - percent_equiv=case.percent_equiv) + out["correct"] = score(res.result, case, expected_list) return out def run_all(self, cases: list[EvalCase] = None, verbose: bool = False): @@ -96,3 +125,13 @@ def run_all(self, cases: list[EvalCase] = None, verbose: bool = False): print(f"{mark} {detail}") results.append(r) return results + + +def score(actual, case: EvalCase, expected_list: list) -> bool: + """阶段 3 打分:应拒答题看是否拒答且给了原因;其他题拒答即错,否则与任一合理答案相等即对。""" + if case.expect_refusal: + return is_refusal(actual) + if is_refusal(actual): + return False + return any(results_equal(actual, e, ordered=case.ordered, percent_equiv=case.percent_equiv) + for e in expected_list) From 358b656e0f1e0e9517cc78e8dcd3e6f9ae1385bc Mon Sep 17 00:00:00 2001 From: Smilewithoutfalling <91455578+Smilewithoutfalling@users.noreply.github.com> Date: Sat, 10 Oct 2026 08:59:50 +0800 Subject: [PATCH 07/28] =?UTF-8?q?=E9=98=B6=E6=AE=B53=EF=BC=9Aapp/nodes/cod?= =?UTF-8?q?egen.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/nodes/codegen.py | 1 + 1 file changed, 1 insertion(+) diff --git a/app/nodes/codegen.py b/app/nodes/codegen.py index 0fefd72..e97b7e9 100644 --- a/app/nodes/codegen.py +++ b/app/nodes/codegen.py @@ -22,6 +22,7 @@ 问"多少/是多少":给数值;问"各…/每…":给以分组键为索引的 Series 或表;问"哪些/哪条记录":给筛选出的行(DataFrame); 问题含多个小问(如"分别是多少?哪个更高?"):result 用 dict 把每个小问都答上,键用简短中文。 不要把中间结果或整张排序表当作答案;需要的辅助数据放在别的变量里。 + 数据回答不了(表里没有所需的字段或信息)时,不要编造或用别的字段凑:result = '无法回答:<一句话原因>',原因说明缺什么,如 '无法回答:数据中没有成本字段'。 - 只输出 Python 代码,不要任何解释,不要 markdown 代码块标记。 {chart_guide}""" From 0a9f03c6e63cbeb414911e40fbbff716cb5ad799 Mon Sep 17 00:00:00 2001 From: Smilewithoutfalling <91455578+Smilewithoutfalling@users.noreply.github.com> Date: Sat, 10 Oct 2026 08:59:51 +0800 Subject: [PATCH 08/28] =?UTF-8?q?=E9=98=B6=E6=AE=B53=EF=BC=9Aapp/nodes/pla?= =?UTF-8?q?nner.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/nodes/planner.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/nodes/planner.py b/app/nodes/planner.py index 7e47b33..5843630 100644 --- a/app/nodes/planner.py +++ b/app/nodes/planner.py @@ -8,7 +8,8 @@ 用户问题:{question} -请用 3-5 个步骤说明如何用 pandas 分析得到答案。只描述思路,不要写代码。""" +请用 3-5 个步骤说明如何用 pandas 分析得到答案。只描述思路,不要写代码。 +若表里没有回答问题所需的字段或信息,直接写明"数据不足以回答"以及缺少什么,不要用其他字段替代。""" def plan(state, config=None): From dc13c05f6a6354626b47ed39902f6bdfd1045f5e Mon Sep 17 00:00:00 2001 From: Smilewithoutfalling <91455578+Smilewithoutfalling@users.noreply.github.com> Date: Sat, 10 Oct 2026 08:59:52 +0800 Subject: [PATCH 09/28] =?UTF-8?q?=E9=98=B6=E6=AE=B53=EF=BC=9Aapp/nodes/rev?= =?UTF-8?q?iewer.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/nodes/reviewer.py | 1 + 1 file changed, 1 insertion(+) diff --git a/app/nodes/reviewer.py b/app/nodes/reviewer.py index c4be652..bafc327 100644 --- a/app/nodes/reviewer.py +++ b/app/nodes/reviewer.py @@ -25,6 +25,7 @@ 请输出修正后的完整 Python 代码,规则不变: - 用变量 df,不要重新读文件;pd、np、plt 已就绪,无需 import,不要导入其他库。 - 最终答案赋给 result,result 必须直接回答问题:问哪个只给标签本身(不拼说明文字),问多少给数值,问各…给分组结果,多个小问用 dict 全部答上;不要用中间结果代替。 +- 数据回答不了(表里没有所需的字段或信息)时,不要编造或用别的字段凑:result = '无法回答:<一句话原因>',原因说明缺什么,如 '无法回答:数据中没有成本字段'。 - 原代码若画了图,修正后的代码也要画图,并遵守下面的绘图要求。 - 只输出代码,不要解释,不要 markdown 标记。 From 62023c9ef88e353e74aab2398c1327ac2c06e530 Mon Sep 17 00:00:00 2001 From: Smilewithoutfalling <91455578+Smilewithoutfalling@users.noreply.github.com> Date: Sat, 10 Oct 2026 08:59:53 +0800 Subject: [PATCH 10/28] =?UTF-8?q?=E9=98=B6=E6=AE=B53=EF=BC=9Aapp/react=5Fa?= =?UTF-8?q?gent.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/react_agent.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/react_agent.py b/app/react_agent.py index 347aa75..ced09ce 100644 --- a/app/react_agent.py +++ b/app/react_agent.py @@ -78,6 +78,9 @@ def run_python_on_data(code: str) -> str: "问\"各…/每…\"给以分组键为索引的 Series 或表,问\"哪些/哪条记录\"给筛选出的行(DataFrame)," "问题含多个小问时 result 用 dict 把每个小问都答上;数值、说明放在最终中文结论里。" "不要用中间表或整张排序表收尾。" + "如果数据回答不了(表里没有所需的字段或信息),不要编造或用别的字段凑:" + "仍然调用一次 run_python_on_data,代码为 result = '无法回答:<一句话原因>'(原因说明缺什么," + "如 '无法回答:数据中没有成本字段'),结论里同样说明原因。" "如果问题需要图表,请务必画图并保存。\n\n" f"{CHART_GUIDE}\n\n" "最终用中文给出简洁、直接的结论;若已生成图表,说明图表展示了什么。" From 27bb95fec33e75f3e108ae800d9ea046bc28d879 Mon Sep 17 00:00:00 2001 From: Smilewithoutfalling <91455578+Smilewithoutfalling@users.noreply.github.com> Date: Sat, 10 Oct 2026 08:59:54 +0800 Subject: [PATCH 11/28] =?UTF-8?q?=E9=98=B6=E6=AE=B53=EF=BC=9Adocs/DEVLOG.m?= =?UTF-8?q?d?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/DEVLOG.md | 43 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/docs/DEVLOG.md b/docs/DEVLOG.md index e471959..729098f 100644 --- a/docs/DEVLOG.md +++ b/docs/DEVLOG.md @@ -285,7 +285,7 @@ xfail 用 strict 模式:问题一旦修好,对应测试会"意外通过"并 3. 进入阶段 2:子进程沙箱(B01 B02 B03)。 -## [5] 2026-10-09 · 阶段 2 执行隔离(子进程沙箱)· commit <待提交> +## [5] 2026-10-09 · 阶段 2 执行隔离(子进程沙箱)· commit e6a33b2 上一条:[4](59e3625)。 ### 当前技术栈 @@ -343,3 +343,44 @@ xfail 用 strict 模式:问题一旦修好,对应测试会"意外通过"并 1. ~~S 在 Windows 本地验证 Job Object 路径(B36)~~ 已完成(28/28)。 2. 可选:S 用本条代码再跑一轮 Qwen 评测,看 [4] 的修复后 workflow 执行成功率。 3. 阶段 3:评测集扩到 100–150 题,GitHub Actions 跑单测(含 Windows runner,覆盖 B36)。 + +## [6] 2026-10-10 · 阶段 3 评测集扩展 + CI(进行中)· commit <待提交> + +当前阶段:**阶段 3**。CI 已先行合入 master(25d55e2,首轮 4 个组合全过)。 + +### 当前技术栈 +同 [5]。新增 GitHub Actions:ubuntu-latest / windows-latest × Python 3.11 / 3.12,只跑 pytest 与评测数据一致性检查,不调模型、不需要 Key。 + +### 本次完成(对照 [5]) +- 评测集 50 → **130 题**,4 张表:sales 50(原题)、orders 30、employees 25、inventory 25。 + - 新表由 `scripts/gen_eval_data.py` 固定种子(20261010)生成,数据虚构;`--check` 校验文件与脚本逐字节一致(CI 与单测都跑)。 + - orders 故意带脏数据:18 条整行重复、城市缺失 35 条、折扣空值(字典说明"空 = 无折扣"),题面写清是否去重、算哪些状态。 + - 新分类:**应拒答 9 题**(数据里没有成本/年龄/签收时间/加班/离职原因/奖金/价格/店长/供应商),**歧义 8 题**("总销售额""复购率""平均库存"等,`alt_ground_truths` 列出所有合理理解,命中任一即对)。 + - 原 4 类在新表上各加题:聚合 21、过滤 16、关联 12、时序 14。 +- 结果契约加拒答(S 2026-10-10 定):数据回答不了时 `result = "无法回答:<一句原因>"`,原因必须有(≥2 字)。planner / codegen / reviewer / ReAct 提示词同步;ReAct 拒答也要执行一次代码,保证结果可打分。打分:应拒答题看是否拒答且有原因;普通题拒答即错。 +- B32 修文案:corr_003 写明"每个产品内部各地区合计为 100%",corr_007 写明"先按产品和地区汇总再求标准差",ts_011 写明"按记录简单平均"。标准答案未变。 +- 比较器规则 18:季度序号 vs 'Q1'/'2024Q1'/季度 Period/'第一季度';月份时间索引 vs 同年月份序号;时间索引 vs 递增 ISO 周序号;时间/序号索引 vs 等长 list/tuple 按位置比。每条配反例(顺序错、未去重、周起始日错都判错)。 +- runner 按 `case.dataset` 取表;`--data` 只替换 sales 表。`run_eval.py` 新增 `--dataset`、`--category refusal|ambiguity`、`--agent both`(两个 Agent 同批题并排比较正确率、执行成功率、耗时、token、分类、分表,另存 compare JSON)。报告新增 `by_dataset`、每题 `dataset`、`datasets`(每张表的 sha256 与是否有字典)。`--rescore` 支持新表、拒答、歧义。 + +### 新发现 +| ID | 级别 | 位置 | 问题 | 处理 | +|---|---|---|---|---| +| B38 | P1 | data/sample_eval.csv | **评测数据旁一直没有 `sample_eval.dict.csv`**(只有 sample.dict.csv),所以阶段 1 与 1.5 的"workflow 有字典"和"workflow 无字典"其实是同一配置,两组差异只是运行波动;而且旧字典写的取值(3 个地区、3 个产品)与 sample_eval(5 个地区、5 个产品)不符。已新增 `sample_eval.dict.csv`,报告记录每张表是否有字典。RAG 增益需要用新基线重新测 | 3 | + +### 假设与判断 +- 歧义题按"任一合理理解都对"计分,衡量的是"不离谱",不衡量"会不会追问";追问能力等多轮对话(阶段 5)再测。 +- 新增题里的口径说明("重复录入只算一次""保留两位小数")是有意的:普通题测执行,歧义题单独测歧义,避免两种因素混在一个数字里。 +- 原 50 题只改了 3 题的文案,`--dataset sales` 的结果仍可与 [4] 的基线粗略对比(这 3 题除外)。 + +### 当前已知问题 +同 [5],加 B38。B31(网关缓存导致重复运行结果相同)仍待处理:建议 S 用 `--repeat` 时换不缓存的接口或在网关关缓存;B33 留阶段 4。 + +### 指标快照 +- 单测:Linux Python 3.11 **365 passed**,约 3 分钟(oracle 130 题 × 2 个 Agent 占约 80 秒)。 +- oracle:130/130(workflow、react)。 +- 真实模型基线:待 S 跑 `python run_eval.py --agent both`。 + +### 下一步 +1. S 跑新基线:`python run_eval.py --agent both`(约 130 × 2 次调用),以及 `--no-dict` 一组测 RAG 增益(B38 修复后第一次有效对比)。 +2. 根据真实结果复核新题的比较器漏判,再补规则或改题面。 +3. 阶段 4:ReAct 步数上限(B33)、Key 进系统钥匙串。 From e157b24c221f28ffeb1c65ea0f52ae5d4ad1fc17 Mon Sep 17 00:00:00 2001 From: Smilewithoutfalling <91455578+Smilewithoutfalling@users.noreply.github.com> Date: Sat, 10 Oct 2026 08:59:56 +0800 Subject: [PATCH 12/28] =?UTF-8?q?=E9=98=B6=E6=AE=B53=EF=BC=9Arun=5Feval.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- run_eval.py | 158 +++++++++++++++++++++++++++++++++++----------------- 1 file changed, 108 insertions(+), 50 deletions(-) diff --git a/run_eval.py b/run_eval.py index 83367c5..ea99ac8 100644 --- a/run_eval.py +++ b/run_eval.py @@ -1,15 +1,15 @@ -"""评测入口:跑50条标注用例,输出三维指标报告。 +"""评测入口:跑标注用例(阶段 3 起 130 题、4 张表),输出指标报告。 用法: - python run_eval.py # 跑全部50条 - python run_eval.py --category agg # 只跑聚合类 - python run_eval.py --category filt # 只跑过滤类 - python run_eval.py --category corr # 只跑关联类 - python run_eval.py --category ts # 只跑时序类 - python run_eval.py --case agg_001 # 单条调试 + python run_eval.py # 跑全部 130 题 + python run_eval.py --dataset sales # 只跑原 50 题(data/sample_eval.csv),可与阶段 1.5 的基线对比 + python run_eval.py --dataset orders # 只跑某张表:sales / orders / employees / inventory + python run_eval.py --category refusal # 只跑某类:agg / filt / corr / ts / refusal / ambiguity + python run_eval.py --case ord_001 # 单条调试 python run_eval.py --verbose # 详细输出(含code和result) - python run_eval.py --data data/other.csv # 指定数据文件 + python run_eval.py --data data/other.csv # 替换 sales 表的数据文件 python run_eval.py --agent react # 测 ReAct 版(默认工作流版) + python run_eval.py --agent both # 两个 Agent 同一批题各跑一遍,并排比较正确率、耗时、token python run_eval.py --no-dict # 关闭数据字典检索(单独衡量 RAG 增益) python run_eval.py --oracle # 离线自检:假模型直接"生成"标准答案,验证评测流水线与打分口径(不需要 API Key) python run_eval.py --out outputs/eval.json # 另存带 commit SHA 的 JSON 报告 @@ -32,29 +32,34 @@ load_dotenv(os.path.join(os.path.dirname(os.path.abspath(__file__)), ".env")) from app.config import OUTPUT_DIR, ensure_dirs -from app.eval.cases import ALL_CASES, CATEGORY_MAP +from app.eval.cases import ALL_CASES, CATEGORY_MAP, DATASETS from app.eval.runner import EvalRunner from app.core import LLMConfig -from app.eval.report import EvalReport, git_sha, run_metadata +from app.eval.report import EvalReport, datasets_metadata, git_sha, run_metadata +_CAT_ALIAS = { + "agg": "aggregation", "filt": "filtering", "corr": "correlation", "ts": "timeseries", + "ref": "refusal", "amb": "ambiguity", +} -def _select_cases(category: str = None, case_id: str = None): + +def _select_cases(category: str = None, case_id: str = None, dataset: str = None): cases = ALL_CASES if case_id: cases = [c for c in cases if c.id == case_id] if not cases: print(f"未找到用例: {case_id}") sys.exit(1) - elif category: - cat_map = { - "agg": "aggregation", "aggregation": "aggregation", - "filt": "filtering", "filtering": "filtering", - "corr": "correlation", "correlation": "correlation", - "ts": "timeseries", "timeseries": "timeseries", - } - key = cat_map.get(category) - if not key: - print(f"未知分类: {category},可选: agg / filt / corr / ts") + return cases + if dataset and dataset != "all": + if dataset not in DATASETS: + print(f"未知数据表: {dataset},可选: {' / '.join(DATASETS)} / all") + sys.exit(1) + cases = [c for c in cases if c.dataset == dataset] + if category: + key = _CAT_ALIAS.get(category, category) + if key not in CATEGORY_MAP: + print(f"未知分类: {category},可选: {' / '.join(_CAT_ALIAS)}") sys.exit(1) cases = [c for c in cases if c.category == key] return cases @@ -62,11 +67,12 @@ def _select_cases(category: str = None, case_id: str = None): def main(): parser = argparse.ArgumentParser(description="DataChat 评测") - parser.add_argument("--category", "-c", default=None, help="分类: agg/filt/corr/ts") + parser.add_argument("--category", "-c", default=None, help="分类: agg/filt/corr/ts/refusal/ambiguity") + parser.add_argument("--dataset", "-d", default="all", help="数据表: sales/orders/employees/inventory/all(默认 all)") parser.add_argument("--case", default=None, help="单条用例ID,如 agg_001") - parser.add_argument("--data", default="data/sample_eval.csv", help="数据文件路径") + parser.add_argument("--data", default=None, help="替换 sales 表的数据文件(默认 data/sample_eval.csv)") parser.add_argument("--verbose", "-v", action="store_true", help="详细输出(含code和result)") - parser.add_argument("--agent", choices=["workflow", "react"], default="workflow", help="被测 Agent") + parser.add_argument("--agent", choices=["workflow", "react", "both"], default="workflow", help="被测 Agent") parser.add_argument("--no-dict", action="store_true", help="关闭数据字典检索") parser.add_argument("--oracle", action="store_true", help="离线自检:用标准答案代替模型输出") parser.add_argument("--out", default=None, help="JSON 报告路径(默认 outputs/eval__<时间>.json)") @@ -75,62 +81,114 @@ def main(): args = parser.parse_args() if args.rescore: - _rescore(args.rescore, args.data if args.data != "data/sample_eval.csv" else None) + _rescore(args.rescore, args.data) return - if not os.path.exists(args.data): + if args.data and not os.path.exists(args.data): print(f"数据文件不存在: {args.data}") sys.exit(1) ensure_dirs() + cases = _select_cases(args.category, args.case, args.dataset) + tables = sorted({c.dataset for c in cases}) + print(f"📋 加载 {len(cases)} 条测试用例,数据表: {', '.join(tables)}\n") + + llm_config = None if args.oracle else LLMConfig.from_env() + if args.oracle: + print("⚙️ oracle 模式:模型输出 = 标准答案,结果只用于校验评测流水线,不代表 Agent 准确率\n") + agents = ["workflow", "react"] if args.agent == "both" else [args.agent] + stamp = f"{datetime.now():%Y%m%d_%H%M%S}" + all_correct, compare = True, {} + for agent in agents: + ok, runs = _run_agent(agent, cases, args, llm_config, stamp) + all_correct = all_correct and ok + compare[agent] = runs + if len(agents) > 1: + _print_compare(compare, os.path.join(OUTPUT_DIR, f"eval_compare{'_oracle' if args.oracle else ''}_{stamp}.json")) + # 返回码:全部正确为0,否则为1 + sys.exit(0 if all_correct else 1) - cases = _select_cases(args.category, args.case) - cat_hint = "" - if args.case: - cat_hint = f" 用例: {args.case}" - elif args.category: - key = {"agg": "aggregation", "filt": "filtering", "corr": "correlation", "ts": "timeseries"}.get(args.category, args.category) - cat_hint = f" 分类: {CATEGORY_MAP.get(key, key)}" - print(f"📋 加载 {len(cases)} 条测试用例{cat_hint},数据: {args.data}\n") +def _run_agent(agent, cases, args, llm_config, stamp): model_factory = None if args.oracle: from app.core.testing import oracle_model - model_factory = lambda case: oracle_model(case.ground_truth, args.agent) # noqa: E731 - print("⚙️ oracle 模式:模型输出 = 标准答案,结果只用于校验评测流水线,不代表 Agent 准确率\n") - - llm_config = None if args.oracle else LLMConfig.from_env() - meta = run_metadata(None if args.oracle else llm_config, args.data) - meta.update({"data": args.data, "oracle": args.oracle, "use_dictionary": not args.no_dict}) - runner = EvalRunner(args.data, agent=args.agent, model_factory=model_factory, llm_config=llm_config, + model_factory = lambda case: oracle_model(case.ground_truth, agent) # noqa: E731 + runner = EvalRunner(args.data, agent=agent, model_factory=model_factory, llm_config=llm_config, use_dictionary=not args.no_dict) - stamp = f"{datetime.now():%Y%m%d_%H%M%S}" - tag = f"eval_{args.agent}{'_oracle' if args.oracle else ''}{'' if not args.no_dict else '_nodict'}_{stamp}" + used = {c.dataset for c in cases} + meta = run_metadata(llm_config, runner.datasets["sales"] if "sales" in used else None) + meta.update({"data": args.data or "data/sample_eval.csv", "oracle": args.oracle, + "use_dictionary": not args.no_dict, + "datasets": datasets_metadata({k: v for k, v in runner.datasets.items() if k in used}), + "filter": {"dataset": args.dataset, "category": args.category, "case": args.case}}) + tag = f"eval_{agent}{'_oracle' if args.oracle else ''}{'' if not args.no_dict else '_nodict'}_{stamp}" runs, all_correct = [], True for k in range(1, args.repeat + 1): - if args.repeat > 1: - print(f"\n======== 第 {k}/{args.repeat} 次 ========") + if args.repeat > 1 or args.agent == "both": + print(f"\n======== {agent} 第 {k}/{args.repeat} 次 ========") results = runner.run_all(cases, verbose=True) report = EvalReport(results, meta={**meta, "run": k, "repeat": args.repeat}) report.print_summary() report.print_details(verbose=args.verbose) - if args.out and args.repeat == 1: + if args.out and args.repeat == 1 and args.agent != "both": out = args.out else: base = args.out[:-5] if args.out and args.out.endswith(".json") else (args.out or os.path.join(OUTPUT_DIR, tag)) + if args.agent == "both" and args.out: + base = f"{base}_{agent}" out = f"{base}{'' if args.repeat == 1 else f'_run{k}'}.json" report.to_json(out) print(f"JSON 报告已保存:{out}") s = report.summary() runs.append({"run": k, "file": out, "overall": s["overall"], - "by_category": {c: b["correctness_rate"] for c, b in s["by_category"].items()}}) + "by_category": {c: b["correctness_rate"] for c, b in s["by_category"].items()}, + "by_dataset": {c: b["correctness_rate"] for c, b in s["by_dataset"].items()}}) all_correct = all_correct and all(r["correct"] for r in results) - if args.repeat > 1: _print_repeat(runs, meta, os.path.join(os.path.dirname(runs[0]["file"]) or ".", f"{tag}_summary.json")) + return all_correct, runs - # 返回码:全部正确为0,否则为1 - sys.exit(0 if all_correct else 1) + +def _print_compare(compare, path): + """--agent both:两个 Agent 并排(多次运行时取均值)。""" + import json + import statistics as st + + def avg(runs, f): + vals = [f(r) for r in runs if f(r) is not None] + return st.mean(vals) if vals else None + + rows = {} + for agent, runs in compare.items(): + rows[agent] = { + "correctness_rate": avg(runs, lambda r: r["overall"]["correctness_rate"]), + "execution_success_rate": avg(runs, lambda r: r["overall"]["execution_success_rate"]), + "avg_duration_s": avg(runs, lambda r: r["overall"]["avg_duration_s"]), + "avg_tokens": avg(runs, lambda r: r["overall"]["avg_tokens"]), + "by_category": {c: avg(runs, lambda r, c=c: r["by_category"].get(c)) + for c in CATEGORY_MAP if any(c in r["by_category"] for r in runs)}, + "by_dataset": {d: avg(runs, lambda r, d=d: r["by_dataset"].get(d)) + for d in DATASETS if any(d in r["by_dataset"] for r in runs)}, + "files": [r["file"] for r in runs], + } + fmt = lambda v, p="%": "N/A" if v is None else (f"{v:.1f}%" if p == "%" else f"{v:.{p}f}") # noqa: E731 + print("=" * 60) + print(f" {'指标':<14}" + "".join(f"{a:>14}" for a in rows)) + print(f" {'正确率':<14}" + "".join(f"{fmt(r['correctness_rate']):>14}" for r in rows.values())) + print(f" {'执行成功率':<12}" + "".join(f"{fmt(r['execution_success_rate']):>14}" for r in rows.values())) + print(f" {'平均耗时(秒)':<11}" + "".join(f"{fmt(r['avg_duration_s'], 2):>14}" for r in rows.values())) + print(f" {'平均 token':<13}" + "".join(f"{fmt(r['avg_tokens'], 0):>14}" for r in rows.values())) + for c in CATEGORY_MAP: + if any(c in r["by_category"] for r in rows.values()): + print(f" {CATEGORY_MAP[c]:<14}" + "".join(f"{fmt(r['by_category'].get(c)):>14}" for r in rows.values())) + for d in DATASETS: + if any(d in r["by_dataset"] for r in rows.values()): + print(f" {d:<14}" + "".join(f"{fmt(r['by_dataset'].get(d)):>14}" for r in rows.values())) + print("=" * 60) + with open(path, "w", encoding="utf-8") as f: + json.dump({"git_sha": git_sha(), "agents": rows}, f, ensure_ascii=False, indent=2, default=str) + print(f"对比已保存:{path}") def _print_repeat(runs, meta, path): From a475befd8ad765fb3257987db931599e4bded472 Mon Sep 17 00:00:00 2001 From: Smilewithoutfalling <91455578+Smilewithoutfalling@users.noreply.github.com> Date: Sat, 10 Oct 2026 08:59:57 +0800 Subject: [PATCH 13/28] =?UTF-8?q?=E9=98=B6=E6=AE=B53=EF=BC=9Atests/test=5F?= =?UTF-8?q?comparator.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/test_comparator.py | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/tests/test_comparator.py b/tests/test_comparator.py index fddfa10..e01a4b4 100644 --- a/tests/test_comparator.py +++ b/tests/test_comparator.py @@ -130,3 +130,39 @@ def test_rule17_margins_dropped(): index=pd.Index(["华东", "华北", "总计"], name="region")) assert results_equal(a, e) assert not results_equal(a.replace({1: 9}), e) + + +def test_rule18_quarter_labels(): + e = pd.Series([377358.66, 473495.5], index=pd.Index([1, 2], name="order_date")) + for a in (pd.Series([377358.66, 473495.5], index=pd.PeriodIndex(["2024Q1", "2024Q2"], freq="Q")), + {"第一季度": 377358.66, "第二季度": 473495.5}, {"Q1": 377358.66, "Q2": 473495.5}, + (377358.66, 473495.5)): + assert results_equal(a, e), a + assert not results_equal((473495.5, 377358.66), e) + assert not results_equal({"第一季度": 473495.5, "第二季度": 377358.66}, e) + + +def test_rule18_month_numbers_vs_time_index(): + e = pd.Series([10.0, 20.0, 30.0], index=pd.to_datetime(["2024-01-31", "2024-02-29", "2024-03-31"])) + assert results_equal(pd.Series([10.0, 20.0, 30.0], index=[1, 2, 3]), e) + assert not results_equal(pd.Series([10.0, 30.0, 20.0], index=[1, 2, 3]), e) + # 跨年的时间索引不能只按月份号对齐 + e2 = pd.Series([1.0, 2.0], index=pd.to_datetime(["2023-12-31", "2024-12-31"])) + assert not results_equal(pd.Series([1.0, 2.0], index=[12, 12]), e2) + + +def test_rule18_iso_week_numbers(): + e = pd.Series([1070, 2258, 2108], index=pd.to_datetime(["2024-03-03", "2024-03-10", "2024-03-17"])) + assert results_equal(pd.Series([1070, 2258, 2108], index=pd.Index([9, 10, 11], name="week")), e) + assert not results_equal(pd.Series([1070, 2108, 2258], index=[9, 10, 11]), e) + assert not results_equal(pd.Series([1070, 2258, 2108], index=[11, 10, 9]), e) # 不是递增的周序号 + + +def test_refusal_detection(): + from app.eval.comparator import is_refusal + assert is_refusal("无法回答:数据中没有成本字段") + assert is_refusal(" 无法回答,表里没有年龄 ") + assert not is_refusal("无法回答") + assert not is_refusal("无法回答:") + assert not is_refusal("数据中没有成本字段") + assert not is_refusal(None) and not is_refusal(0) From bb03782d786917ac623121012903a508e3e1b467 Mon Sep 17 00:00:00 2001 From: Smilewithoutfalling <91455578+Smilewithoutfalling@users.noreply.github.com> Date: Sat, 10 Oct 2026 08:59:58 +0800 Subject: [PATCH 14/28] =?UTF-8?q?=E9=98=B6=E6=AE=B53=EF=BC=9Atests/test=5F?= =?UTF-8?q?entrypoints.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/test_entrypoints.py | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/tests/test_entrypoints.py b/tests/test_entrypoints.py index def96fa..416f0b9 100644 --- a/tests/test_entrypoints.py +++ b/tests/test_entrypoints.py @@ -1,4 +1,5 @@ """B16:命令行入口都经 analyze()(UI 见 test_ui_smoke.py)。""" +import json import subprocess import sys @@ -34,7 +35,7 @@ def test_run_eval_oracle_cli(tmp_path): def test_run_eval_repeat_and_rescore_cli(tmp_path): """阶段 1.5:--repeat 输出每次报告和汇总;--rescore 用存下的结构化结果离线重新打分。""" out = tmp_path / "r.json" - p = subprocess.run([sys.executable, "run_eval.py", "--oracle", "--category", "ts", "--repeat", "2", + p = subprocess.run([sys.executable, "run_eval.py", "--oracle", "--dataset", "sales", "--category", "ts", "--repeat", "2", "--out", str(out)], cwd=ROOT, capture_output=True, text=True, encoding="utf-8", timeout=120) assert p.returncode == 0, p.stdout + p.stderr runs = sorted(tmp_path.glob("r_run*.json")) @@ -43,3 +44,21 @@ def test_run_eval_repeat_and_rescore_cli(tmp_path): cwd=ROOT, capture_output=True, text=True, encoding="utf-8", timeout=120) assert p.returncode == 0, p.stdout + p.stderr assert "13/13 = 100.0%" in p.stdout + + +def test_run_eval_both_agents_and_rescore_new_tables(tmp_path): + """阶段 3:--agent both 两个 Agent 各出一份报告;新表、拒答题的报告也能 --rescore。""" + out = tmp_path / "r.json" + p = subprocess.run([sys.executable, "run_eval.py", "--oracle", "--agent", "both", "--category", "refusal", + "--out", str(out)], cwd=ROOT, capture_output=True, text=True, encoding="utf-8", timeout=120) + assert p.returncode == 0, p.stdout + p.stderr + assert "应拒答" in p.stdout and "workflow" in p.stdout and "react" in p.stdout + reports = sorted(tmp_path.glob("r_*.json")) + assert [r.name for r in reports] == ["r_react.json", "r_workflow.json"] + data = json.loads(reports[1].read_text(encoding="utf-8")) + assert data["datasets"]["orders"]["dictionary"] and {c["dataset"] for c in data["cases"]} == { + "orders", "employees", "inventory"} + p = subprocess.run([sys.executable, "run_eval.py", "--rescore", str(reports[1])], + cwd=ROOT, capture_output=True, text=True, encoding="utf-8", timeout=120) + assert p.returncode == 0, p.stdout + p.stderr + assert "9/9 = 100.0%" in p.stdout From 815e6773561bedcb561aa42eb05387c28f3c22f3 Mon Sep 17 00:00:00 2001 From: Smilewithoutfalling <91455578+Smilewithoutfalling@users.noreply.github.com> Date: Sat, 10 Oct 2026 08:59:59 +0800 Subject: [PATCH 15/28] =?UTF-8?q?=E9=98=B6=E6=AE=B53=EF=BC=9Atests/test=5F?= =?UTF-8?q?eval=5Fcases.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/test_eval_cases.py | 74 +++++++++++++++++++++++++++++++++++----- 1 file changed, 65 insertions(+), 9 deletions(-) diff --git a/tests/test_eval_cases.py b/tests/test_eval_cases.py index 468c884..0078b9e 100644 --- a/tests/test_eval_cases.py +++ b/tests/test_eval_cases.py @@ -5,10 +5,10 @@ from app.core import LLMConfig from app.core.testing import oracle_model -from app.eval.cases import ALL_CASES -from app.eval.comparator import results_equal +from app.eval.cases import ALL_CASES, DATASETS +from app.eval.comparator import is_refusal, results_equal from app.eval.report import EvalReport -from app.eval.runner import EvalRunner +from app.eval.runner import EvalRunner, score from conftest import ROOT EVAL_DATA = os.path.join(ROOT, "data", "sample_eval.csv") @@ -16,15 +16,71 @@ def test_case_count_and_ids_unique(): ids = [c.id for c in ALL_CASES] - assert len(ids) == 50 and len(set(ids)) == 50 + assert len(ids) == 130 and len(set(ids)) == 130 + by = {} + for c in ALL_CASES: + by[c.dataset] = by.get(c.dataset, 0) + 1 + assert by == {"sales": 50, "orders": 30, "employees": 25, "inventory": 25} + + +def test_case_flags_consistent(): + for c in ALL_CASES: + assert c.dataset in DATASETS, c.id + assert c.expect_refusal == (c.category == "refusal"), c.id + assert bool(c.alt_ground_truths) <= (c.category == "ambiguity"), c.id + if c.category == "ambiguity": + assert c.alt_ground_truths, c.id + + +_RUNNER = EvalRunner(EVAL_DATA) @pytest.mark.parametrize("case", ALL_CASES, ids=lambda c: c.id) def test_ground_truth_executes(case): - runner = EvalRunner(EVAL_DATA) - result, err = runner._run_code(case.ground_truth) - assert err is None - assert results_equal(result, result) + outs, err = _RUNNER.expected_all(case) + assert err is None and len(outs) == 1 + len(case.alt_ground_truths) + assert results_equal(outs[0], outs[0]) + if case.expect_refusal: + assert is_refusal(outs[0]) + else: + assert not is_refusal(outs[0]) + + +def test_ambiguity_alternatives_differ_from_main(): + """歧义题至少有一个其他理解的答案和主答案不同,否则这道题测不出歧义。""" + for c in ALL_CASES: + if c.category != "ambiguity": + continue + outs, _ = _RUNNER.expected_all(c) + assert any(not results_equal(o, outs[0]) for o in outs[1:]), c.id + + +def test_refusal_scoring(): + case = next(c for c in ALL_CASES if c.id == "ord_024") + assert score("无法回答:数据中没有成本字段", case, []) + assert not score("无法回答", case, []) # 没有原因 + assert not score("无法回答:", case, []) + assert not score(None, case, []) + assert not score("数码", case, []) # 编了一个答案 + normal = next(c for c in ALL_CASES if c.id == "ord_001") + assert not score("无法回答:数据不足", normal, [1200]) # 能答的题拒答算错 + assert score(1200, normal, [1200]) + + +def test_alt_ground_truth_accepted(): + case = next(c for c in ALL_CASES if c.id == "emp_024") + outs, _ = _RUNNER.expected_all(case) + assert score(240, case, outs) and score(203, case, outs) + assert not score(17, case, outs) + + +def test_eval_data_matches_generator(): + """data/eval/*.csv 必须与 scripts/gen_eval_data.py 的输出逐字节一致(改了脚本要重新生成)。""" + import subprocess + import sys + p = subprocess.run([sys.executable, os.path.join(ROOT, "scripts", "gen_eval_data.py"), "--check"], + capture_output=True, text=True, encoding="utf-8") + assert p.returncode == 0, p.stdout + p.stderr def _r(executed, correct): @@ -56,7 +112,7 @@ def _runner(agent, factory): @pytest.mark.parametrize("agent", ["workflow", "react"]) def test_oracle_pipeline_all_correct(agent): - """模型输出 = 标准答案时,全部 50 题必须判对:验证流水线与打分口径本身。""" + """模型输出 = 标准答案时,全部 130 题必须判对:验证流水线与打分口径本身(含拒答题与 4 张表)。""" runner = _runner(agent, lambda c: oracle_model(c.ground_truth, agent)) results = runner.run_all(ALL_CASES) report = EvalReport(results) From 60051912de0206d7eba530be3731f55da4c7cd43 Mon Sep 17 00:00:00 2001 From: Smilewithoutfalling <91455578+Smilewithoutfalling@users.noreply.github.com> Date: Sat, 10 Oct 2026 09:00:00 +0800 Subject: [PATCH 16/28] =?UTF-8?q?=E9=98=B6=E6=AE=B53=EF=BC=9Aapp/eval/case?= =?UTF-8?q?=5Fmodel.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/eval/case_model.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 app/eval/case_model.py diff --git a/app/eval/case_model.py b/app/eval/case_model.py new file mode 100644 index 0000000..aec4998 --- /dev/null +++ b/app/eval/case_model.py @@ -0,0 +1,22 @@ +"""评测用例的数据结构。""" +from dataclasses import dataclass, field + + +@dataclass +class EvalCase: + id: str + category: str # aggregation | filtering | correlation | timeseries | refusal | ambiguity + question: str # 中文自然语言问题 + ground_truth: str # pandas代码,执行后 result = 期望结果 + keywords: list = field(default_factory=list) # 生成代码应包含的关键词 + has_chart: bool = False + # 结果顺序是否计分(B12):只有题目明确要求排序/排名时为 True,比较器据此决定是否比较顺序 + ordered: bool = False + # 题目问"占比"时,比例(0.49)与百分数(49%)都算对(B24 规则 12);问"百分比"的不设 + percent_equiv: bool = False + # 阶段 3:所用数据表(见 DATASETS) + dataset: str = "sales" + # 应拒答题:数据里没有回答所需的信息,期望 result = "无法回答:<原因>" + expect_refusal: bool = False + # 歧义题:其他合理理解的标准答案,命中 ground_truth 或其中任一即对 + alt_ground_truths: list = field(default_factory=list) From 7faaa275bf8bfd310838305ebebf08b682767e81 Mon Sep 17 00:00:00 2001 From: Smilewithoutfalling <91455578+Smilewithoutfalling@users.noreply.github.com> Date: Sat, 10 Oct 2026 09:00:02 +0800 Subject: [PATCH 17/28] =?UTF-8?q?=E9=98=B6=E6=AE=B53=EF=BC=9Aapp/eval/case?= =?UTF-8?q?s=5Fextra.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/eval/cases_extra.py | 333 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 333 insertions(+) create mode 100644 app/eval/cases_extra.py diff --git a/app/eval/cases_extra.py b/app/eval/cases_extra.py new file mode 100644 index 0000000..98d9c25 --- /dev/null +++ b/app/eval/cases_extra.py @@ -0,0 +1,333 @@ +"""阶段 3 新增评测题:3 张合成表(scripts/gen_eval_data.py 生成,data/eval/),共 80 题。 + +- 题面写清口径(是否去重、算哪些状态、保留几位小数),避免 B32 那种"两种理解都合理"的题混进普通题; +- 故意有歧义的题单列为 ambiguity 类,用 alt_ground_truths 列出所有合理理解,命中任一即对; +- 数据里没有的信息单列为 refusal 类,期望模型拒答并给出原因(result = "无法回答:原因")。 +""" +from app.eval.case_model import EvalCase + +# 去重后的订单(表里有 18 条整行重复的录入) +_D = "d = df.drop_duplicates('order_id'); " +_DONE = _D + "d = d[d['status'] == '已完成']; " + + +def _refuse(reason: str) -> str: + return f"result = '无法回答:{reason}'" + + +# ============================================================ +# 电商订单 orders(30 题) +# ============================================================ +ORDER_CASES = [ + # ---- 聚合 + EvalCase(id="ord_001", category="aggregation", dataset="orders", + question="去掉重复录入的订单后,一共有多少笔订单?", + ground_truth="result = df['order_id'].nunique()"), + EvalCase(id="ord_002", category="aggregation", dataset="orders", + question="已完成订单的实付金额合计是多少元?重复录入的订单只算一次,保留两位小数。", + ground_truth=_DONE + "result = round(d['pay_amount'].sum(), 2)"), + EvalCase(id="ord_003", category="aggregation", dataset="orders", ordered=True, + question="各品类已完成订单的实付金额合计,按金额从高到低排列。重复录入的订单只算一次,保留两位小数。", + ground_truth=_DONE + "result = d.groupby('category')['pay_amount'].sum().round(2).sort_values(ascending=False)"), + EvalCase(id="ord_004", category="aggregation", dataset="orders", + question="已完成订单的客单价(平均每笔订单的实付金额)是多少元?重复录入的订单只算一次,保留两位小数。", + ground_truth=_DONE + "result = round(d['pay_amount'].mean(), 2)"), + EvalCase(id="ord_005", category="aggregation", dataset="orders", percent_equiv=True, + question="各渠道的订单数占全部订单的比例是多少?不论订单状态,重复录入的订单只算一次,用百分数表示并保留两位小数。", + ground_truth=_D + "result = (d['channel'].value_counts(normalize=True) * 100).round(2)"), + EvalCase(id="ord_006", category="aggregation", dataset="orders", + question="哪个城市的已完成订单实付金额合计最高?城市为空的订单不计,重复录入的订单只算一次。", + ground_truth=_DONE + "result = d.dropna(subset=['city']).groupby('city')['pay_amount'].sum().idxmax()"), + EvalCase(id="ord_007", category="aggregation", dataset="orders", + question="下过 3 笔及以上订单的用户有多少个?不论订单状态,重复录入的订单只算一次。", + ground_truth=_D + "result = int((d.groupby('user_id').size() >= 3).sum())"), + EvalCase(id="ord_008", category="aggregation", dataset="orders", percent_equiv=True, + question="退款率是多少?即已退款订单数占全部订单数的比例,重复录入的订单只算一次,用百分数表示并保留两位小数。", + ground_truth=_D + "result = round((d['status'] == '已退款').mean() * 100, 2)"), + # ---- 过滤 / 数据质量 + EvalCase(id="ord_009", category="filtering", dataset="orders", + question="城市字段为空的记录有多少条?按表中原始行数计。", + ground_truth="result = int(df['city'].isna().sum())"), + EvalCase(id="ord_010", category="filtering", dataset="orders", + question="表中有多少条记录是与前面某条记录整行完全重复的?", + ground_truth="result = int(df.duplicated().sum())"), + EvalCase(id="ord_011", category="filtering", dataset="orders", + question="数码品类中单价超过 2000 元的已完成订单有几笔?重复录入的订单只算一次。", + ground_truth=_DONE + "result = int(((d['category'] == '数码') & (d['unit_price'] > 2000)).sum())"), + EvalCase(id="ord_012", category="filtering", dataset="orders", + question="2024 年 6 月通过小程序下单且已完成的订单,实付金额合计是多少元?重复录入的订单只算一次,保留两位小数。", + ground_truth=_DONE + "m = d['order_date'].str.startswith('2024-06') & (d['channel'] == '小程序'); " + "result = round(d.loc[m, 'pay_amount'].sum(), 2)"), + EvalCase(id="ord_013", category="filtering", dataset="orders", + question="享受了折扣的订单有多少笔?折扣为空视为无折扣,不论订单状态,重复录入的订单只算一次。", + ground_truth=_D + "result = int((d['discount'].fillna(0) > 0).sum())"), + EvalCase(id="ord_014", category="filtering", dataset="orders", ordered=True, + question="实付金额最高的 5 笔已完成订单,订单号依次是什么?按实付金额从高到低,只列订单号。", + ground_truth=_DONE + "result = d.nlargest(5, 'pay_amount')['order_id'].tolist()"), + # ---- 关联 + EvalCase(id="ord_015", category="correlation", dataset="orders", + question="各渠道已完成订单的平均折扣率是多少?折扣为空按 0 计,重复录入的订单只算一次,保留 4 位小数。", + ground_truth=_DONE + "result = d.assign(discount=d['discount'].fillna(0)).groupby('channel')['discount'].mean().round(4)"), + EvalCase(id="ord_016", category="correlation", dataset="orders", + question="已完成订单按城市和品类汇总实付金额,做成城市为行、品类为列的交叉表。城市为空的不计," + "重复录入的订单只算一次,没有订单的格子填 0,保留两位小数。", + ground_truth=_DONE + "result = d.dropna(subset=['city']).pivot_table(index='city', columns='category', " + "values='pay_amount', aggfunc='sum', fill_value=0).round(2)"), + EvalCase(id="ord_017", category="correlation", dataset="orders", + question="购买件数(qty)与实付金额的皮尔逊相关系数是多少?用去重后的全部订单计算,保留 4 位小数。", + ground_truth=_D + "result = round(d['qty'].corr(d['pay_amount']), 4)"), + EvalCase(id="ord_018", category="correlation", dataset="orders", + question="哪个品类的退款比例(该品类已退款订单数 ÷ 该品类订单数)最高?重复录入的订单只算一次。", + ground_truth=_D + "result = d.assign(r=d['status'] == '已退款').groupby('category')['r'].mean().idxmax()"), + # ---- 时序 + EvalCase(id="ord_019", category="timeseries", dataset="orders", + question="每个月已完成订单的实付金额合计是多少?重复录入的订单只算一次,保留两位小数。", + ground_truth=_DONE + "d['order_date'] = pd.to_datetime(d['order_date']); " + "result = d.set_index('order_date')['pay_amount'].resample('ME').sum().round(2)"), + EvalCase(id="ord_020", category="timeseries", dataset="orders", + question="已完成订单的月实付金额,环比增长率最高的是哪个月?重复录入的订单只算一次,答案格式如 2024-03。", + ground_truth=_DONE + "m = d.groupby(d['order_date'].str[:7])['pay_amount'].sum(); " + "result = m.pct_change().idxmax()"), + EvalCase(id="ord_021", category="timeseries", dataset="orders", + question="一周七天里哪一天的订单数最多?不论订单状态,重复录入的订单只算一次。答案用数字 0–6 表示,0 是周一、6 是周日。", + ground_truth=_D + "result = int(pd.to_datetime(d['order_date']).dt.dayofweek.value_counts().idxmax())"), + EvalCase(id="ord_022", category="timeseries", dataset="orders", + question="2024 年第一季度和第二季度的已完成订单实付金额合计分别是多少?重复录入的订单只算一次,保留两位小数。", + ground_truth=_DONE + "q = pd.to_datetime(d['order_date']).dt.quarter; " + "result = d.groupby(q)['pay_amount'].sum().round(2)"), + EvalCase(id="ord_023", category="timeseries", dataset="orders", + question="每个月有多少个不同的下单用户?不论订单状态。", + ground_truth="result = df.groupby(df['order_date'].str[:7])['user_id'].nunique()"), + # ---- 应拒答 + EvalCase(id="ord_024", category="refusal", dataset="orders", expect_refusal=True, + question="哪个品类的毛利率最高?", ground_truth=_refuse("数据中没有成本或毛利字段")), + EvalCase(id="ord_025", category="refusal", dataset="orders", expect_refusal=True, + question="下单用户的平均年龄是多少?", ground_truth=_refuse("数据中没有用户年龄信息")), + EvalCase(id="ord_026", category="refusal", dataset="orders", expect_refusal=True, + question="订单从下单到签收平均用了几天?", ground_truth=_refuse("数据中没有签收或物流时间")), + # ---- 歧义(列出的理解都算对) + EvalCase(id="ord_027", category="ambiguity", dataset="orders", + question="总销售额是多少?", + ground_truth=_DONE + "result = round(d['pay_amount'].sum(), 2)", + alt_ground_truths=[ + _D + "result = round(d['pay_amount'].sum(), 2)", # 不区分状态 + _DONE + "result = round((d['qty'] * d['unit_price']).sum(), 2)", # 折扣前 + "d = df[df['status'] == '已完成']; result = round(d['pay_amount'].sum(), 2)", # 未去重 + ]), + EvalCase(id="ord_028", category="ambiguity", dataset="orders", + question="平均每单买几件?", + ground_truth=_D + "result = round(d['qty'].mean(), 2)", + alt_ground_truths=[_DONE + "result = round(d['qty'].mean(), 2)", + "result = round(df['qty'].mean(), 2)"]), + EvalCase(id="ord_029", category="ambiguity", dataset="orders", + question="哪个品类卖得最好?", + ground_truth=_DONE + "result = d.groupby('category')['pay_amount'].sum().idxmax()", # 按销售额 + alt_ground_truths=[_DONE + "result = d.groupby('category')['qty'].sum().idxmax()", # 按件数 + _DONE + "result = d['category'].value_counts().idxmax()", # 按订单数 + _D + "result = d.groupby('category')['pay_amount'].sum().idxmax()", + _D + "result = d.groupby('category')['qty'].sum().idxmax()", + _D + "result = d['category'].value_counts().idxmax()"]), + EvalCase(id="ord_030", category="ambiguity", dataset="orders", percent_equiv=True, + question="复购率是多少?", + ground_truth=_D + "n = d.groupby('user_id').size(); result = round((n >= 2).mean() * 100, 2)", + alt_ground_truths=[_DONE + "n = d.groupby('user_id').size(); result = round((n >= 2).mean() * 100, 2)", + _D + "n = d.groupby('user_id').size(); result = round(n[n >= 2].sum() / n.sum() * 100, 2)"]), +] + + +# ============================================================ +# 员工花名册 employees(25 题) +# ============================================================ +_ACT = "a = df[df['leave_date'].isna()]; " + +EMP_CASES = [ + # ---- 聚合 + EvalCase(id="emp_001", category="aggregation", dataset="employees", + question="目前在职员工有多少人?离职日期为空表示在职。", + ground_truth="result = int(df['leave_date'].isna().sum())"), + EvalCase(id="emp_002", category="aggregation", dataset="employees", ordered=True, + question="各部门在职人数是多少?按人数从多到少排列。", + ground_truth=_ACT + "result = a['dept'].value_counts()"), + EvalCase(id="emp_003", category="aggregation", dataset="employees", + question="在职员工中各职级的平均月薪是多少?保留两位小数。", + ground_truth=_ACT + "result = a.groupby('level')['monthly_salary'].mean().round(2)"), + EvalCase(id="emp_004", category="aggregation", dataset="employees", + question="在职员工月薪的中位数是多少元?", + ground_truth=_ACT + "result = float(a['monthly_salary'].median())"), + EvalCase(id="emp_005", category="aggregation", dataset="employees", percent_equiv=True, + question="在职员工中女性的占比是多少?用百分数表示并保留两位小数。", + ground_truth=_ACT + "result = round((a['gender'] == '女').mean() * 100, 2)"), + EvalCase(id="emp_006", category="aggregation", dataset="employees", + question="哪个部门在职员工的平均月薪最高?", + ground_truth=_ACT + "result = a.groupby('dept')['monthly_salary'].mean().idxmax()"), + EvalCase(id="emp_007", category="aggregation", dataset="employees", + question="2024 年离职了多少人?", + ground_truth="result = int(df['leave_date'].str.startswith('2024').sum())"), + EvalCase(id="emp_008", category="aggregation", dataset="employees", + question="2023 年度绩效为 A 的员工有多少人?包括已离职员工。", + ground_truth="result = int((df['perf_2023'] == 'A').sum())"), + # ---- 过滤 + EvalCase(id="emp_009", category="filtering", dataset="employees", + question="在上海工作、职级为 P7 及以上的在职员工有多少人?", + ground_truth=_ACT + "result = int(((a['city'] == '上海') & a['level'].isin(['P7', 'P8'])).sum())"), + EvalCase(id="emp_010", category="filtering", dataset="employees", + question="2023 年度绩效为空的员工有多少人?包括已离职员工。", + ground_truth="result = int(df['perf_2023'].isna().sum())"), + EvalCase(id="emp_011", category="filtering", dataset="employees", ordered=True, + question="月薪最高的 3 名在职员工,员工编号依次是什么?按月薪从高到低,只列员工编号。", + ground_truth=_ACT + "result = a.nlargest(3, 'monthly_salary')['emp_id'].tolist()"), + EvalCase(id="emp_012", category="filtering", dataset="employees", + question="研发部在职员工中,月薪高于研发部在职员工平均月薪的有多少人?", + ground_truth=_ACT + "r = a[a['dept'] == '研发']; result = int((r['monthly_salary'] > r['monthly_salary'].mean()).sum())"), + # ---- 关联 + EvalCase(id="emp_013", category="correlation", dataset="employees", + question="在职员工按城市和职级统计人数,做成城市为行、职级为列的交叉表。", + ground_truth=_ACT + "result = pd.crosstab(a['city'], a['level'])"), + EvalCase(id="emp_014", category="correlation", dataset="employees", percent_equiv=True, + question="各部门 2023 年度绩效为 A 的比例是多少?只算有绩效记录的员工(含已离职),用百分数表示并保留两位小数。", + ground_truth="p = df.dropna(subset=['perf_2023']); " + "result = (p.assign(a=p['perf_2023'] == 'A').groupby('dept')['a'].mean() * 100).round(2)"), + EvalCase(id="emp_015", category="correlation", dataset="employees", + question="在职员工的年龄(2024 减出生年份)与月薪的皮尔逊相关系数是多少?保留 4 位小数。", + ground_truth=_ACT + "result = round((2024 - a['birth_year']).corr(a['monthly_salary']), 4)"), + EvalCase(id="emp_016", category="correlation", dataset="employees", + question="各部门在职员工中男、女各有多少人?做成部门为行、性别为列的交叉表。", + ground_truth=_ACT + "result = pd.crosstab(a['dept'], a['gender'])"), + # ---- 时序 + EvalCase(id="emp_017", category="timeseries", dataset="employees", + question="每年各入职了多少人?包括已离职员工。", + ground_truth="result = df.groupby(df['hire_date'].str[:4].astype(int)).size()"), + EvalCase(id="emp_018", category="timeseries", dataset="employees", + question="2022、2023、2024 年各离职了多少人?", + ground_truth="y = df['leave_date'].dropna().str[:4].astype(int); " + "result = y.value_counts().reindex([2022, 2023, 2024], fill_value=0)"), + EvalCase(id="emp_019", category="timeseries", dataset="employees", + question="在职员工的平均司龄是多少年?司龄按 2024-09-30 减去入职日期的天数 ÷ 365 计算,保留两位小数。", + ground_truth=_ACT + "days = (pd.Timestamp('2024-09-30') - pd.to_datetime(a['hire_date'])).dt.days; " + "result = round((days / 365).mean(), 2)"), + EvalCase(id="emp_020", category="timeseries", dataset="employees", percent_equiv=True, + question="2023 年的员工流失率是多少?流失率 = 2023 年内离职人数 ÷ 2023-01-01 当天在职人数,用百分数表示并保留两位小数。", + ground_truth="h = pd.to_datetime(df['hire_date']); l = pd.to_datetime(df['leave_date']); " + "base = ((h <= '2023-01-01') & (l.isna() | (l >= '2023-01-01'))).sum(); " + "left = ((l >= '2023-01-01') & (l <= '2023-12-31')).sum(); " + "result = round(left / base * 100, 2)"), + # ---- 应拒答 + EvalCase(id="emp_021", category="refusal", dataset="employees", expect_refusal=True, + question="各部门的平均加班时长是多少?", ground_truth=_refuse("数据中没有加班或考勤记录")), + EvalCase(id="emp_022", category="refusal", dataset="employees", expect_refusal=True, + question="员工离职的主要原因是什么?", ground_truth=_refuse("数据中只有离职日期,没有离职原因")), + EvalCase(id="emp_023", category="refusal", dataset="employees", expect_refusal=True, + question="今年各部门一共发了多少年终奖?", ground_truth=_refuse("数据中只有月薪,没有奖金字段")), + # ---- 歧义 + EvalCase(id="emp_024", category="ambiguity", dataset="employees", + question="公司有多少员工?", + ground_truth="result = int(df['leave_date'].isna().sum())", + alt_ground_truths=["result = len(df)"]), + EvalCase(id="emp_025", category="ambiguity", dataset="employees", + question="平均工资是多少?", + ground_truth=_ACT + "result = round(a['monthly_salary'].mean(), 2)", + alt_ground_truths=["result = round(df['monthly_salary'].mean(), 2)", + _ACT + "result = round(a['monthly_salary'].mean() * 12, 2)"]), # 年薪口径 +] + + +# ============================================================ +# 门店日频库存 inventory(25 题) +# ============================================================ +_DAY = "t = df.groupby('date')[['sold', 'closing_stock']].sum(); " + +INV_CASES = [ + # ---- 聚合 + EvalCase(id="inv_001", category="aggregation", dataset="inventory", + question="整个期间各门店的总销量是多少件?", + ground_truth="result = df.groupby('store')['sold'].sum()"), + EvalCase(id="inv_002", category="aggregation", dataset="inventory", + question="哪个 SKU 的总销量最高?", + ground_truth="result = df.groupby('sku')['sold'].sum().idxmax()"), + EvalCase(id="inv_003", category="aggregation", dataset="inventory", + question="2024 年 3 月所有门店的到货量合计是多少件?", + ground_truth="result = int(df.loc[df['date'].str.startswith('2024-03'), 'received'].sum())"), + EvalCase(id="inv_004", category="aggregation", dataset="inventory", + question="各 SKU 平均每家门店每天卖多少件?即按每条记录(门店 × 日期)的销量求平均,保留两位小数。", + ground_truth="result = df.groupby('sku')['sold'].mean().round(2)"), + EvalCase(id="inv_005", category="aggregation", dataset="inventory", + question="2024-05-31 当天,各门店所有 SKU 的期末库存合计是多少件?", + ground_truth="result = df[df['date'] == '2024-05-31'].groupby('store')['closing_stock'].sum()"), + # ---- 过滤 + EvalCase(id="inv_006", category="filtering", dataset="inventory", + question="期末库存为 0(当日缺货)的记录有多少条?", + ground_truth="result = int((df['closing_stock'] == 0).sum())"), + EvalCase(id="inv_007", category="filtering", dataset="inventory", + question="哪家门店期末库存为 0 的记录最多?", + ground_truth="result = df[df['closing_stock'] == 0]['store'].value_counts().idxmax()"), + EvalCase(id="inv_008", category="filtering", dataset="inventory", + question="K400 在 S04 门店有多少天期末库存为 0?", + ground_truth="result = int(((df['sku'] == 'K400') & (df['store'] == 'S04') & (df['closing_stock'] == 0)).sum())"), + EvalCase(id="inv_009", category="filtering", dataset="inventory", + question="只看有到货(received > 0)的记录,平均每次到货多少件?保留两位小数。", + ground_truth="result = round(df.loc[df['received'] > 0, 'received'].mean(), 2)"), + EvalCase(id="inv_010", category="filtering", dataset="inventory", + question="单条记录日销量超过 60 件的有多少条?", + ground_truth="result = int((df['sold'] > 60).sum())"), + # ---- 关联 + EvalCase(id="inv_011", category="correlation", dataset="inventory", + question="按门店和 SKU 汇总总销量,做成门店为行、SKU 为列的交叉表。", + ground_truth="result = df.pivot_table(index='store', columns='sku', values='sold', aggfunc='sum')"), + EvalCase(id="inv_012", category="correlation", dataset="inventory", percent_equiv=True, + question="各 SKU 期末库存为 0 的记录占该 SKU 全部记录的比例是多少?用百分数表示并保留两位小数。", + ground_truth="result = (df.assign(z=df['closing_stock'] == 0).groupby('sku')['z'].mean() * 100).round(2)"), + EvalCase(id="inv_013", category="correlation", dataset="inventory", + question="工作日和周末(周六、周日)的平均单条记录销量分别是多少?保留两位小数。", + ground_truth="w = pd.to_datetime(df['date']).dt.dayofweek >= 5; " + "result = df.groupby(w.map({False: '工作日', True: '周末'}))['sold'].mean().round(2)"), + EvalCase(id="inv_014", category="correlation", dataset="inventory", + question="各门店的库存周转天数是多少?先把每家门店每天所有 SKU 的销量和期末库存各自加总," + "周转天数 = 日均期末库存 ÷ 日均销量,保留两位小数。", + ground_truth="s = df.groupby(['store', 'date'])[['sold', 'closing_stock']].sum().groupby(level=0).mean(); " + "result = (s['closing_stock'] / s['sold']).round(2)"), + # ---- 时序 + EvalCase(id="inv_015", category="timeseries", dataset="inventory", + question="每个月所有门店的总销量是多少件?", + ground_truth="d = df.assign(date=pd.to_datetime(df['date'])); " + "result = d.set_index('date')['sold'].resample('ME').sum()"), + EvalCase(id="inv_016", category="timeseries", dataset="inventory", + question="按自然周(周一至周日)统计所有门店的总销量。", + ground_truth="d = df.assign(date=pd.to_datetime(df['date'])); " + "result = d.set_index('date')['sold'].resample('W-SUN').sum()"), + EvalCase(id="inv_017", category="timeseries", dataset="inventory", + question="5 月 1 日至 5 日所有门店合计的日均销量,比 4 月的日均销量高百分之多少?保留两位小数。", + ground_truth=_DAY + "may = t.loc['2024-05-01':'2024-05-05', 'sold'].mean(); " + "apr = t.loc['2024-04-01':'2024-04-30', 'sold'].mean(); " + "result = round((may / apr - 1) * 100, 2)"), + EvalCase(id="inv_018", category="timeseries", dataset="inventory", + question="S01 门店 K100 的 7 日移动平均销量,在 2024-05-31 这天是多少?保留两位小数。", + ground_truth="s = df[(df['store'] == 'S01') & (df['sku'] == 'K100')].set_index('date')['sold']; " + "result = round(s.rolling(7).mean().loc['2024-05-31'], 2)"), + EvalCase(id="inv_019", category="timeseries", dataset="inventory", + question="哪一天所有门店合计的销量最高?日期格式 YYYY-MM-DD。", + ground_truth=_DAY + "result = t['sold'].idxmax()"), + EvalCase(id="inv_020", category="timeseries", dataset="inventory", + question="3、4、5 月各有多少条期末库存为 0 的记录?", + ground_truth="z = df[df['closing_stock'] == 0]; " + "result = z.groupby(z['date'].str[5:7].astype(int)).size().reindex([3, 4, 5], fill_value=0)"), + # ---- 应拒答 + EvalCase(id="inv_021", category="refusal", dataset="inventory", expect_refusal=True, + question="哪个 SKU 的销售额最高?", ground_truth=_refuse("数据中只有销量,没有价格或金额")), + EvalCase(id="inv_022", category="refusal", dataset="inventory", expect_refusal=True, + question="各门店的店长分别是谁?", ground_truth=_refuse("数据中没有门店人员信息")), + EvalCase(id="inv_023", category="refusal", dataset="inventory", expect_refusal=True, + question="哪个供应商的到货最及时?", ground_truth=_refuse("数据中没有供应商或订货时间")), + # ---- 歧义 + EvalCase(id="inv_024", category="ambiguity", dataset="inventory", + question="平均库存是多少?", + ground_truth="result = round(df['closing_stock'].mean(), 2)", + alt_ground_truths=[_DAY + "result = round(t['closing_stock'].mean(), 2)", + "result = round(df['opening_stock'].mean(), 2)", + "result = round(((df['opening_stock'] + df['closing_stock']) / 2).mean(), 2)"]), + EvalCase(id="inv_025", category="ambiguity", dataset="inventory", + question="平均每天卖多少件?", + ground_truth=_DAY + "result = round(t['sold'].mean(), 2)", + alt_ground_truths=["result = round(df['sold'].mean(), 2)"]), +] + +EXTRA_CASES = ORDER_CASES + EMP_CASES + INV_CASES From c9ef0e119e2635d81cb05782c0933e755af0c5ff Mon Sep 17 00:00:00 2001 From: Smilewithoutfalling <91455578+Smilewithoutfalling@users.noreply.github.com> Date: Sat, 10 Oct 2026 09:00:04 +0800 Subject: [PATCH 18/28] =?UTF-8?q?=E9=98=B6=E6=AE=B53=EF=BC=9Adata/eval/emp?= =?UTF-8?q?loyees.csv?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/eval/employees.csv | 241 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 241 insertions(+) create mode 100644 data/eval/employees.csv diff --git a/data/eval/employees.csv b/data/eval/employees.csv new file mode 100644 index 0000000..a41ad38 --- /dev/null +++ b/data/eval/employees.csv @@ -0,0 +1,241 @@ +emp_id,dept,level,gender,birth_year,city,hire_date,leave_date,monthly_salary,perf_2023 +E0001,运营,P5,男,1991,北京,2024-07-24,,12200, +E0002,研发,P4,女,1994,上海,2021-10-14,,9700,A +E0003,研发,P5,男,1997,上海,2017-02-03,,15700,A +E0004,销售,P4,男,2000,深圳,2023-08-14,,8300,D +E0005,研发,P4,男,1995,上海,2017-05-01,,10600,C +E0006,研发,P4,女,1993,北京,2023-04-04,,11500,B +E0007,研发,P4,男,1998,上海,2020-02-07,,11500,C +E0008,研发,P5,男,1995,北京,2023-07-31,,14900,B +E0009,人力,P6,女,1994,深圳,2020-08-13,,18300,B +E0010,研发,P4,男,1995,上海,2023-07-05,,11800,B +E0011,市场,P7,男,1985,北京,2018-04-27,,30600,B +E0012,销售,P4,女,1993,北京,2024-07-06,,8900, +E0013,研发,P5,男,1993,北京,2022-02-17,,14800,B +E0014,人力,P5,女,1993,深圳,2015-05-28,,11100,B +E0015,运营,P5,男,1993,深圳,2024-05-12,,12300, +E0016,运营,P5,女,1990,上海,2023-01-26,,12200,B +E0017,销售,P5,男,1996,北京,2020-11-15,2023-02-03,14200,C +E0018,研发,P5,女,1996,北京,2021-07-17,2024-07-27,16900,B +E0019,运营,P6,女,1992,北京,2024-08-01,,19200, +E0020,研发,P7,男,1987,北京,2024-05-26,,32200, +E0021,研发,P5,女,1995,北京,2019-08-29,,16800,B +E0022,销售,P6,男,1988,深圳,2023-10-06,,19200,B +E0023,研发,P5,女,1991,深圳,2020-03-15,,13300,A +E0024,运营,P6,男,1994,深圳,2015-06-11,,19200,A +E0025,研发,P5,男,1993,北京,2020-08-15,,15800,C +E0026,研发,P7,男,1989,上海,2023-09-07,,34100,B +E0027,运营,P6,女,1987,北京,2024-06-02,,18700, +E0028,研发,P6,女,1991,北京,2022-05-20,,20300,A +E0029,销售,P5,男,1996,北京,2016-08-24,,11000,B +E0030,市场,P7,男,1988,深圳,2018-03-01,,26000,B +E0031,财务,P4,女,1996,上海,2024-03-26,,8100, +E0032,研发,P6,男,1990,上海,2017-01-25,,19300,B +E0033,研发,P5,女,1997,北京,2022-01-01,2023-12-03,17000,B +E0034,销售,P7,男,1987,深圳,2017-07-20,2024-09-03,26000,A +E0035,研发,P4,女,1998,上海,2021-01-18,,10300,C +E0036,市场,P4,女,1995,上海,2020-10-15,,10100,C +E0037,市场,P7,男,1988,上海,2022-03-22,,25800,D +E0038,市场,P5,女,1994,深圳,2021-08-26,,14700,B +E0039,销售,P6,女,1988,上海,2019-06-21,,19200,B +E0040,人力,P5,女,1990,北京,2020-12-21,,10500,A +E0041,研发,P7,男,1986,北京,2023-06-24,,34600,A +E0042,人力,P5,女,1996,上海,2016-06-03,,13000,C +E0043,人力,P4,女,1997,深圳,2020-01-20,2023-02-27,8800,A +E0044,市场,P7,女,1987,北京,2019-04-06,,29600,B +E0045,运营,P5,女,1992,北京,2016-09-06,,11500,B +E0046,销售,P7,男,1983,北京,2016-12-17,,23900,B +E0047,市场,P5,男,1994,北京,2018-08-30,,12700,B +E0048,销售,P5,男,1993,上海,2020-02-13,,13100,A +E0049,研发,P5,男,1995,上海,2018-01-14,,15100,A +E0050,财务,P4,男,1993,深圳,2021-08-22,,9900,A +E0051,研发,P4,女,1995,北京,2017-11-15,2022-02-02,9500,B +E0052,销售,P4,女,1996,北京,2018-01-28,,8500,B +E0053,人力,P7,男,1988,北京,2016-08-26,,23100,B +E0054,财务,P4,男,1995,北京,2018-03-11,,10000,C +E0055,市场,P8,男,1980,上海,2019-10-06,2023-01-20,39600,B +E0056,销售,P7,男,1990,北京,2017-07-02,,27100,B +E0057,研发,P5,男,1996,上海,2021-12-08,2024-07-01,15600,A +E0058,研发,P5,女,1991,北京,2023-11-08,,15800,B +E0059,研发,P7,男,1986,上海,2015-12-01,,33000,C +E0060,市场,P5,男,1995,深圳,2017-03-23,2022-04-14,14900,C +E0061,销售,P5,女,1991,北京,2015-03-11,,13300,B +E0062,运营,P4,男,1997,深圳,2018-09-05,,7400,B +E0063,研发,P4,女,1993,北京,2022-06-28,,10100,B +E0064,销售,P8,男,1980,深圳,2023-12-06,,38300,B +E0065,研发,P5,女,1995,深圳,2017-12-25,,17000,A +E0066,研发,P8,女,1979,北京,2021-04-22,,44400,B +E0067,研发,P7,男,1988,上海,2015-12-21,,29200,B +E0068,市场,P6,男,1990,深圳,2018-10-22,,20800,B +E0069,销售,P6,女,1988,上海,2024-01-03,2024-03-26,19400, +E0070,运营,P6,女,1991,上海,2024-04-06,2024-09-17,19900, +E0071,销售,P6,男,1990,上海,2022-11-13,,20300,A +E0072,人力,P4,男,1994,深圳,2015-02-15,,7300,C +E0073,运营,P5,女,1993,北京,2015-06-18,,12900,C +E0074,运营,P6,男,1991,上海,2020-11-16,,17900,B +E0075,销售,P5,男,1994,北京,2015-04-29,,13200,C +E0076,销售,P6,女,1994,上海,2015-02-12,,18200,B +E0077,研发,P6,男,1991,北京,2019-06-30,,21700,B +E0078,财务,P4,男,1999,上海,2022-12-22,,9300,B +E0079,市场,P5,女,1994,北京,2021-04-19,,11900,C +E0080,销售,P5,女,1995,上海,2017-06-18,,11700,C +E0081,人力,P5,男,1995,上海,2016-01-18,,10400,D +E0082,销售,P4,女,1996,北京,2020-02-01,,9000,B +E0083,研发,P4,男,1994,北京,2023-12-12,,9100,B +E0084,市场,P6,女,1992,上海,2018-06-25,,19200,B +E0085,研发,P4,男,1997,上海,2021-08-24,,9900,B +E0086,研发,P7,女,1986,上海,2020-11-20,,30500,B +E0087,运营,P6,男,1989,上海,2015-02-22,,19300,A +E0088,研发,P5,男,1991,北京,2019-06-28,,13800,B +E0089,研发,P7,男,1990,深圳,2018-11-02,,36000,B +E0090,市场,P4,男,1995,上海,2017-05-28,,8700,B +E0091,市场,P6,男,1991,深圳,2020-01-06,,19400,B +E0092,运营,P5,男,1992,北京,2017-02-21,,12000,A +E0093,研发,P5,男,1990,深圳,2015-01-22,,15900,B +E0094,销售,P7,女,1987,北京,2016-05-24,,25400,B +E0095,销售,P8,女,1985,北京,2018-06-07,,42300,B +E0096,财务,P7,女,1989,北京,2023-02-24,,28300,B +E0097,销售,P5,男,1996,北京,2021-04-19,,10900,B +E0098,运营,P6,男,1989,北京,2021-06-24,,17500,B +E0099,市场,P5,女,1994,北京,2022-11-15,,14600,B +E0100,销售,P6,男,1992,深圳,2021-06-15,,17700,B +E0101,研发,P6,男,1993,上海,2024-05-03,2024-08-26,20800, +E0102,销售,P7,男,1985,北京,2021-06-17,,29800,B +E0103,运营,P5,女,1993,上海,2019-08-27,,11000,B +E0104,研发,P8,男,1980,北京,2023-12-27,,51600,C +E0105,市场,P4,男,1999,北京,2019-07-22,,8500,A +E0106,人力,P6,男,1991,北京,2023-04-20,,18400,B +E0107,销售,P4,男,1996,北京,2023-11-02,,9100,B +E0108,市场,P5,女,1991,北京,2021-12-27,,14800,A +E0109,销售,P5,女,1995,上海,2019-06-27,,11100,C +E0110,研发,P7,男,1987,北京,2021-09-15,,31200,A +E0111,市场,P7,男,1984,上海,2015-04-09,,26800,B +E0112,市场,P8,女,1982,上海,2020-06-09,,42800,B +E0113,研发,P4,女,1996,北京,2017-10-06,2023-09-28,10900,C +E0114,研发,P5,男,1997,北京,2019-03-02,2022-04-27,15700,C +E0115,研发,P4,男,1995,深圳,2024-05-05,,11400, +E0116,研发,P6,女,1993,北京,2018-03-06,,19500,B +E0117,人力,P6,女,1987,北京,2018-09-05,,15700,B +E0118,财务,P4,女,1993,北京,2019-02-15,,9000,C +E0119,销售,P4,男,1998,上海,2019-06-05,,7600,C +E0120,财务,P8,女,1979,深圳,2015-05-28,2023-04-11,38200,B +E0121,研发,P6,女,1990,上海,2023-01-29,,21600,B +E0122,销售,P5,男,1995,深圳,2018-10-30,,13200,B +E0123,运营,P5,女,1997,北京,2017-01-24,,11200,B +E0124,研发,P5,女,1995,上海,2017-12-12,,14600,C +E0125,研发,P5,男,1993,北京,2023-03-27,,16100,B +E0126,销售,P7,男,1986,深圳,2022-05-19,,28700,B +E0127,研发,P8,男,1980,上海,2024-09-08,,44900, +E0128,研发,P6,女,1987,北京,2017-09-07,2024-06-04,21500,C +E0129,市场,P5,男,1991,上海,2022-10-14,2024-02-21,11900,C +E0130,运营,P5,男,1991,北京,2018-10-14,,11700,D +E0131,研发,P7,男,1987,上海,2022-03-04,,34800,B +E0132,财务,P7,女,1984,深圳,2020-08-08,,29700,A +E0133,人力,P8,男,1985,北京,2024-01-16,,34100, +E0134,销售,P6,女,1989,北京,2019-07-03,,19300,C +E0135,销售,P5,女,1991,北京,2019-11-06,,11000,D +E0136,市场,P4,女,1996,北京,2021-04-06,2022-06-10,8000,B +E0137,研发,P6,男,1990,北京,2017-08-25,2024-06-15,21000,C +E0138,研发,P7,男,1984,北京,2020-11-13,,30600,A +E0139,研发,P7,女,1985,北京,2023-07-23,,30500,C +E0140,研发,P8,女,1979,北京,2020-09-05,2023-01-11,50500,C +E0141,研发,P4,男,2000,北京,2018-05-09,,11100,C +E0142,财务,P4,男,2000,北京,2021-07-14,,9300,B +E0143,市场,P6,男,1991,上海,2024-08-09,,20500, +E0144,研发,P6,男,1990,上海,2018-08-25,,21900,C +E0145,研发,P6,女,1992,北京,2020-02-02,,22200,B +E0146,人力,P4,女,1997,上海,2016-04-08,,7300,C +E0147,研发,P5,女,1991,北京,2016-07-17,,14000,A +E0148,市场,P5,女,1992,上海,2018-10-11,2024-02-23,12700,C +E0149,市场,P4,男,1998,上海,2015-12-05,,9000,B +E0150,研发,P6,女,1993,深圳,2020-03-17,,20400,B +E0151,销售,P5,女,1995,深圳,2023-01-20,,13200,B +E0152,研发,P5,男,1994,上海,2022-04-28,,16000,B +E0153,人力,P5,女,1997,北京,2018-03-14,,11400,B +E0154,销售,P5,男,1996,上海,2018-02-17,,12300,B +E0155,财务,P4,女,1998,北京,2023-10-10,,8000,B +E0156,研发,P4,女,1999,上海,2021-10-03,,10900,A +E0157,研发,P6,女,1990,北京,2016-06-05,,21800,B +E0158,研发,P5,女,1990,上海,2015-07-02,,15800,B +E0159,销售,P6,男,1990,上海,2017-10-26,,17100,B +E0160,运营,P6,女,1994,上海,2018-09-27,,19700,B +E0161,运营,P7,男,1988,北京,2018-09-10,,25000,C +E0162,市场,P6,女,1993,上海,2020-12-22,,21600,A +E0163,市场,P5,男,1994,上海,2018-07-16,,14200,B +E0164,销售,P6,男,1989,上海,2023-03-21,,20500,A +E0165,运营,P6,男,1987,北京,2021-11-24,,19400,B +E0166,运营,P8,男,1980,北京,2018-05-03,,32900,C +E0167,市场,P4,女,2000,上海,2023-01-14,,9300,A +E0168,研发,P6,男,1989,北京,2023-12-09,,19600,B +E0169,研发,P4,男,2000,上海,2015-03-10,2024-04-04,10500,B +E0170,研发,P5,男,1996,北京,2021-06-07,,13200,C +E0171,研发,P5,男,1997,北京,2023-08-15,,15600,B +E0172,研发,P7,男,1985,上海,2020-07-25,,33600,B +E0173,销售,P7,女,1985,上海,2018-09-26,,24000,B +E0174,运营,P4,男,1998,北京,2015-02-20,,7900,B +E0175,研发,P5,男,1996,深圳,2015-02-05,,15800,B +E0176,研发,P5,男,1994,深圳,2020-09-04,,13200,B +E0177,运营,P5,男,1991,上海,2019-07-15,,11800,B +E0178,市场,P6,女,1988,上海,2019-06-14,2023-02-03,17500,B +E0179,运营,P4,男,1994,深圳,2022-10-16,,8400,B +E0180,研发,P4,男,1997,上海,2018-06-11,,10400,B +E0181,研发,P7,女,1989,北京,2015-05-16,,35400,B +E0182,运营,P5,男,1996,北京,2024-02-25,2024-09-18,13200, +E0183,销售,P8,女,1986,北京,2021-01-21,,42400,B +E0184,运营,P5,女,1997,深圳,2020-05-21,,10700,C +E0185,研发,P7,女,1989,北京,2023-09-25,,33900,C +E0186,销售,P5,女,1997,深圳,2020-08-22,2023-04-23,12500,C +E0187,市场,P7,女,1990,上海,2016-05-04,,30000,A +E0188,销售,P5,女,1991,北京,2015-12-06,2024-03-14,13400,A +E0189,财务,P6,男,1992,上海,2024-09-10,,18400, +E0190,运营,P6,男,1988,北京,2024-06-30,,20000, +E0191,销售,P5,女,1993,北京,2018-03-18,,12700,B +E0192,财务,P5,男,1992,北京,2023-08-15,,12300,D +E0193,市场,P7,女,1987,北京,2022-04-22,,30700,B +E0194,市场,P8,男,1980,北京,2024-07-15,,37700, +E0195,财务,P7,男,1988,上海,2021-01-15,,29900,B +E0196,研发,P5,女,1996,北京,2018-04-20,,17100,B +E0197,研发,P6,男,1988,北京,2019-03-01,,20500,C +E0198,销售,P6,女,1990,北京,2016-09-23,2024-04-30,17900,B +E0199,研发,P4,男,1995,深圳,2015-05-24,2023-10-13,11300,B +E0200,运营,P7,女,1989,上海,2016-06-06,,24500,A +E0201,人力,P5,男,1993,上海,2024-06-13,,10800, +E0202,运营,P6,女,1994,北京,2016-09-28,,16700,C +E0203,运营,P5,女,1997,深圳,2024-02-05,,11600, +E0204,研发,P7,男,1985,北京,2023-03-29,,31000,B +E0205,运营,P7,男,1986,上海,2018-12-12,2022-07-23,27200,B +E0206,运营,P6,女,1987,北京,2020-09-06,,18600,B +E0207,研发,P7,男,1984,上海,2021-11-25,,31400,C +E0208,运营,P4,男,1995,深圳,2018-10-16,,9500,B +E0209,财务,P8,女,1986,上海,2015-02-26,,43300,D +E0210,研发,P6,女,1990,上海,2015-12-04,,23700,C +E0211,研发,P5,女,1990,北京,2020-09-12,2024-09-29,14700,D +E0212,运营,P7,女,1984,北京,2015-02-16,,29400,C +E0213,财务,P7,男,1986,北京,2020-12-11,2022-04-21,27500,A +E0214,财务,P6,女,1990,深圳,2017-10-01,,17800,C +E0215,财务,P5,女,1995,北京,2019-12-13,2023-08-19,13600,B +E0216,财务,P4,女,1993,上海,2024-08-16,,9300, +E0217,销售,P4,女,1994,上海,2022-04-08,,7600,C +E0218,人力,P6,女,1988,北京,2017-10-19,,16800,B +E0219,销售,P5,女,1997,深圳,2022-09-14,,13300,B +E0220,人力,P4,女,1996,北京,2022-12-22,,9200,B +E0221,研发,P5,男,1992,上海,2017-02-04,,15100,C +E0222,销售,P4,男,1997,北京,2021-10-30,,8700,A +E0223,运营,P6,女,1992,北京,2015-07-23,,17500,B +E0224,运营,P6,男,1988,深圳,2023-02-07,2024-04-22,19000,B +E0225,销售,P4,女,1994,深圳,2017-04-19,,8800,A +E0226,销售,P8,女,1981,北京,2015-06-16,,38000,C +E0227,研发,P5,男,1990,北京,2020-10-30,,14200,B +E0228,运营,P4,男,1997,北京,2016-11-17,2024-06-24,8100,B +E0229,销售,P7,女,1984,上海,2021-10-25,2023-08-15,29300,C +E0230,财务,P8,男,1979,北京,2020-08-21,,37000,B +E0231,运营,P6,男,1994,上海,2022-07-23,,19900,C +E0232,研发,P5,女,1992,上海,2018-02-06,,13400,A +E0233,运营,P5,女,1996,深圳,2024-05-24,,11300, +E0234,研发,P5,女,1991,北京,2019-09-08,,13800,B +E0235,市场,P6,男,1987,北京,2015-02-15,,18500,B +E0236,研发,P5,女,1997,北京,2015-07-12,,13600,B +E0237,研发,P5,女,1996,深圳,2018-01-24,2023-02-10,15200,B +E0238,研发,P7,男,1985,上海,2016-11-09,,36300,B +E0239,运营,P5,男,1994,北京,2016-05-13,2023-10-07,13100,B +E0240,市场,P6,男,1994,北京,2023-04-29,,17400,B From af2ecba769f3015bef74491bc44bb03a094df7ad Mon Sep 17 00:00:00 2001 From: Smilewithoutfalling <91455578+Smilewithoutfalling@users.noreply.github.com> Date: Sat, 10 Oct 2026 09:00:05 +0800 Subject: [PATCH 19/28] =?UTF-8?q?=E9=98=B6=E6=AE=B53=EF=BC=9Adata/eval/emp?= =?UTF-8?q?loyees.dict.csv?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/eval/employees.dict.csv | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 data/eval/employees.dict.csv diff --git a/data/eval/employees.dict.csv b/data/eval/employees.dict.csv new file mode 100644 index 0000000..ad29e25 --- /dev/null +++ b/data/eval/employees.dict.csv @@ -0,0 +1,11 @@ +field,description +emp_id,"员工编号" +dept,"所属部门,取值有研发、销售、市场、财务、人力、运营" +level,"职级,P4 最低、P8 最高" +gender,"性别,男或女" +birth_year,"出生年份" +city,"工作城市,取值有北京、上海、深圳" +hire_date,"入职日期,格式 YYYY-MM-DD" +leave_date,"离职日期,格式 YYYY-MM-DD;为空表示仍在职(数据截至 2024-09-30)" +monthly_salary,"月薪(税前基本工资),单位为元" +perf_2023,"2023 年度绩效,A 最好、D 最差;2024 年入职的员工为空" From 152264884e5922ef06bb16b253c28324589a6f10 Mon Sep 17 00:00:00 2001 From: Smilewithoutfalling <91455578+Smilewithoutfalling@users.noreply.github.com> Date: Sat, 10 Oct 2026 09:00:06 +0800 Subject: [PATCH 20/28] =?UTF-8?q?=E9=98=B6=E6=AE=B53=EF=BC=9Adata/eval/inv?= =?UTF-8?q?entory.csv?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/eval/inventory.csv | 1841 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 1841 insertions(+) create mode 100644 data/eval/inventory.csv diff --git a/data/eval/inventory.csv b/data/eval/inventory.csv new file mode 100644 index 0000000..ea098d4 --- /dev/null +++ b/data/eval/inventory.csv @@ -0,0 +1,1841 @@ +date,store,sku,opening_stock,received,sold,closing_stock +2024-03-01,S01,K100,390,0,45,345 +2024-03-02,S01,K100,345,0,44,301 +2024-03-03,S01,K100,301,0,59,242 +2024-03-04,S01,K100,242,226,53,415 +2024-03-05,S01,K100,415,0,38,377 +2024-03-06,S01,K100,377,0,46,331 +2024-03-07,S01,K100,331,137,41,427 +2024-03-08,S01,K100,427,0,45,382 +2024-03-09,S01,K100,382,0,46,336 +2024-03-10,S01,K100,336,0,48,288 +2024-03-11,S01,K100,288,180,46,422 +2024-03-12,S01,K100,422,0,46,376 +2024-03-13,S01,K100,376,0,35,341 +2024-03-14,S01,K100,341,127,35,433 +2024-03-15,S01,K100,433,0,34,399 +2024-03-16,S01,K100,399,0,50,349 +2024-03-17,S01,K100,349,0,39,310 +2024-03-18,S01,K100,310,158,44,424 +2024-03-19,S01,K100,424,0,34,390 +2024-03-20,S01,K100,390,0,45,345 +2024-03-21,S01,K100,345,123,40,428 +2024-03-22,S01,K100,428,0,37,391 +2024-03-23,S01,K100,391,0,53,338 +2024-03-24,S01,K100,338,0,56,282 +2024-03-25,S01,K100,282,186,20,448 +2024-03-26,S01,K100,448,0,38,410 +2024-03-27,S01,K100,410,0,42,368 +2024-03-28,S01,K100,368,100,29,439 +2024-03-29,S01,K100,439,0,40,399 +2024-03-30,S01,K100,399,0,53,346 +2024-03-31,S01,K100,346,0,50,296 +2024-04-01,S01,K100,296,172,44,424 +2024-04-02,S01,K100,424,0,21,403 +2024-04-03,S01,K100,403,0,38,365 +2024-04-04,S01,K100,365,103,29,439 +2024-04-05,S01,K100,439,0,42,397 +2024-04-06,S01,K100,397,0,40,357 +2024-04-07,S01,K100,357,0,50,307 +2024-04-08,S01,K100,307,0,45,262 +2024-04-09,S01,K100,262,0,46,216 +2024-04-10,S01,K100,216,0,34,182 +2024-04-11,S01,K100,182,286,41,427 +2024-04-12,S01,K100,427,0,48,379 +2024-04-13,S01,K100,379,0,50,329 +2024-04-14,S01,K100,329,0,59,270 +2024-04-15,S01,K100,270,198,35,433 +2024-04-16,S01,K100,433,0,36,397 +2024-04-17,S01,K100,397,0,46,351 +2024-04-18,S01,K100,351,117,34,434 +2024-04-19,S01,K100,434,0,35,399 +2024-04-20,S01,K100,399,0,57,342 +2024-04-21,S01,K100,342,0,54,288 +2024-04-22,S01,K100,288,180,41,427 +2024-04-23,S01,K100,427,0,38,389 +2024-04-24,S01,K100,389,0,36,353 +2024-04-25,S01,K100,353,115,37,431 +2024-04-26,S01,K100,431,0,48,383 +2024-04-27,S01,K100,383,0,47,336 +2024-04-28,S01,K100,336,0,57,279 +2024-04-29,S01,K100,279,189,35,433 +2024-04-30,S01,K100,433,0,33,400 +2024-05-01,S01,K100,400,0,56,344 +2024-05-02,S01,K100,344,124,65,403 +2024-05-03,S01,K100,403,0,59,344 +2024-05-04,S01,K100,344,0,75,269 +2024-05-05,S01,K100,269,0,69,200 +2024-05-06,S01,K100,200,0,40,160 +2024-05-07,S01,K100,160,0,48,112 +2024-05-08,S01,K100,112,0,38,74 +2024-05-09,S01,K100,74,394,40,428 +2024-05-10,S01,K100,428,0,41,387 +2024-05-11,S01,K100,387,0,51,336 +2024-05-12,S01,K100,336,0,54,282 +2024-05-13,S01,K100,282,186,49,419 +2024-05-14,S01,K100,419,0,43,376 +2024-05-15,S01,K100,376,0,37,339 +2024-05-16,S01,K100,339,129,52,416 +2024-05-17,S01,K100,416,0,37,379 +2024-05-18,S01,K100,379,0,41,338 +2024-05-19,S01,K100,338,0,50,288 +2024-05-20,S01,K100,288,180,33,435 +2024-05-21,S01,K100,435,0,24,411 +2024-05-22,S01,K100,411,0,46,365 +2024-05-23,S01,K100,365,103,38,430 +2024-05-24,S01,K100,430,0,48,382 +2024-05-25,S01,K100,382,0,48,334 +2024-05-26,S01,K100,334,0,56,278 +2024-05-27,S01,K100,278,190,37,431 +2024-05-28,S01,K100,431,0,29,402 +2024-05-29,S01,K100,402,0,41,361 +2024-05-30,S01,K100,361,107,46,422 +2024-05-31,S01,K100,422,0,45,377 +2024-03-01,S01,K200,234,0,22,212 +2024-03-02,S01,K200,212,0,30,182 +2024-03-03,S01,K200,182,0,34,148 +2024-03-04,S01,K200,148,132,29,251 +2024-03-05,S01,K200,251,0,19,232 +2024-03-06,S01,K200,232,0,20,212 +2024-03-07,S01,K200,212,0,27,185 +2024-03-08,S01,K200,185,0,19,166 +2024-03-09,S01,K200,166,0,31,135 +2024-03-10,S01,K200,135,0,35,100 +2024-03-11,S01,K200,100,180,20,260 +2024-03-12,S01,K200,260,0,18,242 +2024-03-13,S01,K200,242,0,23,219 +2024-03-14,S01,K200,219,0,16,203 +2024-03-15,S01,K200,203,0,30,173 +2024-03-16,S01,K200,173,0,29,144 +2024-03-17,S01,K200,144,0,35,109 +2024-03-18,S01,K200,109,171,35,245 +2024-03-19,S01,K200,245,0,24,221 +2024-03-20,S01,K200,221,0,19,202 +2024-03-21,S01,K200,202,0,19,183 +2024-03-22,S01,K200,183,0,35,148 +2024-03-23,S01,K200,148,0,24,124 +2024-03-24,S01,K200,124,0,32,92 +2024-03-25,S01,K200,92,188,21,259 +2024-03-26,S01,K200,259,0,23,236 +2024-03-27,S01,K200,236,0,37,199 +2024-03-28,S01,K200,199,0,27,172 +2024-03-29,S01,K200,172,0,32,140 +2024-03-30,S01,K200,140,0,29,111 +2024-03-31,S01,K200,111,0,39,72 +2024-04-01,S01,K200,72,208,24,256 +2024-04-02,S01,K200,256,0,23,233 +2024-04-03,S01,K200,233,0,23,210 +2024-04-04,S01,K200,210,0,22,188 +2024-04-05,S01,K200,188,0,27,161 +2024-04-06,S01,K200,161,0,44,117 +2024-04-07,S01,K200,117,0,34,83 +2024-04-08,S01,K200,83,0,18,65 +2024-04-09,S01,K200,65,0,29,36 +2024-04-10,S01,K200,36,0,24,12 +2024-04-11,S01,K200,12,0,12,0 +2024-04-12,S01,K200,0,0,0,0 +2024-04-13,S01,K200,0,0,0,0 +2024-04-14,S01,K200,0,0,0,0 +2024-04-15,S01,K200,0,280,16,264 +2024-04-16,S01,K200,264,0,19,245 +2024-04-17,S01,K200,245,0,17,228 +2024-04-18,S01,K200,228,0,23,205 +2024-04-19,S01,K200,205,0,24,181 +2024-04-20,S01,K200,181,0,25,156 +2024-04-21,S01,K200,156,0,28,128 +2024-04-22,S01,K200,128,152,22,258 +2024-04-23,S01,K200,258,0,26,232 +2024-04-24,S01,K200,232,0,23,209 +2024-04-25,S01,K200,209,0,18,191 +2024-04-26,S01,K200,191,0,32,159 +2024-04-27,S01,K200,159,0,25,134 +2024-04-28,S01,K200,134,0,26,108 +2024-04-29,S01,K200,108,172,6,274 +2024-04-30,S01,K200,274,0,20,254 +2024-05-01,S01,K200,254,0,34,220 +2024-05-02,S01,K200,220,0,29,191 +2024-05-03,S01,K200,191,0,39,152 +2024-05-04,S01,K200,152,0,46,106 +2024-05-05,S01,K200,106,0,55,51 +2024-05-06,S01,K200,51,229,17,263 +2024-05-07,S01,K200,263,0,25,238 +2024-05-08,S01,K200,238,0,26,212 +2024-05-09,S01,K200,212,0,26,186 +2024-05-10,S01,K200,186,0,22,164 +2024-05-11,S01,K200,164,0,32,132 +2024-05-12,S01,K200,132,0,34,98 +2024-05-13,S01,K200,98,182,24,256 +2024-05-14,S01,K200,256,0,22,234 +2024-05-15,S01,K200,234,0,34,200 +2024-05-16,S01,K200,200,0,21,179 +2024-05-17,S01,K200,179,0,17,162 +2024-05-18,S01,K200,162,0,32,130 +2024-05-19,S01,K200,130,0,31,99 +2024-05-20,S01,K200,99,181,21,259 +2024-05-21,S01,K200,259,0,25,234 +2024-05-22,S01,K200,234,0,26,208 +2024-05-23,S01,K200,208,0,18,190 +2024-05-24,S01,K200,190,0,25,165 +2024-05-25,S01,K200,165,0,36,129 +2024-05-26,S01,K200,129,0,30,99 +2024-05-27,S01,K200,99,181,31,249 +2024-05-28,S01,K200,249,0,28,221 +2024-05-29,S01,K200,221,0,22,199 +2024-05-30,S01,K200,199,0,34,165 +2024-05-31,S01,K200,165,0,20,145 +2024-03-01,S01,K300,117,0,13,104 +2024-03-02,S01,K300,104,0,15,89 +2024-03-03,S01,K300,89,0,13,76 +2024-03-04,S01,K300,76,64,9,131 +2024-03-05,S01,K300,131,0,12,119 +2024-03-06,S01,K300,119,0,13,106 +2024-03-07,S01,K300,106,0,14,92 +2024-03-08,S01,K300,92,0,12,80 +2024-03-09,S01,K300,80,0,11,69 +2024-03-10,S01,K300,69,0,18,51 +2024-03-11,S01,K300,51,89,10,130 +2024-03-12,S01,K300,130,0,15,115 +2024-03-13,S01,K300,115,0,11,104 +2024-03-14,S01,K300,104,0,17,87 +2024-03-15,S01,K300,87,0,6,81 +2024-03-16,S01,K300,81,0,15,66 +2024-03-17,S01,K300,66,0,21,45 +2024-03-18,S01,K300,45,95,10,130 +2024-03-19,S01,K300,130,0,9,121 +2024-03-20,S01,K300,121,0,5,116 +2024-03-21,S01,K300,116,0,12,104 +2024-03-22,S01,K300,104,0,16,88 +2024-03-23,S01,K300,88,0,15,73 +2024-03-24,S01,K300,73,0,12,61 +2024-03-25,S01,K300,61,79,11,129 +2024-03-26,S01,K300,129,0,12,117 +2024-03-27,S01,K300,117,0,10,107 +2024-03-28,S01,K300,107,0,10,97 +2024-03-29,S01,K300,97,0,12,85 +2024-03-30,S01,K300,85,0,11,74 +2024-03-31,S01,K300,74,0,8,66 +2024-04-01,S01,K300,66,74,15,125 +2024-04-02,S01,K300,125,0,7,118 +2024-04-03,S01,K300,118,0,12,106 +2024-04-04,S01,K300,106,0,7,99 +2024-04-05,S01,K300,99,0,13,86 +2024-04-06,S01,K300,86,0,16,70 +2024-04-07,S01,K300,70,0,11,59 +2024-04-08,S01,K300,59,81,13,127 +2024-04-09,S01,K300,127,0,10,117 +2024-04-10,S01,K300,117,0,7,110 +2024-04-11,S01,K300,110,0,14,96 +2024-04-12,S01,K300,96,0,10,86 +2024-04-13,S01,K300,86,0,11,75 +2024-04-14,S01,K300,75,0,21,54 +2024-04-15,S01,K300,54,86,8,132 +2024-04-16,S01,K300,132,0,12,120 +2024-04-17,S01,K300,120,0,10,110 +2024-04-18,S01,K300,110,0,8,102 +2024-04-19,S01,K300,102,0,12,90 +2024-04-20,S01,K300,90,0,18,72 +2024-04-21,S01,K300,72,0,16,56 +2024-04-22,S01,K300,56,84,10,130 +2024-04-23,S01,K300,130,0,12,118 +2024-04-24,S01,K300,118,0,18,100 +2024-04-25,S01,K300,100,0,13,87 +2024-04-26,S01,K300,87,0,5,82 +2024-04-27,S01,K300,82,0,15,67 +2024-04-28,S01,K300,67,0,8,59 +2024-04-29,S01,K300,59,81,8,132 +2024-04-30,S01,K300,132,0,7,125 +2024-05-01,S01,K300,125,0,20,105 +2024-05-02,S01,K300,105,0,19,86 +2024-05-03,S01,K300,86,0,7,79 +2024-05-04,S01,K300,79,0,19,60 +2024-05-05,S01,K300,60,0,19,41 +2024-05-06,S01,K300,41,99,12,128 +2024-05-07,S01,K300,128,0,21,107 +2024-05-08,S01,K300,107,0,16,91 +2024-05-09,S01,K300,91,0,15,76 +2024-05-10,S01,K300,76,0,12,64 +2024-05-11,S01,K300,64,0,16,48 +2024-05-12,S01,K300,48,0,11,37 +2024-05-13,S01,K300,37,103,11,129 +2024-05-14,S01,K300,129,0,11,118 +2024-05-15,S01,K300,118,0,10,108 +2024-05-16,S01,K300,108,0,14,94 +2024-05-17,S01,K300,94,0,9,85 +2024-05-18,S01,K300,85,0,11,74 +2024-05-19,S01,K300,74,0,20,54 +2024-05-20,S01,K300,54,86,17,123 +2024-05-21,S01,K300,123,0,10,113 +2024-05-22,S01,K300,113,0,12,101 +2024-05-23,S01,K300,101,0,7,94 +2024-05-24,S01,K300,94,0,12,82 +2024-05-25,S01,K300,82,0,13,69 +2024-05-26,S01,K300,69,0,16,53 +2024-05-27,S01,K300,53,0,11,42 +2024-05-28,S01,K300,42,0,9,33 +2024-05-29,S01,K300,33,0,10,23 +2024-05-30,S01,K300,23,0,12,11 +2024-05-31,S01,K300,11,0,11,0 +2024-03-01,S01,K400,52,0,3,49 +2024-03-02,S01,K400,49,0,5,44 +2024-03-03,S01,K400,44,0,8,36 +2024-03-04,S01,K400,36,26,3,59 +2024-03-05,S01,K400,59,0,3,56 +2024-03-06,S01,K400,56,0,8,48 +2024-03-07,S01,K400,48,0,3,45 +2024-03-08,S01,K400,45,0,9,36 +2024-03-09,S01,K400,36,0,8,28 +2024-03-10,S01,K400,28,0,7,21 +2024-03-11,S01,K400,21,0,6,15 +2024-03-12,S01,K400,15,0,8,7 +2024-03-13,S01,K400,7,0,5,2 +2024-03-14,S01,K400,2,0,2,0 +2024-03-15,S01,K400,0,0,0,0 +2024-03-16,S01,K400,0,0,0,0 +2024-03-17,S01,K400,0,0,0,0 +2024-03-18,S01,K400,0,62,8,54 +2024-03-19,S01,K400,54,0,3,51 +2024-03-20,S01,K400,51,0,4,47 +2024-03-21,S01,K400,47,0,5,42 +2024-03-22,S01,K400,42,0,3,39 +2024-03-23,S01,K400,39,0,6,33 +2024-03-24,S01,K400,33,0,10,23 +2024-03-25,S01,K400,23,39,5,57 +2024-03-26,S01,K400,57,0,5,52 +2024-03-27,S01,K400,52,0,8,44 +2024-03-28,S01,K400,44,0,7,37 +2024-03-29,S01,K400,37,0,6,31 +2024-03-30,S01,K400,31,0,9,22 +2024-03-31,S01,K400,22,0,10,12 +2024-04-01,S01,K400,12,50,5,57 +2024-04-02,S01,K400,57,0,5,52 +2024-04-03,S01,K400,52,0,5,47 +2024-04-04,S01,K400,47,0,3,44 +2024-04-05,S01,K400,44,0,3,41 +2024-04-06,S01,K400,41,0,7,34 +2024-04-07,S01,K400,34,0,5,29 +2024-04-08,S01,K400,29,33,3,59 +2024-04-09,S01,K400,59,0,6,53 +2024-04-10,S01,K400,53,0,5,48 +2024-04-11,S01,K400,48,0,4,44 +2024-04-12,S01,K400,44,0,2,42 +2024-04-13,S01,K400,42,0,6,36 +2024-04-14,S01,K400,36,0,13,23 +2024-04-15,S01,K400,23,39,5,57 +2024-04-16,S01,K400,57,0,7,50 +2024-04-17,S01,K400,50,0,4,46 +2024-04-18,S01,K400,46,0,2,44 +2024-04-19,S01,K400,44,0,4,40 +2024-04-20,S01,K400,40,0,8,32 +2024-04-21,S01,K400,32,0,5,27 +2024-04-22,S01,K400,27,35,1,61 +2024-04-23,S01,K400,61,0,4,57 +2024-04-24,S01,K400,57,0,6,51 +2024-04-25,S01,K400,51,0,7,44 +2024-04-26,S01,K400,44,0,8,36 +2024-04-27,S01,K400,36,0,9,27 +2024-04-28,S01,K400,27,0,7,20 +2024-04-29,S01,K400,20,42,7,55 +2024-04-30,S01,K400,55,0,4,51 +2024-05-01,S01,K400,51,0,8,43 +2024-05-02,S01,K400,43,0,6,37 +2024-05-03,S01,K400,37,0,13,24 +2024-05-04,S01,K400,24,0,6,18 +2024-05-05,S01,K400,18,0,9,9 +2024-05-06,S01,K400,9,53,7,55 +2024-05-07,S01,K400,55,0,4,51 +2024-05-08,S01,K400,51,0,8,43 +2024-05-09,S01,K400,43,0,6,37 +2024-05-10,S01,K400,37,0,5,32 +2024-05-11,S01,K400,32,0,10,22 +2024-05-12,S01,K400,22,0,13,9 +2024-05-13,S01,K400,9,53,4,58 +2024-05-14,S01,K400,58,0,4,54 +2024-05-15,S01,K400,54,0,5,49 +2024-05-16,S01,K400,49,0,7,42 +2024-05-17,S01,K400,42,0,5,37 +2024-05-18,S01,K400,37,0,10,27 +2024-05-19,S01,K400,27,0,6,21 +2024-05-20,S01,K400,21,41,5,57 +2024-05-21,S01,K400,57,0,7,50 +2024-05-22,S01,K400,50,0,5,45 +2024-05-23,S01,K400,45,0,8,37 +2024-05-24,S01,K400,37,0,2,35 +2024-05-25,S01,K400,35,0,8,27 +2024-05-26,S01,K400,27,0,10,17 +2024-05-27,S01,K400,17,45,9,53 +2024-05-28,S01,K400,53,0,7,46 +2024-05-29,S01,K400,46,0,6,40 +2024-05-30,S01,K400,40,0,8,32 +2024-05-31,S01,K400,32,0,9,23 +2024-03-01,S02,K100,300,0,29,271 +2024-03-02,S02,K100,271,0,55,216 +2024-03-03,S02,K100,216,0,31,185 +2024-03-04,S02,K100,185,175,28,332 +2024-03-05,S02,K100,332,0,30,302 +2024-03-06,S02,K100,302,0,27,275 +2024-03-07,S02,K100,275,0,35,240 +2024-03-08,S02,K100,240,0,36,204 +2024-03-09,S02,K100,204,0,27,177 +2024-03-10,S02,K100,177,0,42,135 +2024-03-11,S02,K100,135,225,23,337 +2024-03-12,S02,K100,337,0,25,312 +2024-03-13,S02,K100,312,0,32,280 +2024-03-14,S02,K100,280,80,29,331 +2024-03-15,S02,K100,331,0,23,308 +2024-03-16,S02,K100,308,0,31,277 +2024-03-17,S02,K100,277,0,40,237 +2024-03-18,S02,K100,237,123,34,326 +2024-03-19,S02,K100,326,0,23,303 +2024-03-20,S02,K100,303,0,35,268 +2024-03-21,S02,K100,268,92,35,325 +2024-03-22,S02,K100,325,0,20,305 +2024-03-23,S02,K100,305,0,38,267 +2024-03-24,S02,K100,267,0,41,226 +2024-03-25,S02,K100,226,0,32,194 +2024-03-26,S02,K100,194,0,26,168 +2024-03-27,S02,K100,168,0,33,135 +2024-03-28,S02,K100,135,225,25,335 +2024-03-29,S02,K100,335,0,34,301 +2024-03-30,S02,K100,301,0,40,261 +2024-03-31,S02,K100,261,0,32,229 +2024-04-01,S02,K100,229,131,23,337 +2024-04-02,S02,K100,337,0,36,301 +2024-04-03,S02,K100,301,0,29,272 +2024-04-04,S02,K100,272,88,28,332 +2024-04-05,S02,K100,332,0,38,294 +2024-04-06,S02,K100,294,0,45,249 +2024-04-07,S02,K100,249,0,40,209 +2024-04-08,S02,K100,209,151,26,334 +2024-04-09,S02,K100,334,0,26,308 +2024-04-10,S02,K100,308,0,33,275 +2024-04-11,S02,K100,275,85,26,334 +2024-04-12,S02,K100,334,0,23,311 +2024-04-13,S02,K100,311,0,49,262 +2024-04-14,S02,K100,262,0,34,228 +2024-04-15,S02,K100,228,132,25,335 +2024-04-16,S02,K100,335,0,36,299 +2024-04-17,S02,K100,299,0,29,270 +2024-04-18,S02,K100,270,90,23,337 +2024-04-19,S02,K100,337,0,28,309 +2024-04-20,S02,K100,309,0,36,273 +2024-04-21,S02,K100,273,0,41,232 +2024-04-22,S02,K100,232,128,25,335 +2024-04-23,S02,K100,335,0,24,311 +2024-04-24,S02,K100,311,0,26,285 +2024-04-25,S02,K100,285,75,41,319 +2024-04-26,S02,K100,319,0,42,277 +2024-04-27,S02,K100,277,0,46,231 +2024-04-28,S02,K100,231,0,46,185 +2024-04-29,S02,K100,185,175,39,321 +2024-04-30,S02,K100,321,0,33,288 +2024-05-01,S02,K100,288,0,45,243 +2024-05-02,S02,K100,243,117,34,326 +2024-05-03,S02,K100,326,0,36,290 +2024-05-04,S02,K100,290,0,62,228 +2024-05-05,S02,K100,228,0,60,168 +2024-05-06,S02,K100,168,192,23,337 +2024-05-07,S02,K100,337,0,30,307 +2024-05-08,S02,K100,307,0,36,271 +2024-05-09,S02,K100,271,89,25,335 +2024-05-10,S02,K100,335,0,31,304 +2024-05-11,S02,K100,304,0,50,254 +2024-05-12,S02,K100,254,0,38,216 +2024-05-13,S02,K100,216,144,24,336 +2024-05-14,S02,K100,336,0,22,314 +2024-05-15,S02,K100,314,0,33,281 +2024-05-16,S02,K100,281,79,31,329 +2024-05-17,S02,K100,329,0,30,299 +2024-05-18,S02,K100,299,0,50,249 +2024-05-19,S02,K100,249,0,45,204 +2024-05-20,S02,K100,204,0,28,176 +2024-05-21,S02,K100,176,0,32,144 +2024-05-22,S02,K100,144,0,43,101 +2024-05-23,S02,K100,101,259,37,323 +2024-05-24,S02,K100,323,0,34,289 +2024-05-25,S02,K100,289,0,35,254 +2024-05-26,S02,K100,254,0,42,212 +2024-05-27,S02,K100,212,148,21,339 +2024-05-28,S02,K100,339,0,31,308 +2024-05-29,S02,K100,308,0,32,276 +2024-05-30,S02,K100,276,84,38,322 +2024-05-31,S02,K100,322,0,26,296 +2024-03-01,S02,K200,180,0,18,162 +2024-03-02,S02,K200,162,0,21,141 +2024-03-03,S02,K200,141,0,26,115 +2024-03-04,S02,K200,115,101,18,198 +2024-03-05,S02,K200,198,0,16,182 +2024-03-06,S02,K200,182,0,31,151 +2024-03-07,S02,K200,151,0,14,137 +2024-03-08,S02,K200,137,0,13,124 +2024-03-09,S02,K200,124,0,27,97 +2024-03-10,S02,K200,97,0,37,60 +2024-03-11,S02,K200,60,156,18,198 +2024-03-12,S02,K200,198,0,23,175 +2024-03-13,S02,K200,175,0,25,150 +2024-03-14,S02,K200,150,0,23,127 +2024-03-15,S02,K200,127,0,19,108 +2024-03-16,S02,K200,108,0,20,88 +2024-03-17,S02,K200,88,0,27,61 +2024-03-18,S02,K200,61,0,19,42 +2024-03-19,S02,K200,42,0,14,28 +2024-03-20,S02,K200,28,0,23,5 +2024-03-21,S02,K200,5,0,5,0 +2024-03-22,S02,K200,0,0,0,0 +2024-03-23,S02,K200,0,0,0,0 +2024-03-24,S02,K200,0,0,0,0 +2024-03-25,S02,K200,0,216,21,195 +2024-03-26,S02,K200,195,0,18,177 +2024-03-27,S02,K200,177,0,14,163 +2024-03-28,S02,K200,163,0,19,144 +2024-03-29,S02,K200,144,0,16,128 +2024-03-30,S02,K200,128,0,19,109 +2024-03-31,S02,K200,109,0,23,86 +2024-04-01,S02,K200,86,130,20,196 +2024-04-02,S02,K200,196,0,14,182 +2024-04-03,S02,K200,182,0,17,165 +2024-04-04,S02,K200,165,0,22,143 +2024-04-05,S02,K200,143,0,11,132 +2024-04-06,S02,K200,132,0,28,104 +2024-04-07,S02,K200,104,0,30,74 +2024-04-08,S02,K200,74,142,10,206 +2024-04-09,S02,K200,206,0,21,185 +2024-04-10,S02,K200,185,0,14,171 +2024-04-11,S02,K200,171,0,21,150 +2024-04-12,S02,K200,150,0,13,137 +2024-04-13,S02,K200,137,0,38,99 +2024-04-14,S02,K200,99,0,20,79 +2024-04-15,S02,K200,79,137,15,201 +2024-04-16,S02,K200,201,0,25,176 +2024-04-17,S02,K200,176,0,12,164 +2024-04-18,S02,K200,164,0,18,146 +2024-04-19,S02,K200,146,0,22,124 +2024-04-20,S02,K200,124,0,31,93 +2024-04-21,S02,K200,93,0,29,64 +2024-04-22,S02,K200,64,152,28,188 +2024-04-23,S02,K200,188,0,22,166 +2024-04-24,S02,K200,166,0,17,149 +2024-04-25,S02,K200,149,0,30,119 +2024-04-26,S02,K200,119,0,18,101 +2024-04-27,S02,K200,101,0,19,82 +2024-04-28,S02,K200,82,0,25,57 +2024-04-29,S02,K200,57,159,15,201 +2024-04-30,S02,K200,201,0,14,187 +2024-05-01,S02,K200,187,0,32,155 +2024-05-02,S02,K200,155,0,25,130 +2024-05-03,S02,K200,130,0,24,106 +2024-05-04,S02,K200,106,0,40,66 +2024-05-05,S02,K200,66,0,40,26 +2024-05-06,S02,K200,26,190,15,201 +2024-05-07,S02,K200,201,0,20,181 +2024-05-08,S02,K200,181,0,11,170 +2024-05-09,S02,K200,170,0,17,153 +2024-05-10,S02,K200,153,0,16,137 +2024-05-11,S02,K200,137,0,26,111 +2024-05-12,S02,K200,111,0,24,87 +2024-05-13,S02,K200,87,129,19,197 +2024-05-14,S02,K200,197,0,26,171 +2024-05-15,S02,K200,171,0,16,155 +2024-05-16,S02,K200,155,0,13,142 +2024-05-17,S02,K200,142,0,13,129 +2024-05-18,S02,K200,129,0,23,106 +2024-05-19,S02,K200,106,0,26,80 +2024-05-20,S02,K200,80,136,16,200 +2024-05-21,S02,K200,200,0,13,187 +2024-05-22,S02,K200,187,0,15,172 +2024-05-23,S02,K200,172,0,10,162 +2024-05-24,S02,K200,162,0,16,146 +2024-05-25,S02,K200,146,0,21,125 +2024-05-26,S02,K200,125,0,16,109 +2024-05-27,S02,K200,109,107,17,199 +2024-05-28,S02,K200,199,0,17,182 +2024-05-29,S02,K200,182,0,12,170 +2024-05-30,S02,K200,170,0,21,149 +2024-05-31,S02,K200,149,0,23,126 +2024-03-01,S02,K300,90,0,7,83 +2024-03-02,S02,K300,83,0,9,74 +2024-03-03,S02,K300,74,0,10,64 +2024-03-04,S02,K300,64,44,12,96 +2024-03-05,S02,K300,96,0,8,88 +2024-03-06,S02,K300,88,0,10,78 +2024-03-07,S02,K300,78,0,12,66 +2024-03-08,S02,K300,66,0,13,53 +2024-03-09,S02,K300,53,0,13,40 +2024-03-10,S02,K300,40,0,14,26 +2024-03-11,S02,K300,26,82,5,103 +2024-03-12,S02,K300,103,0,14,89 +2024-03-13,S02,K300,89,0,14,75 +2024-03-14,S02,K300,75,0,7,68 +2024-03-15,S02,K300,68,0,8,60 +2024-03-16,S02,K300,60,0,10,50 +2024-03-17,S02,K300,50,0,9,41 +2024-03-18,S02,K300,41,67,12,96 +2024-03-19,S02,K300,96,0,11,85 +2024-03-20,S02,K300,85,0,4,81 +2024-03-21,S02,K300,81,0,12,69 +2024-03-22,S02,K300,69,0,8,61 +2024-03-23,S02,K300,61,0,13,48 +2024-03-24,S02,K300,48,0,8,40 +2024-03-25,S02,K300,40,0,17,23 +2024-03-26,S02,K300,23,0,9,14 +2024-03-27,S02,K300,14,0,8,6 +2024-03-28,S02,K300,6,0,6,0 +2024-03-29,S02,K300,0,0,0,0 +2024-03-30,S02,K300,0,0,0,0 +2024-03-31,S02,K300,0,0,0,0 +2024-04-01,S02,K300,0,108,7,101 +2024-04-02,S02,K300,101,0,13,88 +2024-04-03,S02,K300,88,0,6,82 +2024-04-04,S02,K300,82,0,11,71 +2024-04-05,S02,K300,71,0,11,60 +2024-04-06,S02,K300,60,0,16,44 +2024-04-07,S02,K300,44,0,15,29 +2024-04-08,S02,K300,29,79,11,97 +2024-04-09,S02,K300,97,0,7,90 +2024-04-10,S02,K300,90,0,9,81 +2024-04-11,S02,K300,81,0,17,64 +2024-04-12,S02,K300,64,0,7,57 +2024-04-13,S02,K300,57,0,18,39 +2024-04-14,S02,K300,39,0,11,28 +2024-04-15,S02,K300,28,80,5,103 +2024-04-16,S02,K300,103,0,9,94 +2024-04-17,S02,K300,94,0,11,83 +2024-04-18,S02,K300,83,0,14,69 +2024-04-19,S02,K300,69,0,7,62 +2024-04-20,S02,K300,62,0,17,45 +2024-04-21,S02,K300,45,0,6,39 +2024-04-22,S02,K300,39,69,7,101 +2024-04-23,S02,K300,101,0,7,94 +2024-04-24,S02,K300,94,0,16,78 +2024-04-25,S02,K300,78,0,14,64 +2024-04-26,S02,K300,64,0,8,56 +2024-04-27,S02,K300,56,0,10,46 +2024-04-28,S02,K300,46,0,4,42 +2024-04-29,S02,K300,42,66,9,99 +2024-04-30,S02,K300,99,0,6,93 +2024-05-01,S02,K300,93,0,11,82 +2024-05-02,S02,K300,82,0,10,72 +2024-05-03,S02,K300,72,0,13,59 +2024-05-04,S02,K300,59,0,18,41 +2024-05-05,S02,K300,41,0,30,11 +2024-05-06,S02,K300,11,97,9,99 +2024-05-07,S02,K300,99,0,15,84 +2024-05-08,S02,K300,84,0,6,78 +2024-05-09,S02,K300,78,0,9,69 +2024-05-10,S02,K300,69,0,6,63 +2024-05-11,S02,K300,63,0,14,49 +2024-05-12,S02,K300,49,0,14,35 +2024-05-13,S02,K300,35,73,10,98 +2024-05-14,S02,K300,98,0,8,90 +2024-05-15,S02,K300,90,0,10,80 +2024-05-16,S02,K300,80,0,9,71 +2024-05-17,S02,K300,71,0,9,62 +2024-05-18,S02,K300,62,0,14,48 +2024-05-19,S02,K300,48,0,10,38 +2024-05-20,S02,K300,38,0,9,29 +2024-05-21,S02,K300,29,0,6,23 +2024-05-22,S02,K300,23,0,6,17 +2024-05-23,S02,K300,17,0,10,7 +2024-05-24,S02,K300,7,0,6,1 +2024-05-25,S02,K300,1,0,1,0 +2024-05-26,S02,K300,0,0,0,0 +2024-05-27,S02,K300,0,108,11,97 +2024-05-28,S02,K300,97,0,12,85 +2024-05-29,S02,K300,85,0,14,71 +2024-05-30,S02,K300,71,0,9,62 +2024-05-31,S02,K300,62,0,9,53 +2024-03-01,S02,K400,40,0,2,38 +2024-03-02,S02,K400,38,0,5,33 +2024-03-03,S02,K400,33,0,2,31 +2024-03-04,S02,K400,31,17,4,44 +2024-03-05,S02,K400,44,0,5,39 +2024-03-06,S02,K400,39,0,1,38 +2024-03-07,S02,K400,38,0,4,34 +2024-03-08,S02,K400,34,0,6,28 +2024-03-09,S02,K400,28,0,5,23 +2024-03-10,S02,K400,23,0,4,19 +2024-03-11,S02,K400,19,29,6,42 +2024-03-12,S02,K400,42,0,7,35 +2024-03-13,S02,K400,35,0,4,31 +2024-03-14,S02,K400,31,0,6,25 +2024-03-15,S02,K400,25,0,2,23 +2024-03-16,S02,K400,23,0,5,18 +2024-03-17,S02,K400,18,0,3,15 +2024-03-18,S02,K400,15,0,2,13 +2024-03-19,S02,K400,13,0,3,10 +2024-03-20,S02,K400,10,0,4,6 +2024-03-21,S02,K400,6,0,6,0 +2024-03-22,S02,K400,0,0,0,0 +2024-03-23,S02,K400,0,0,0,0 +2024-03-24,S02,K400,0,0,0,0 +2024-03-25,S02,K400,0,48,6,42 +2024-03-26,S02,K400,42,0,4,38 +2024-03-27,S02,K400,38,0,4,34 +2024-03-28,S02,K400,34,0,3,31 +2024-03-29,S02,K400,31,0,2,29 +2024-03-30,S02,K400,29,0,4,25 +2024-03-31,S02,K400,25,0,7,18 +2024-04-01,S02,K400,18,30,9,39 +2024-04-02,S02,K400,39,0,1,38 +2024-04-03,S02,K400,38,0,2,36 +2024-04-04,S02,K400,36,0,6,30 +2024-04-05,S02,K400,30,0,7,23 +2024-04-06,S02,K400,23,0,7,16 +2024-04-07,S02,K400,16,0,6,10 +2024-04-08,S02,K400,10,38,4,44 +2024-04-09,S02,K400,44,0,7,37 +2024-04-10,S02,K400,37,0,6,31 +2024-04-11,S02,K400,31,0,4,27 +2024-04-12,S02,K400,27,0,4,23 +2024-04-13,S02,K400,23,0,9,14 +2024-04-14,S02,K400,14,0,5,9 +2024-04-15,S02,K400,9,39,4,44 +2024-04-16,S02,K400,44,0,6,38 +2024-04-17,S02,K400,38,0,3,35 +2024-04-18,S02,K400,35,0,1,34 +2024-04-19,S02,K400,34,0,1,33 +2024-04-20,S02,K400,33,0,5,28 +2024-04-21,S02,K400,28,0,6,22 +2024-04-22,S02,K400,22,26,5,43 +2024-04-23,S02,K400,43,0,6,37 +2024-04-24,S02,K400,37,0,8,29 +2024-04-25,S02,K400,29,0,4,25 +2024-04-26,S02,K400,25,0,4,21 +2024-04-27,S02,K400,21,0,4,17 +2024-04-28,S02,K400,17,0,7,10 +2024-04-29,S02,K400,10,38,5,43 +2024-04-30,S02,K400,43,0,6,37 +2024-05-01,S02,K400,37,0,4,33 +2024-05-02,S02,K400,33,0,5,28 +2024-05-03,S02,K400,28,0,4,24 +2024-05-04,S02,K400,24,0,10,14 +2024-05-05,S02,K400,14,0,6,8 +2024-05-06,S02,K400,8,40,3,45 +2024-05-07,S02,K400,45,0,7,38 +2024-05-08,S02,K400,38,0,9,29 +2024-05-09,S02,K400,29,0,3,26 +2024-05-10,S02,K400,26,0,5,21 +2024-05-11,S02,K400,21,0,9,12 +2024-05-12,S02,K400,12,0,3,9 +2024-05-13,S02,K400,9,39,5,43 +2024-05-14,S02,K400,43,0,5,38 +2024-05-15,S02,K400,38,0,8,30 +2024-05-16,S02,K400,30,0,9,21 +2024-05-17,S02,K400,21,0,6,15 +2024-05-18,S02,K400,15,0,7,8 +2024-05-19,S02,K400,8,0,5,3 +2024-05-20,S02,K400,3,45,2,46 +2024-05-21,S02,K400,46,0,5,41 +2024-05-22,S02,K400,41,0,2,39 +2024-05-23,S02,K400,39,0,4,35 +2024-05-24,S02,K400,35,0,1,34 +2024-05-25,S02,K400,34,0,5,29 +2024-05-26,S02,K400,29,0,6,23 +2024-05-27,S02,K400,23,25,7,41 +2024-05-28,S02,K400,41,0,5,36 +2024-05-29,S02,K400,36,0,4,32 +2024-05-30,S02,K400,32,0,2,30 +2024-05-31,S02,K400,30,0,5,25 +2024-03-01,S03,K100,240,0,18,222 +2024-03-02,S03,K100,222,0,43,179 +2024-03-03,S03,K100,179,0,28,151 +2024-03-04,S03,K100,151,137,17,271 +2024-03-05,S03,K100,271,0,26,245 +2024-03-06,S03,K100,245,0,19,226 +2024-03-07,S03,K100,226,62,22,266 +2024-03-08,S03,K100,266,0,23,243 +2024-03-09,S03,K100,243,0,28,215 +2024-03-10,S03,K100,215,0,28,187 +2024-03-11,S03,K100,187,101,14,274 +2024-03-12,S03,K100,274,0,28,246 +2024-03-13,S03,K100,246,0,16,230 +2024-03-14,S03,K100,230,58,19,269 +2024-03-15,S03,K100,269,0,29,240 +2024-03-16,S03,K100,240,0,32,208 +2024-03-17,S03,K100,208,0,30,178 +2024-03-18,S03,K100,178,110,24,264 +2024-03-19,S03,K100,264,0,18,246 +2024-03-20,S03,K100,246,0,13,233 +2024-03-21,S03,K100,233,55,33,255 +2024-03-22,S03,K100,255,0,29,226 +2024-03-23,S03,K100,226,0,32,194 +2024-03-24,S03,K100,194,0,29,165 +2024-03-25,S03,K100,165,123,20,268 +2024-03-26,S03,K100,268,0,29,239 +2024-03-27,S03,K100,239,0,34,205 +2024-03-28,S03,K100,205,83,27,261 +2024-03-29,S03,K100,261,0,27,234 +2024-03-30,S03,K100,234,0,41,193 +2024-03-31,S03,K100,193,0,29,164 +2024-04-01,S03,K100,164,124,17,271 +2024-04-02,S03,K100,271,0,19,252 +2024-04-03,S03,K100,252,0,24,228 +2024-04-04,S03,K100,228,0,29,199 +2024-04-05,S03,K100,199,0,24,175 +2024-04-06,S03,K100,175,0,30,145 +2024-04-07,S03,K100,145,0,48,97 +2024-04-08,S03,K100,97,191,19,269 +2024-04-09,S03,K100,269,0,19,250 +2024-04-10,S03,K100,250,0,17,233 +2024-04-11,S03,K100,233,55,24,264 +2024-04-12,S03,K100,264,0,30,234 +2024-04-13,S03,K100,234,0,36,198 +2024-04-14,S03,K100,198,0,35,163 +2024-04-15,S03,K100,163,125,33,255 +2024-04-16,S03,K100,255,0,26,229 +2024-04-17,S03,K100,229,0,20,209 +2024-04-18,S03,K100,209,79,22,266 +2024-04-19,S03,K100,266,0,26,240 +2024-04-20,S03,K100,240,0,37,203 +2024-04-21,S03,K100,203,0,34,169 +2024-04-22,S03,K100,169,119,27,261 +2024-04-23,S03,K100,261,0,20,241 +2024-04-24,S03,K100,241,0,25,216 +2024-04-25,S03,K100,216,72,29,259 +2024-04-26,S03,K100,259,0,33,226 +2024-04-27,S03,K100,226,0,31,195 +2024-04-28,S03,K100,195,0,31,164 +2024-04-29,S03,K100,164,124,17,271 +2024-04-30,S03,K100,271,0,26,245 +2024-05-01,S03,K100,245,0,28,217 +2024-05-02,S03,K100,217,71,39,249 +2024-05-03,S03,K100,249,0,46,203 +2024-05-04,S03,K100,203,0,41,162 +2024-05-05,S03,K100,162,0,40,122 +2024-05-06,S03,K100,122,166,27,261 +2024-05-07,S03,K100,261,0,25,236 +2024-05-08,S03,K100,236,0,25,211 +2024-05-09,S03,K100,211,77,24,264 +2024-05-10,S03,K100,264,0,21,243 +2024-05-11,S03,K100,243,0,40,203 +2024-05-12,S03,K100,203,0,43,160 +2024-05-13,S03,K100,160,128,19,269 +2024-05-14,S03,K100,269,0,25,244 +2024-05-15,S03,K100,244,0,21,223 +2024-05-16,S03,K100,223,65,25,263 +2024-05-17,S03,K100,263,0,19,244 +2024-05-18,S03,K100,244,0,33,211 +2024-05-19,S03,K100,211,0,25,186 +2024-05-20,S03,K100,186,0,23,163 +2024-05-21,S03,K100,163,0,27,136 +2024-05-22,S03,K100,136,0,27,109 +2024-05-23,S03,K100,109,179,34,254 +2024-05-24,S03,K100,254,0,25,229 +2024-05-25,S03,K100,229,0,34,195 +2024-05-26,S03,K100,195,0,40,155 +2024-05-27,S03,K100,155,133,20,268 +2024-05-28,S03,K100,268,0,22,246 +2024-05-29,S03,K100,246,0,20,226 +2024-05-30,S03,K100,226,62,19,269 +2024-05-31,S03,K100,269,0,27,242 +2024-03-01,S03,K200,144,0,19,125 +2024-03-02,S03,K200,125,0,17,108 +2024-03-03,S03,K200,108,0,18,90 +2024-03-04,S03,K200,90,0,14,76 +2024-03-05,S03,K200,76,0,21,55 +2024-03-06,S03,K200,55,0,17,38 +2024-03-07,S03,K200,38,0,19,19 +2024-03-08,S03,K200,19,0,18,1 +2024-03-09,S03,K200,1,0,1,0 +2024-03-10,S03,K200,0,0,0,0 +2024-03-11,S03,K200,0,172,13,159 +2024-03-12,S03,K200,159,0,12,147 +2024-03-13,S03,K200,147,0,13,134 +2024-03-14,S03,K200,134,0,12,122 +2024-03-15,S03,K200,122,0,14,108 +2024-03-16,S03,K200,108,0,15,93 +2024-03-17,S03,K200,93,0,18,75 +2024-03-18,S03,K200,75,0,14,61 +2024-03-19,S03,K200,61,0,12,49 +2024-03-20,S03,K200,49,0,13,36 +2024-03-21,S03,K200,36,0,4,32 +2024-03-22,S03,K200,32,0,16,16 +2024-03-23,S03,K200,16,0,14,2 +2024-03-24,S03,K200,2,0,2,0 +2024-03-25,S03,K200,0,172,9,163 +2024-03-26,S03,K200,163,0,9,154 +2024-03-27,S03,K200,154,0,16,138 +2024-03-28,S03,K200,138,0,14,124 +2024-03-29,S03,K200,124,0,18,106 +2024-03-30,S03,K200,106,0,25,81 +2024-03-31,S03,K200,81,0,22,59 +2024-04-01,S03,K200,59,113,9,163 +2024-04-02,S03,K200,163,0,12,151 +2024-04-03,S03,K200,151,0,11,140 +2024-04-04,S03,K200,140,0,14,126 +2024-04-05,S03,K200,126,0,14,112 +2024-04-06,S03,K200,112,0,19,93 +2024-04-07,S03,K200,93,0,26,67 +2024-04-08,S03,K200,67,105,17,155 +2024-04-09,S03,K200,155,0,23,132 +2024-04-10,S03,K200,132,0,25,107 +2024-04-11,S03,K200,107,0,17,90 +2024-04-12,S03,K200,90,0,18,72 +2024-04-13,S03,K200,72,0,19,53 +2024-04-14,S03,K200,53,0,17,36 +2024-04-15,S03,K200,36,136,19,153 +2024-04-16,S03,K200,153,0,15,138 +2024-04-17,S03,K200,138,0,12,126 +2024-04-18,S03,K200,126,0,17,109 +2024-04-19,S03,K200,109,0,12,97 +2024-04-20,S03,K200,97,0,15,82 +2024-04-21,S03,K200,82,0,14,68 +2024-04-22,S03,K200,68,104,16,156 +2024-04-23,S03,K200,156,0,9,147 +2024-04-24,S03,K200,147,0,18,129 +2024-04-25,S03,K200,129,0,10,119 +2024-04-26,S03,K200,119,0,14,105 +2024-04-27,S03,K200,105,0,7,98 +2024-04-28,S03,K200,98,0,18,80 +2024-04-29,S03,K200,80,92,17,155 +2024-04-30,S03,K200,155,0,18,137 +2024-05-01,S03,K200,137,0,20,117 +2024-05-02,S03,K200,117,0,14,103 +2024-05-03,S03,K200,103,0,26,77 +2024-05-04,S03,K200,77,0,29,48 +2024-05-05,S03,K200,48,0,20,28 +2024-05-06,S03,K200,28,144,14,158 +2024-05-07,S03,K200,158,0,17,141 +2024-05-08,S03,K200,141,0,16,125 +2024-05-09,S03,K200,125,0,20,105 +2024-05-10,S03,K200,105,0,15,90 +2024-05-11,S03,K200,90,0,25,65 +2024-05-12,S03,K200,65,0,18,47 +2024-05-13,S03,K200,47,125,12,160 +2024-05-14,S03,K200,160,0,20,140 +2024-05-15,S03,K200,140,0,18,122 +2024-05-16,S03,K200,122,0,20,102 +2024-05-17,S03,K200,102,0,19,83 +2024-05-18,S03,K200,83,0,19,64 +2024-05-19,S03,K200,64,0,12,52 +2024-05-20,S03,K200,52,120,13,159 +2024-05-21,S03,K200,159,0,8,151 +2024-05-22,S03,K200,151,0,24,127 +2024-05-23,S03,K200,127,0,14,113 +2024-05-24,S03,K200,113,0,13,100 +2024-05-25,S03,K200,100,0,17,83 +2024-05-26,S03,K200,83,0,11,72 +2024-05-27,S03,K200,72,100,14,158 +2024-05-28,S03,K200,158,0,13,145 +2024-05-29,S03,K200,145,0,8,137 +2024-05-30,S03,K200,137,0,13,124 +2024-05-31,S03,K200,124,0,19,105 +2024-03-01,S03,K300,72,0,8,64 +2024-03-02,S03,K300,64,0,17,47 +2024-03-03,S03,K300,47,0,8,39 +2024-03-04,S03,K300,39,47,6,80 +2024-03-05,S03,K300,80,0,4,76 +2024-03-06,S03,K300,76,0,6,70 +2024-03-07,S03,K300,70,0,6,64 +2024-03-08,S03,K300,64,0,5,59 +2024-03-09,S03,K300,59,0,13,46 +2024-03-10,S03,K300,46,0,12,34 +2024-03-11,S03,K300,34,52,11,75 +2024-03-12,S03,K300,75,0,7,68 +2024-03-13,S03,K300,68,0,10,58 +2024-03-14,S03,K300,58,0,4,54 +2024-03-15,S03,K300,54,0,8,46 +2024-03-16,S03,K300,46,0,12,34 +2024-03-17,S03,K300,34,0,12,22 +2024-03-18,S03,K300,22,64,6,80 +2024-03-19,S03,K300,80,0,4,76 +2024-03-20,S03,K300,76,0,6,70 +2024-03-21,S03,K300,70,0,7,63 +2024-03-22,S03,K300,63,0,6,57 +2024-03-23,S03,K300,57,0,7,50 +2024-03-24,S03,K300,50,0,8,42 +2024-03-25,S03,K300,42,44,5,81 +2024-03-26,S03,K300,81,0,6,75 +2024-03-27,S03,K300,75,0,9,66 +2024-03-28,S03,K300,66,0,9,57 +2024-03-29,S03,K300,57,0,7,50 +2024-03-30,S03,K300,50,0,10,40 +2024-03-31,S03,K300,40,0,10,30 +2024-04-01,S03,K300,30,56,7,79 +2024-04-02,S03,K300,79,0,9,70 +2024-04-03,S03,K300,70,0,6,64 +2024-04-04,S03,K300,64,0,9,55 +2024-04-05,S03,K300,55,0,12,43 +2024-04-06,S03,K300,43,0,9,34 +2024-04-07,S03,K300,34,0,7,27 +2024-04-08,S03,K300,27,59,6,80 +2024-04-09,S03,K300,80,0,7,73 +2024-04-10,S03,K300,73,0,15,58 +2024-04-11,S03,K300,58,0,5,53 +2024-04-12,S03,K300,53,0,7,46 +2024-04-13,S03,K300,46,0,6,40 +2024-04-14,S03,K300,40,0,9,31 +2024-04-15,S03,K300,31,55,5,81 +2024-04-16,S03,K300,81,0,7,74 +2024-04-17,S03,K300,74,0,6,68 +2024-04-18,S03,K300,68,0,8,60 +2024-04-19,S03,K300,60,0,5,55 +2024-04-20,S03,K300,55,0,14,41 +2024-04-21,S03,K300,41,0,7,34 +2024-04-22,S03,K300,34,52,7,79 +2024-04-23,S03,K300,79,0,3,76 +2024-04-24,S03,K300,76,0,8,68 +2024-04-25,S03,K300,68,0,3,65 +2024-04-26,S03,K300,65,0,10,55 +2024-04-27,S03,K300,55,0,8,47 +2024-04-28,S03,K300,47,0,9,38 +2024-04-29,S03,K300,38,48,3,83 +2024-04-30,S03,K300,83,0,6,77 +2024-05-01,S03,K300,77,0,13,64 +2024-05-02,S03,K300,64,0,7,57 +2024-05-03,S03,K300,57,0,10,47 +2024-05-04,S03,K300,47,0,20,27 +2024-05-05,S03,K300,27,0,14,13 +2024-05-06,S03,K300,13,73,7,79 +2024-05-07,S03,K300,79,0,11,68 +2024-05-08,S03,K300,68,0,8,60 +2024-05-09,S03,K300,60,0,7,53 +2024-05-10,S03,K300,53,0,8,45 +2024-05-11,S03,K300,45,0,10,35 +2024-05-12,S03,K300,35,0,7,28 +2024-05-13,S03,K300,28,58,4,82 +2024-05-14,S03,K300,82,0,12,70 +2024-05-15,S03,K300,70,0,7,63 +2024-05-16,S03,K300,63,0,8,55 +2024-05-17,S03,K300,55,0,7,48 +2024-05-18,S03,K300,48,0,8,40 +2024-05-19,S03,K300,40,0,11,29 +2024-05-20,S03,K300,29,57,4,82 +2024-05-21,S03,K300,82,0,10,72 +2024-05-22,S03,K300,72,0,4,68 +2024-05-23,S03,K300,68,0,5,63 +2024-05-24,S03,K300,63,0,11,52 +2024-05-25,S03,K300,52,0,12,40 +2024-05-26,S03,K300,40,0,9,31 +2024-05-27,S03,K300,31,55,12,74 +2024-05-28,S03,K300,74,0,3,71 +2024-05-29,S03,K300,71,0,4,67 +2024-05-30,S03,K300,67,0,6,61 +2024-05-31,S03,K300,61,0,6,55 +2024-03-01,S03,K400,32,0,2,30 +2024-03-02,S03,K400,30,0,2,28 +2024-03-03,S03,K400,28,0,4,24 +2024-03-04,S03,K400,24,14,4,34 +2024-03-05,S03,K400,34,0,2,32 +2024-03-06,S03,K400,32,0,5,27 +2024-03-07,S03,K400,27,0,3,24 +2024-03-08,S03,K400,24,0,4,20 +2024-03-09,S03,K400,20,0,6,14 +2024-03-10,S03,K400,14,0,6,8 +2024-03-11,S03,K400,8,30,2,36 +2024-03-12,S03,K400,36,0,3,33 +2024-03-13,S03,K400,33,0,4,29 +2024-03-14,S03,K400,29,0,2,27 +2024-03-15,S03,K400,27,0,2,25 +2024-03-16,S03,K400,25,0,0,25 +2024-03-17,S03,K400,25,0,5,20 +2024-03-18,S03,K400,20,18,1,37 +2024-03-19,S03,K400,37,0,6,31 +2024-03-20,S03,K400,31,0,4,27 +2024-03-21,S03,K400,27,0,4,23 +2024-03-22,S03,K400,23,0,7,16 +2024-03-23,S03,K400,16,0,6,10 +2024-03-24,S03,K400,10,0,6,4 +2024-03-25,S03,K400,4,34,2,36 +2024-03-26,S03,K400,36,0,1,35 +2024-03-27,S03,K400,35,0,4,31 +2024-03-28,S03,K400,31,0,2,29 +2024-03-29,S03,K400,29,0,4,25 +2024-03-30,S03,K400,25,0,2,23 +2024-03-31,S03,K400,23,0,5,18 +2024-04-01,S03,K400,18,20,4,34 +2024-04-02,S03,K400,34,0,3,31 +2024-04-03,S03,K400,31,0,1,30 +2024-04-04,S03,K400,30,0,4,26 +2024-04-05,S03,K400,26,0,0,26 +2024-04-06,S03,K400,26,0,4,22 +2024-04-07,S03,K400,22,0,12,10 +2024-04-08,S03,K400,10,0,4,6 +2024-04-09,S03,K400,6,0,2,4 +2024-04-10,S03,K400,4,0,4,0 +2024-04-11,S03,K400,0,0,0,0 +2024-04-12,S03,K400,0,0,0,0 +2024-04-13,S03,K400,0,0,0,0 +2024-04-14,S03,K400,0,0,0,0 +2024-04-15,S03,K400,0,38,4,34 +2024-04-16,S03,K400,34,0,1,33 +2024-04-17,S03,K400,33,0,5,28 +2024-04-18,S03,K400,28,0,6,22 +2024-04-19,S03,K400,22,0,4,18 +2024-04-20,S03,K400,18,0,8,10 +2024-04-21,S03,K400,10,0,5,5 +2024-04-22,S03,K400,5,33,4,34 +2024-04-23,S03,K400,34,0,5,29 +2024-04-24,S03,K400,29,0,6,23 +2024-04-25,S03,K400,23,0,6,17 +2024-04-26,S03,K400,17,0,4,13 +2024-04-27,S03,K400,13,0,3,10 +2024-04-28,S03,K400,10,0,3,7 +2024-04-29,S03,K400,7,31,2,36 +2024-04-30,S03,K400,36,0,1,35 +2024-05-01,S03,K400,35,0,7,28 +2024-05-02,S03,K400,28,0,2,26 +2024-05-03,S03,K400,26,0,5,21 +2024-05-04,S03,K400,21,0,9,12 +2024-05-05,S03,K400,12,0,8,4 +2024-05-06,S03,K400,4,34,5,33 +2024-05-07,S03,K400,33,0,2,31 +2024-05-08,S03,K400,31,0,4,27 +2024-05-09,S03,K400,27,0,3,24 +2024-05-10,S03,K400,24,0,3,21 +2024-05-11,S03,K400,21,0,10,11 +2024-05-12,S03,K400,11,0,4,7 +2024-05-13,S03,K400,7,31,5,33 +2024-05-14,S03,K400,33,0,2,31 +2024-05-15,S03,K400,31,0,4,27 +2024-05-16,S03,K400,27,0,3,24 +2024-05-17,S03,K400,24,0,3,21 +2024-05-18,S03,K400,21,0,4,17 +2024-05-19,S03,K400,17,0,2,15 +2024-05-20,S03,K400,15,23,1,37 +2024-05-21,S03,K400,37,0,3,34 +2024-05-22,S03,K400,34,0,4,30 +2024-05-23,S03,K400,30,0,3,27 +2024-05-24,S03,K400,27,0,2,25 +2024-05-25,S03,K400,25,0,6,19 +2024-05-26,S03,K400,19,0,6,13 +2024-05-27,S03,K400,13,25,1,37 +2024-05-28,S03,K400,37,0,4,33 +2024-05-29,S03,K400,33,0,4,29 +2024-05-30,S03,K400,29,0,1,28 +2024-05-31,S03,K400,28,0,6,22 +2024-03-01,S04,K100,330,0,33,297 +2024-03-02,S04,K100,297,0,45,252 +2024-03-03,S04,K100,252,0,40,212 +2024-03-04,S04,K100,212,184,29,367 +2024-03-05,S04,K100,367,0,43,324 +2024-03-06,S04,K100,324,0,33,291 +2024-03-07,S04,K100,291,105,37,359 +2024-03-08,S04,K100,359,0,34,325 +2024-03-09,S04,K100,325,0,43,282 +2024-03-10,S04,K100,282,0,34,248 +2024-03-11,S04,K100,248,148,30,366 +2024-03-12,S04,K100,366,0,31,335 +2024-03-13,S04,K100,335,0,25,310 +2024-03-14,S04,K100,310,86,33,363 +2024-03-15,S04,K100,363,0,32,331 +2024-03-16,S04,K100,331,0,39,292 +2024-03-17,S04,K100,292,0,53,239 +2024-03-18,S04,K100,239,157,31,365 +2024-03-19,S04,K100,365,0,39,326 +2024-03-20,S04,K100,326,0,39,287 +2024-03-21,S04,K100,287,109,28,368 +2024-03-22,S04,K100,368,0,21,347 +2024-03-23,S04,K100,347,0,34,313 +2024-03-24,S04,K100,313,0,35,278 +2024-03-25,S04,K100,278,118,27,369 +2024-03-26,S04,K100,369,0,41,328 +2024-03-27,S04,K100,328,0,34,294 +2024-03-28,S04,K100,294,102,31,365 +2024-03-29,S04,K100,365,0,36,329 +2024-03-30,S04,K100,329,0,51,278 +2024-03-31,S04,K100,278,0,43,235 +2024-04-01,S04,K100,235,161,41,355 +2024-04-02,S04,K100,355,0,30,325 +2024-04-03,S04,K100,325,0,33,292 +2024-04-04,S04,K100,292,104,34,362 +2024-04-05,S04,K100,362,0,31,331 +2024-04-06,S04,K100,331,0,45,286 +2024-04-07,S04,K100,286,0,46,240 +2024-04-08,S04,K100,240,156,24,372 +2024-04-09,S04,K100,372,0,34,338 +2024-04-10,S04,K100,338,0,37,301 +2024-04-11,S04,K100,301,95,23,373 +2024-04-12,S04,K100,373,0,30,343 +2024-04-13,S04,K100,343,0,53,290 +2024-04-14,S04,K100,290,0,45,245 +2024-04-15,S04,K100,245,0,38,207 +2024-04-16,S04,K100,207,0,29,178 +2024-04-17,S04,K100,178,0,35,143 +2024-04-18,S04,K100,143,253,32,364 +2024-04-19,S04,K100,364,0,45,319 +2024-04-20,S04,K100,319,0,30,289 +2024-04-21,S04,K100,289,0,43,246 +2024-04-22,S04,K100,246,150,25,371 +2024-04-23,S04,K100,371,0,32,339 +2024-04-24,S04,K100,339,0,27,312 +2024-04-25,S04,K100,312,84,28,368 +2024-04-26,S04,K100,368,0,24,344 +2024-04-27,S04,K100,344,0,35,309 +2024-04-28,S04,K100,309,0,41,268 +2024-04-29,S04,K100,268,128,37,359 +2024-04-30,S04,K100,359,0,26,333 +2024-05-01,S04,K100,333,0,62,271 +2024-05-02,S04,K100,271,125,48,348 +2024-05-03,S04,K100,348,0,56,292 +2024-05-04,S04,K100,292,0,59,233 +2024-05-05,S04,K100,233,0,63,170 +2024-05-06,S04,K100,170,226,27,369 +2024-05-07,S04,K100,369,0,34,335 +2024-05-08,S04,K100,335,0,35,300 +2024-05-09,S04,K100,300,96,33,363 +2024-05-10,S04,K100,363,0,31,332 +2024-05-11,S04,K100,332,0,47,285 +2024-05-12,S04,K100,285,0,46,239 +2024-05-13,S04,K100,239,157,31,365 +2024-05-14,S04,K100,365,0,38,327 +2024-05-15,S04,K100,327,0,33,294 +2024-05-16,S04,K100,294,102,39,357 +2024-05-17,S04,K100,357,0,41,316 +2024-05-18,S04,K100,316,0,43,273 +2024-05-19,S04,K100,273,0,38,235 +2024-05-20,S04,K100,235,161,32,364 +2024-05-21,S04,K100,364,0,32,332 +2024-05-22,S04,K100,332,0,21,311 +2024-05-23,S04,K100,311,85,29,367 +2024-05-24,S04,K100,367,0,34,333 +2024-05-25,S04,K100,333,0,50,283 +2024-05-26,S04,K100,283,0,52,231 +2024-05-27,S04,K100,231,165,32,364 +2024-05-28,S04,K100,364,0,41,323 +2024-05-29,S04,K100,323,0,33,290 +2024-05-30,S04,K100,290,106,36,360 +2024-05-31,S04,K100,360,0,29,331 +2024-03-01,S04,K200,198,0,23,175 +2024-03-02,S04,K200,175,0,31,144 +2024-03-03,S04,K200,144,0,26,118 +2024-03-04,S04,K200,118,119,24,213 +2024-03-05,S04,K200,213,0,20,193 +2024-03-06,S04,K200,193,0,20,173 +2024-03-07,S04,K200,173,0,21,152 +2024-03-08,S04,K200,152,0,23,129 +2024-03-09,S04,K200,129,0,23,106 +2024-03-10,S04,K200,106,0,29,77 +2024-03-11,S04,K200,77,160,24,213 +2024-03-12,S04,K200,213,0,19,194 +2024-03-13,S04,K200,194,0,23,171 +2024-03-14,S04,K200,171,0,11,160 +2024-03-15,S04,K200,160,0,22,138 +2024-03-16,S04,K200,138,0,19,119 +2024-03-17,S04,K200,119,0,23,96 +2024-03-18,S04,K200,96,141,23,214 +2024-03-19,S04,K200,214,0,21,193 +2024-03-20,S04,K200,193,0,17,176 +2024-03-21,S04,K200,176,0,22,154 +2024-03-22,S04,K200,154,0,18,136 +2024-03-23,S04,K200,136,0,31,105 +2024-03-24,S04,K200,105,0,27,78 +2024-03-25,S04,K200,78,159,21,216 +2024-03-26,S04,K200,216,0,17,199 +2024-03-27,S04,K200,199,0,19,180 +2024-03-28,S04,K200,180,0,16,164 +2024-03-29,S04,K200,164,0,12,152 +2024-03-30,S04,K200,152,0,33,119 +2024-03-31,S04,K200,119,0,36,83 +2024-04-01,S04,K200,83,154,14,223 +2024-04-02,S04,K200,223,0,19,204 +2024-04-03,S04,K200,204,0,13,191 +2024-04-04,S04,K200,191,0,21,170 +2024-04-05,S04,K200,170,0,12,158 +2024-04-06,S04,K200,158,0,27,131 +2024-04-07,S04,K200,131,0,18,113 +2024-04-08,S04,K200,113,124,22,215 +2024-04-09,S04,K200,215,0,16,199 +2024-04-10,S04,K200,199,0,19,180 +2024-04-11,S04,K200,180,0,15,165 +2024-04-12,S04,K200,165,0,15,150 +2024-04-13,S04,K200,150,0,26,124 +2024-04-14,S04,K200,124,0,25,99 +2024-04-15,S04,K200,99,138,21,216 +2024-04-16,S04,K200,216,0,22,194 +2024-04-17,S04,K200,194,0,26,168 +2024-04-18,S04,K200,168,0,24,144 +2024-04-19,S04,K200,144,0,16,128 +2024-04-20,S04,K200,128,0,26,102 +2024-04-21,S04,K200,102,0,26,76 +2024-04-22,S04,K200,76,161,17,220 +2024-04-23,S04,K200,220,0,17,203 +2024-04-24,S04,K200,203,0,22,181 +2024-04-25,S04,K200,181,0,15,166 +2024-04-26,S04,K200,166,0,13,153 +2024-04-27,S04,K200,153,0,32,121 +2024-04-28,S04,K200,121,0,27,94 +2024-04-29,S04,K200,94,143,25,212 +2024-04-30,S04,K200,212,0,25,187 +2024-05-01,S04,K200,187,0,24,163 +2024-05-02,S04,K200,163,0,29,134 +2024-05-03,S04,K200,134,0,32,102 +2024-05-04,S04,K200,102,0,42,60 +2024-05-05,S04,K200,60,0,34,26 +2024-05-06,S04,K200,26,211,24,213 +2024-05-07,S04,K200,213,0,27,186 +2024-05-08,S04,K200,186,0,19,167 +2024-05-09,S04,K200,167,0,17,150 +2024-05-10,S04,K200,150,0,15,135 +2024-05-11,S04,K200,135,0,29,106 +2024-05-12,S04,K200,106,0,28,78 +2024-05-13,S04,K200,78,159,16,221 +2024-05-14,S04,K200,221,0,14,207 +2024-05-15,S04,K200,207,0,21,186 +2024-05-16,S04,K200,186,0,23,163 +2024-05-17,S04,K200,163,0,22,141 +2024-05-18,S04,K200,141,0,28,113 +2024-05-19,S04,K200,113,0,23,90 +2024-05-20,S04,K200,90,147,26,211 +2024-05-21,S04,K200,211,0,20,191 +2024-05-22,S04,K200,191,0,20,171 +2024-05-23,S04,K200,171,0,18,153 +2024-05-24,S04,K200,153,0,22,131 +2024-05-25,S04,K200,131,0,26,105 +2024-05-26,S04,K200,105,0,31,74 +2024-05-27,S04,K200,74,163,16,221 +2024-05-28,S04,K200,221,0,28,193 +2024-05-29,S04,K200,193,0,19,174 +2024-05-30,S04,K200,174,0,23,151 +2024-05-31,S04,K200,151,0,12,139 +2024-03-01,S04,K300,99,0,11,88 +2024-03-02,S04,K300,88,0,9,79 +2024-03-03,S04,K300,79,0,8,71 +2024-03-04,S04,K300,71,47,10,108 +2024-03-05,S04,K300,108,0,10,98 +2024-03-06,S04,K300,98,0,14,84 +2024-03-07,S04,K300,84,0,15,69 +2024-03-08,S04,K300,69,0,16,53 +2024-03-09,S04,K300,53,0,12,41 +2024-03-10,S04,K300,41,0,13,28 +2024-03-11,S04,K300,28,90,15,103 +2024-03-12,S04,K300,103,0,6,97 +2024-03-13,S04,K300,97,0,18,79 +2024-03-14,S04,K300,79,0,11,68 +2024-03-15,S04,K300,68,0,11,57 +2024-03-16,S04,K300,57,0,12,45 +2024-03-17,S04,K300,45,0,15,30 +2024-03-18,S04,K300,30,88,11,107 +2024-03-19,S04,K300,107,0,15,92 +2024-03-20,S04,K300,92,0,9,83 +2024-03-21,S04,K300,83,0,7,76 +2024-03-22,S04,K300,76,0,10,66 +2024-03-23,S04,K300,66,0,13,53 +2024-03-24,S04,K300,53,0,12,41 +2024-03-25,S04,K300,41,77,4,114 +2024-03-26,S04,K300,114,0,8,106 +2024-03-27,S04,K300,106,0,10,96 +2024-03-28,S04,K300,96,0,8,88 +2024-03-29,S04,K300,88,0,18,70 +2024-03-30,S04,K300,70,0,14,56 +2024-03-31,S04,K300,56,0,17,39 +2024-04-01,S04,K300,39,79,11,107 +2024-04-02,S04,K300,107,0,17,90 +2024-04-03,S04,K300,90,0,9,81 +2024-04-04,S04,K300,81,0,15,66 +2024-04-05,S04,K300,66,0,11,55 +2024-04-06,S04,K300,55,0,16,39 +2024-04-07,S04,K300,39,0,13,26 +2024-04-08,S04,K300,26,92,11,107 +2024-04-09,S04,K300,107,0,4,103 +2024-04-10,S04,K300,103,0,8,95 +2024-04-11,S04,K300,95,0,14,81 +2024-04-12,S04,K300,81,0,12,69 +2024-04-13,S04,K300,69,0,13,56 +2024-04-14,S04,K300,56,0,12,44 +2024-04-15,S04,K300,44,74,9,109 +2024-04-16,S04,K300,109,0,13,96 +2024-04-17,S04,K300,96,0,10,86 +2024-04-18,S04,K300,86,0,7,79 +2024-04-19,S04,K300,79,0,9,70 +2024-04-20,S04,K300,70,0,20,50 +2024-04-21,S04,K300,50,0,13,37 +2024-04-22,S04,K300,37,81,13,105 +2024-04-23,S04,K300,105,0,10,95 +2024-04-24,S04,K300,95,0,10,85 +2024-04-25,S04,K300,85,0,11,74 +2024-04-26,S04,K300,74,0,14,60 +2024-04-27,S04,K300,60,0,7,53 +2024-04-28,S04,K300,53,0,20,33 +2024-04-29,S04,K300,33,85,6,112 +2024-04-30,S04,K300,112,0,6,106 +2024-05-01,S04,K300,106,0,14,92 +2024-05-02,S04,K300,92,0,13,79 +2024-05-03,S04,K300,79,0,7,72 +2024-05-04,S04,K300,72,0,23,49 +2024-05-05,S04,K300,49,0,19,30 +2024-05-06,S04,K300,30,88,11,107 +2024-05-07,S04,K300,107,0,12,95 +2024-05-08,S04,K300,95,0,9,86 +2024-05-09,S04,K300,86,0,16,70 +2024-05-10,S04,K300,70,0,9,61 +2024-05-11,S04,K300,61,0,16,45 +2024-05-12,S04,K300,45,0,10,35 +2024-05-13,S04,K300,35,83,8,110 +2024-05-14,S04,K300,110,0,14,96 +2024-05-15,S04,K300,96,0,12,84 +2024-05-16,S04,K300,84,0,5,79 +2024-05-17,S04,K300,79,0,11,68 +2024-05-18,S04,K300,68,0,16,52 +2024-05-19,S04,K300,52,0,10,42 +2024-05-20,S04,K300,42,76,10,108 +2024-05-21,S04,K300,108,0,10,98 +2024-05-22,S04,K300,98,0,10,88 +2024-05-23,S04,K300,88,0,13,75 +2024-05-24,S04,K300,75,0,10,65 +2024-05-25,S04,K300,65,0,13,52 +2024-05-26,S04,K300,52,0,11,41 +2024-05-27,S04,K300,41,77,15,103 +2024-05-28,S04,K300,103,0,11,92 +2024-05-29,S04,K300,92,0,8,84 +2024-05-30,S04,K300,84,0,9,75 +2024-05-31,S04,K300,75,0,12,63 +2024-03-01,S04,K400,44,0,3,41 +2024-03-02,S04,K400,41,0,7,34 +2024-03-03,S04,K400,34,0,5,29 +2024-03-04,S04,K400,29,23,5,47 +2024-03-05,S04,K400,47,0,4,43 +2024-03-06,S04,K400,43,0,2,41 +2024-03-07,S04,K400,41,0,13,28 +2024-03-08,S04,K400,28,0,7,21 +2024-03-09,S04,K400,21,0,6,15 +2024-03-10,S04,K400,15,0,7,8 +2024-03-11,S04,K400,8,44,5,47 +2024-03-12,S04,K400,47,0,1,46 +2024-03-13,S04,K400,46,0,8,38 +2024-03-14,S04,K400,38,0,4,34 +2024-03-15,S04,K400,34,0,4,30 +2024-03-16,S04,K400,30,0,3,27 +2024-03-17,S04,K400,27,0,10,17 +2024-03-18,S04,K400,17,0,8,9 +2024-03-19,S04,K400,9,0,4,5 +2024-03-20,S04,K400,5,0,3,2 +2024-03-21,S04,K400,2,0,2,0 +2024-03-22,S04,K400,0,0,0,0 +2024-03-23,S04,K400,0,0,0,0 +2024-03-24,S04,K400,0,0,0,0 +2024-03-25,S04,K400,0,0,0,0 +2024-03-26,S04,K400,0,0,0,0 +2024-03-27,S04,K400,0,0,0,0 +2024-03-28,S04,K400,0,0,0,0 +2024-03-29,S04,K400,0,0,0,0 +2024-03-30,S04,K400,0,0,0,0 +2024-03-31,S04,K400,0,0,0,0 +2024-04-01,S04,K400,0,52,10,42 +2024-04-02,S04,K400,42,0,4,38 +2024-04-03,S04,K400,38,0,4,34 +2024-04-04,S04,K400,34,0,1,33 +2024-04-05,S04,K400,33,0,7,26 +2024-04-06,S04,K400,26,0,9,17 +2024-04-07,S04,K400,17,0,8,9 +2024-04-08,S04,K400,9,0,7,2 +2024-04-09,S04,K400,2,0,2,0 +2024-04-10,S04,K400,0,0,0,0 +2024-04-11,S04,K400,0,0,0,0 +2024-04-12,S04,K400,0,0,0,0 +2024-04-13,S04,K400,0,0,0,0 +2024-04-14,S04,K400,0,0,0,0 +2024-04-15,S04,K400,0,52,10,42 +2024-04-16,S04,K400,42,0,4,38 +2024-04-17,S04,K400,38,0,3,35 +2024-04-18,S04,K400,35,0,6,29 +2024-04-19,S04,K400,29,0,3,26 +2024-04-20,S04,K400,26,0,8,18 +2024-04-21,S04,K400,18,0,6,12 +2024-04-22,S04,K400,12,40,1,51 +2024-04-23,S04,K400,51,0,4,47 +2024-04-24,S04,K400,47,0,3,44 +2024-04-25,S04,K400,44,0,7,37 +2024-04-26,S04,K400,37,0,5,32 +2024-04-27,S04,K400,32,0,5,27 +2024-04-28,S04,K400,27,0,3,24 +2024-04-29,S04,K400,24,28,4,48 +2024-04-30,S04,K400,48,0,9,39 +2024-05-01,S04,K400,39,0,6,33 +2024-05-02,S04,K400,33,0,5,28 +2024-05-03,S04,K400,28,0,6,22 +2024-05-04,S04,K400,22,0,6,16 +2024-05-05,S04,K400,16,0,12,4 +2024-05-06,S04,K400,4,48,3,49 +2024-05-07,S04,K400,49,0,2,47 +2024-05-08,S04,K400,47,0,2,45 +2024-05-09,S04,K400,45,0,5,40 +2024-05-10,S04,K400,40,0,6,34 +2024-05-11,S04,K400,34,0,8,26 +2024-05-12,S04,K400,26,0,6,20 +2024-05-13,S04,K400,20,32,5,47 +2024-05-14,S04,K400,47,0,4,43 +2024-05-15,S04,K400,43,0,3,40 +2024-05-16,S04,K400,40,0,4,36 +2024-05-17,S04,K400,36,0,4,32 +2024-05-18,S04,K400,32,0,7,25 +2024-05-19,S04,K400,25,0,6,19 +2024-05-20,S04,K400,19,33,3,49 +2024-05-21,S04,K400,49,0,4,45 +2024-05-22,S04,K400,45,0,4,41 +2024-05-23,S04,K400,41,0,2,39 +2024-05-24,S04,K400,39,0,4,35 +2024-05-25,S04,K400,35,0,6,29 +2024-05-26,S04,K400,29,0,10,19 +2024-05-27,S04,K400,19,33,7,45 +2024-05-28,S04,K400,45,0,3,42 +2024-05-29,S04,K400,42,0,3,39 +2024-05-30,S04,K400,39,0,7,32 +2024-05-31,S04,K400,32,0,0,32 +2024-03-01,S05,K100,180,0,16,164 +2024-03-02,S05,K100,164,0,21,143 +2024-03-03,S05,K100,143,0,28,115 +2024-03-04,S05,K100,115,101,18,198 +2024-03-05,S05,K100,198,0,15,183 +2024-03-06,S05,K100,183,0,20,163 +2024-03-07,S05,K100,163,53,9,207 +2024-03-08,S05,K100,207,0,13,194 +2024-03-09,S05,K100,194,0,15,179 +2024-03-10,S05,K100,179,0,19,160 +2024-03-11,S05,K100,160,56,11,205 +2024-03-12,S05,K100,205,0,23,182 +2024-03-13,S05,K100,182,0,17,165 +2024-03-14,S05,K100,165,51,13,203 +2024-03-15,S05,K100,203,0,14,189 +2024-03-16,S05,K100,189,0,23,166 +2024-03-17,S05,K100,166,0,24,142 +2024-03-18,S05,K100,142,74,15,201 +2024-03-19,S05,K100,201,0,21,180 +2024-03-20,S05,K100,180,0,14,166 +2024-03-21,S05,K100,166,50,19,197 +2024-03-22,S05,K100,197,0,18,179 +2024-03-23,S05,K100,179,0,31,148 +2024-03-24,S05,K100,148,0,22,126 +2024-03-25,S05,K100,126,90,16,200 +2024-03-26,S05,K100,200,0,18,182 +2024-03-27,S05,K100,182,0,12,170 +2024-03-28,S05,K100,170,46,15,201 +2024-03-29,S05,K100,201,0,14,187 +2024-03-30,S05,K100,187,0,20,167 +2024-03-31,S05,K100,167,0,25,142 +2024-04-01,S05,K100,142,74,24,192 +2024-04-02,S05,K100,192,0,15,177 +2024-04-03,S05,K100,177,0,17,160 +2024-04-04,S05,K100,160,56,24,192 +2024-04-05,S05,K100,192,0,21,171 +2024-04-06,S05,K100,171,0,26,145 +2024-04-07,S05,K100,145,0,20,125 +2024-04-08,S05,K100,125,91,17,199 +2024-04-09,S05,K100,199,0,12,187 +2024-04-10,S05,K100,187,0,19,168 +2024-04-11,S05,K100,168,48,21,195 +2024-04-12,S05,K100,195,0,13,182 +2024-04-13,S05,K100,182,0,33,149 +2024-04-14,S05,K100,149,0,24,125 +2024-04-15,S05,K100,125,91,27,189 +2024-04-16,S05,K100,189,0,16,173 +2024-04-17,S05,K100,173,0,17,156 +2024-04-18,S05,K100,156,60,12,204 +2024-04-19,S05,K100,204,0,25,179 +2024-04-20,S05,K100,179,0,28,151 +2024-04-21,S05,K100,151,0,27,124 +2024-04-22,S05,K100,124,92,20,196 +2024-04-23,S05,K100,196,0,19,177 +2024-04-24,S05,K100,177,0,22,155 +2024-04-25,S05,K100,155,61,11,205 +2024-04-26,S05,K100,205,0,16,189 +2024-04-27,S05,K100,189,0,17,172 +2024-04-28,S05,K100,172,0,18,154 +2024-04-29,S05,K100,154,62,12,204 +2024-04-30,S05,K100,204,0,17,187 +2024-05-01,S05,K100,187,0,35,152 +2024-05-02,S05,K100,152,64,21,195 +2024-05-03,S05,K100,195,0,26,169 +2024-05-04,S05,K100,169,0,43,126 +2024-05-05,S05,K100,126,0,30,96 +2024-05-06,S05,K100,96,120,27,189 +2024-05-07,S05,K100,189,0,15,174 +2024-05-08,S05,K100,174,0,21,153 +2024-05-09,S05,K100,153,63,19,197 +2024-05-10,S05,K100,197,0,14,183 +2024-05-11,S05,K100,183,0,26,157 +2024-05-12,S05,K100,157,0,24,133 +2024-05-13,S05,K100,133,83,15,201 +2024-05-14,S05,K100,201,0,17,184 +2024-05-15,S05,K100,184,0,17,167 +2024-05-16,S05,K100,167,49,15,201 +2024-05-17,S05,K100,201,0,18,183 +2024-05-18,S05,K100,183,0,23,160 +2024-05-19,S05,K100,160,0,28,132 +2024-05-20,S05,K100,132,84,12,204 +2024-05-21,S05,K100,204,0,18,186 +2024-05-22,S05,K100,186,0,16,170 +2024-05-23,S05,K100,170,46,17,199 +2024-05-24,S05,K100,199,0,14,185 +2024-05-25,S05,K100,185,0,22,163 +2024-05-26,S05,K100,163,0,26,137 +2024-05-27,S05,K100,137,79,14,202 +2024-05-28,S05,K100,202,0,21,181 +2024-05-29,S05,K100,181,0,22,159 +2024-05-30,S05,K100,159,57,14,202 +2024-05-31,S05,K100,202,0,17,185 +2024-03-01,S05,K200,107,0,12,95 +2024-03-02,S05,K200,95,0,15,80 +2024-03-03,S05,K200,80,0,13,67 +2024-03-04,S05,K200,67,62,8,121 +2024-03-05,S05,K200,121,0,10,111 +2024-03-06,S05,K200,111,0,8,103 +2024-03-07,S05,K200,103,0,17,86 +2024-03-08,S05,K200,86,0,9,77 +2024-03-09,S05,K200,77,0,15,62 +2024-03-10,S05,K200,62,0,18,44 +2024-03-11,S05,K200,44,85,11,118 +2024-03-12,S05,K200,118,0,11,107 +2024-03-13,S05,K200,107,0,6,101 +2024-03-14,S05,K200,101,0,7,94 +2024-03-15,S05,K200,94,0,9,85 +2024-03-16,S05,K200,85,0,14,71 +2024-03-17,S05,K200,71,0,12,59 +2024-03-18,S05,K200,59,70,8,121 +2024-03-19,S05,K200,121,0,13,108 +2024-03-20,S05,K200,108,0,17,91 +2024-03-21,S05,K200,91,0,12,79 +2024-03-22,S05,K200,79,0,8,71 +2024-03-23,S05,K200,71,0,21,50 +2024-03-24,S05,K200,50,0,11,39 +2024-03-25,S05,K200,39,90,18,111 +2024-03-26,S05,K200,111,0,15,96 +2024-03-27,S05,K200,96,0,10,86 +2024-03-28,S05,K200,86,0,13,73 +2024-03-29,S05,K200,73,0,9,64 +2024-03-30,S05,K200,64,0,15,49 +2024-03-31,S05,K200,49,0,19,30 +2024-04-01,S05,K200,30,99,14,115 +2024-04-02,S05,K200,115,0,9,106 +2024-04-03,S05,K200,106,0,8,98 +2024-04-04,S05,K200,98,0,10,88 +2024-04-05,S05,K200,88,0,13,75 +2024-04-06,S05,K200,75,0,26,49 +2024-04-07,S05,K200,49,0,13,36 +2024-04-08,S05,K200,36,93,4,125 +2024-04-09,S05,K200,125,0,8,117 +2024-04-10,S05,K200,117,0,13,104 +2024-04-11,S05,K200,104,0,12,92 +2024-04-12,S05,K200,92,0,13,79 +2024-04-13,S05,K200,79,0,18,61 +2024-04-14,S05,K200,61,0,10,51 +2024-04-15,S05,K200,51,78,14,115 +2024-04-16,S05,K200,115,0,7,108 +2024-04-17,S05,K200,108,0,6,102 +2024-04-18,S05,K200,102,0,8,94 +2024-04-19,S05,K200,94,0,8,86 +2024-04-20,S05,K200,86,0,11,75 +2024-04-21,S05,K200,75,0,12,63 +2024-04-22,S05,K200,63,66,9,120 +2024-04-23,S05,K200,120,0,13,107 +2024-04-24,S05,K200,107,0,10,97 +2024-04-25,S05,K200,97,0,9,88 +2024-04-26,S05,K200,88,0,12,76 +2024-04-27,S05,K200,76,0,24,52 +2024-04-28,S05,K200,52,0,19,33 +2024-04-29,S05,K200,33,96,11,118 +2024-04-30,S05,K200,118,0,24,94 +2024-05-01,S05,K200,94,0,16,78 +2024-05-02,S05,K200,78,0,23,55 +2024-05-03,S05,K200,55,0,19,36 +2024-05-04,S05,K200,36,0,16,20 +2024-05-05,S05,K200,20,0,20,0 +2024-05-06,S05,K200,0,129,9,120 +2024-05-07,S05,K200,120,0,15,105 +2024-05-08,S05,K200,105,0,12,93 +2024-05-09,S05,K200,93,0,4,89 +2024-05-10,S05,K200,89,0,11,78 +2024-05-11,S05,K200,78,0,15,63 +2024-05-12,S05,K200,63,0,11,52 +2024-05-13,S05,K200,52,77,14,115 +2024-05-14,S05,K200,115,0,15,100 +2024-05-15,S05,K200,100,0,13,87 +2024-05-16,S05,K200,87,0,7,80 +2024-05-17,S05,K200,80,0,5,75 +2024-05-18,S05,K200,75,0,12,63 +2024-05-19,S05,K200,63,0,12,51 +2024-05-20,S05,K200,51,78,13,116 +2024-05-21,S05,K200,116,0,13,103 +2024-05-22,S05,K200,103,0,13,90 +2024-05-23,S05,K200,90,0,14,76 +2024-05-24,S05,K200,76,0,8,68 +2024-05-25,S05,K200,68,0,13,55 +2024-05-26,S05,K200,55,0,12,43 +2024-05-27,S05,K200,43,86,10,119 +2024-05-28,S05,K200,119,0,9,110 +2024-05-29,S05,K200,110,0,7,103 +2024-05-30,S05,K200,103,0,7,96 +2024-05-31,S05,K200,96,0,10,86 +2024-03-01,S05,K300,53,0,5,48 +2024-03-02,S05,K300,48,0,7,41 +2024-03-03,S05,K300,41,0,11,30 +2024-03-04,S05,K300,30,34,8,56 +2024-03-05,S05,K300,56,0,10,46 +2024-03-06,S05,K300,46,0,6,40 +2024-03-07,S05,K300,40,0,3,37 +2024-03-08,S05,K300,37,0,5,32 +2024-03-09,S05,K300,32,0,5,27 +2024-03-10,S05,K300,27,0,8,19 +2024-03-11,S05,K300,19,0,2,17 +2024-03-12,S05,K300,17,0,4,13 +2024-03-13,S05,K300,13,0,5,8 +2024-03-14,S05,K300,8,0,4,4 +2024-03-15,S05,K300,4,0,3,1 +2024-03-16,S05,K300,1,0,1,0 +2024-03-17,S05,K300,0,0,0,0 +2024-03-18,S05,K300,0,64,6,58 +2024-03-19,S05,K300,58,0,5,53 +2024-03-20,S05,K300,53,0,9,44 +2024-03-21,S05,K300,44,0,2,42 +2024-03-22,S05,K300,42,0,5,37 +2024-03-23,S05,K300,37,0,9,28 +2024-03-24,S05,K300,28,0,7,21 +2024-03-25,S05,K300,21,43,6,58 +2024-03-26,S05,K300,58,0,10,48 +2024-03-27,S05,K300,48,0,8,40 +2024-03-28,S05,K300,40,0,4,36 +2024-03-29,S05,K300,36,0,7,29 +2024-03-30,S05,K300,29,0,9,20 +2024-03-31,S05,K300,20,0,10,10 +2024-04-01,S05,K300,10,54,7,57 +2024-04-02,S05,K300,57,0,9,48 +2024-04-03,S05,K300,48,0,2,46 +2024-04-04,S05,K300,46,0,7,39 +2024-04-05,S05,K300,39,0,5,34 +2024-04-06,S05,K300,34,0,6,28 +2024-04-07,S05,K300,28,0,9,19 +2024-04-08,S05,K300,19,45,2,62 +2024-04-09,S05,K300,62,0,4,58 +2024-04-10,S05,K300,58,0,9,49 +2024-04-11,S05,K300,49,0,7,42 +2024-04-12,S05,K300,42,0,4,38 +2024-04-13,S05,K300,38,0,6,32 +2024-04-14,S05,K300,32,0,10,22 +2024-04-15,S05,K300,22,0,9,13 +2024-04-16,S05,K300,13,0,6,7 +2024-04-17,S05,K300,7,0,7,0 +2024-04-18,S05,K300,0,0,0,0 +2024-04-19,S05,K300,0,0,0,0 +2024-04-20,S05,K300,0,0,0,0 +2024-04-21,S05,K300,0,0,0,0 +2024-04-22,S05,K300,0,64,3,61 +2024-04-23,S05,K300,61,0,3,58 +2024-04-24,S05,K300,58,0,3,55 +2024-04-25,S05,K300,55,0,6,49 +2024-04-26,S05,K300,49,0,4,45 +2024-04-27,S05,K300,45,0,6,39 +2024-04-28,S05,K300,39,0,5,34 +2024-04-29,S05,K300,34,30,7,57 +2024-04-30,S05,K300,57,0,7,50 +2024-05-01,S05,K300,50,0,7,43 +2024-05-02,S05,K300,43,0,11,32 +2024-05-03,S05,K300,32,0,12,20 +2024-05-04,S05,K300,20,0,12,8 +2024-05-05,S05,K300,8,0,8,0 +2024-05-06,S05,K300,0,64,1,63 +2024-05-07,S05,K300,63,0,6,57 +2024-05-08,S05,K300,57,0,5,52 +2024-05-09,S05,K300,52,0,4,48 +2024-05-10,S05,K300,48,0,6,42 +2024-05-11,S05,K300,42,0,4,38 +2024-05-12,S05,K300,38,0,5,33 +2024-05-13,S05,K300,33,31,7,57 +2024-05-14,S05,K300,57,0,7,50 +2024-05-15,S05,K300,50,0,2,48 +2024-05-16,S05,K300,48,0,3,45 +2024-05-17,S05,K300,45,0,7,38 +2024-05-18,S05,K300,38,0,8,30 +2024-05-19,S05,K300,30,0,11,19 +2024-05-20,S05,K300,19,45,5,59 +2024-05-21,S05,K300,59,0,7,52 +2024-05-22,S05,K300,52,0,8,44 +2024-05-23,S05,K300,44,0,7,37 +2024-05-24,S05,K300,37,0,4,33 +2024-05-25,S05,K300,33,0,8,25 +2024-05-26,S05,K300,25,0,4,21 +2024-05-27,S05,K300,21,43,8,56 +2024-05-28,S05,K300,56,0,5,51 +2024-05-29,S05,K300,51,0,8,43 +2024-05-30,S05,K300,43,0,7,36 +2024-05-31,S05,K300,36,0,9,27 +2024-03-01,S05,K400,24,0,2,22 +2024-03-02,S05,K400,22,0,4,18 +2024-03-03,S05,K400,18,0,5,13 +2024-03-04,S05,K400,13,15,4,24 +2024-03-05,S05,K400,24,0,0,24 +2024-03-06,S05,K400,24,0,3,21 +2024-03-07,S05,K400,21,0,4,17 +2024-03-08,S05,K400,17,0,3,14 +2024-03-09,S05,K400,14,0,2,12 +2024-03-10,S05,K400,12,0,2,10 +2024-03-11,S05,K400,10,0,2,8 +2024-03-12,S05,K400,8,0,2,6 +2024-03-13,S05,K400,6,0,1,5 +2024-03-14,S05,K400,5,0,1,4 +2024-03-15,S05,K400,4,0,2,2 +2024-03-16,S05,K400,2,0,2,0 +2024-03-17,S05,K400,0,0,0,0 +2024-03-18,S05,K400,0,28,2,26 +2024-03-19,S05,K400,26,0,2,24 +2024-03-20,S05,K400,24,0,3,21 +2024-03-21,S05,K400,21,0,0,21 +2024-03-22,S05,K400,21,0,2,19 +2024-03-23,S05,K400,19,0,3,16 +2024-03-24,S05,K400,16,0,5,11 +2024-03-25,S05,K400,11,17,1,27 +2024-03-26,S05,K400,27,0,1,26 +2024-03-27,S05,K400,26,0,2,24 +2024-03-28,S05,K400,24,0,0,24 +2024-03-29,S05,K400,24,0,2,22 +2024-03-30,S05,K400,22,0,6,16 +2024-03-31,S05,K400,16,0,2,14 +2024-04-01,S05,K400,14,14,3,25 +2024-04-02,S05,K400,25,0,1,24 +2024-04-03,S05,K400,24,0,1,23 +2024-04-04,S05,K400,23,0,4,19 +2024-04-05,S05,K400,19,0,2,17 +2024-04-06,S05,K400,17,0,4,13 +2024-04-07,S05,K400,13,0,0,13 +2024-04-08,S05,K400,13,15,2,26 +2024-04-09,S05,K400,26,0,2,24 +2024-04-10,S05,K400,24,0,1,23 +2024-04-11,S05,K400,23,0,1,22 +2024-04-12,S05,K400,22,0,1,21 +2024-04-13,S05,K400,21,0,6,15 +2024-04-14,S05,K400,15,0,3,12 +2024-04-15,S05,K400,12,16,2,26 +2024-04-16,S05,K400,26,0,3,23 +2024-04-17,S05,K400,23,0,6,17 +2024-04-18,S05,K400,17,0,5,12 +2024-04-19,S05,K400,12,0,7,5 +2024-04-20,S05,K400,5,0,2,3 +2024-04-21,S05,K400,3,0,3,0 +2024-04-22,S05,K400,0,28,0,28 +2024-04-23,S05,K400,28,0,5,23 +2024-04-24,S05,K400,23,0,2,21 +2024-04-25,S05,K400,21,0,4,17 +2024-04-26,S05,K400,17,0,1,16 +2024-04-27,S05,K400,16,0,4,12 +2024-04-28,S05,K400,12,0,3,9 +2024-04-29,S05,K400,9,19,3,25 +2024-04-30,S05,K400,25,0,4,21 +2024-05-01,S05,K400,21,0,3,18 +2024-05-02,S05,K400,18,0,2,16 +2024-05-03,S05,K400,16,0,3,13 +2024-05-04,S05,K400,13,0,3,10 +2024-05-05,S05,K400,10,0,4,6 +2024-05-06,S05,K400,6,22,3,25 +2024-05-07,S05,K400,25,0,1,24 +2024-05-08,S05,K400,24,0,2,22 +2024-05-09,S05,K400,22,0,2,20 +2024-05-10,S05,K400,20,0,3,17 +2024-05-11,S05,K400,17,0,6,11 +2024-05-12,S05,K400,11,0,2,9 +2024-05-13,S05,K400,9,19,2,26 +2024-05-14,S05,K400,26,0,0,26 +2024-05-15,S05,K400,26,0,2,24 +2024-05-16,S05,K400,24,0,3,21 +2024-05-17,S05,K400,21,0,1,20 +2024-05-18,S05,K400,20,0,2,18 +2024-05-19,S05,K400,18,0,2,16 +2024-05-20,S05,K400,16,12,1,27 +2024-05-21,S05,K400,27,0,1,26 +2024-05-22,S05,K400,26,0,3,23 +2024-05-23,S05,K400,23,0,4,19 +2024-05-24,S05,K400,19,0,4,15 +2024-05-25,S05,K400,15,0,2,13 +2024-05-26,S05,K400,13,0,4,9 +2024-05-27,S05,K400,9,0,1,8 +2024-05-28,S05,K400,8,0,3,5 +2024-05-29,S05,K400,5,0,2,3 +2024-05-30,S05,K400,3,0,2,1 +2024-05-31,S05,K400,1,0,0,1 From dd75e27abeeba1f927052ce93bfbb3cafea2533d Mon Sep 17 00:00:00 2001 From: Smilewithoutfalling <91455578+Smilewithoutfalling@users.noreply.github.com> Date: Sat, 10 Oct 2026 09:00:08 +0800 Subject: [PATCH 21/28] =?UTF-8?q?=E9=98=B6=E6=AE=B53=EF=BC=9Adata/eval/inv?= =?UTF-8?q?entory.dict.csv?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/eval/inventory.dict.csv | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 data/eval/inventory.dict.csv diff --git a/data/eval/inventory.dict.csv b/data/eval/inventory.dict.csv new file mode 100644 index 0000000..e2cb4a7 --- /dev/null +++ b/data/eval/inventory.dict.csv @@ -0,0 +1,8 @@ +field,description +date,"日期,格式 YYYY-MM-DD,范围 2024-03-01 至 2024-05-31" +store,"门店编号,取值有 S01、S02、S03、S04、S05" +sku,"商品编号,取值有 K100、K200、K300、K400" +opening_stock,"当日期初库存,单位为件" +received,"当日到货补货数量,单位为件" +sold,"当日销量,单位为件;库存不足时销量受限" +closing_stock,"当日期末库存,单位为件,= 期初 + 到货 − 销量;为 0 表示当日缺货(售罄)" From 7f6345d611c649f42e750d794edcc82d98927eb6 Mon Sep 17 00:00:00 2001 From: Smilewithoutfalling <91455578+Smilewithoutfalling@users.noreply.github.com> Date: Sat, 10 Oct 2026 09:00:09 +0800 Subject: [PATCH 22/28] =?UTF-8?q?=E9=98=B6=E6=AE=B53=EF=BC=9Adata/eval/ord?= =?UTF-8?q?ers.csv?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/eval/orders.csv | 1219 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1219 insertions(+) create mode 100644 data/eval/orders.csv diff --git a/data/eval/orders.csv b/data/eval/orders.csv new file mode 100644 index 0000000..54319b0 --- /dev/null +++ b/data/eval/orders.csv @@ -0,0 +1,1219 @@ +order_id,order_date,user_id,city,channel,category,qty,unit_price,discount,pay_amount,status +O000001,2024-01-01,U0115,深圳,小程序,服饰,3,225.9,0.0,677.7,已完成 +O000002,2024-01-01,U0139,杭州,APP,食品,1,90.9,0.1,81.81,已退款 +O000003,2024-01-01,U0180,杭州,APP,服饰,2,66.9,0.1,120.42,已取消 +O000004,2024-01-01,U0316,杭州,网页,家居,3,591.9,0.2,1420.56,已完成 +O000005,2024-01-01,U0050,杭州,网页,服饰,2,232.9,0.05,442.51,已完成 +O000006,2024-01-01,U0234,深圳,网页,食品,2,46.9,0.05,89.11,已完成 +O000007,2024-01-01,U0130,深圳,APP,食品,1,29.9,0.1,26.91,已完成 +O000008,2024-01-02,U0221,成都,小程序,食品,4,68.9,0.15,234.26,已完成 +O000009,2024-01-02,U0097,广州,小程序,食品,2,29.9,0.15,50.83,已完成 +O000010,2024-01-02,U0163,北京,APP,食品,3,36.9,,110.7,已完成 +O000011,2024-01-03,U0018,广州,APP,食品,2,36.9,,73.8,已完成 +O000012,2024-01-03,U0355,广州,小程序,数码,2,1591.9,0.0,3183.8,已完成 +O000013,2024-01-03,U0015,广州,小程序,数码,5,1887.9,0.2,7551.6,已完成 +O000014,2024-01-04,U0075,北京,小程序,美妆,1,71.9,0.15,61.12,已取消 +O000015,2024-01-04,U0316,上海,网页,家居,2,637.9,0.15,1084.43,已完成 +O000016,2024-01-04,U0224,,APP,家居,1,341.9,0.1,307.71,已完成 +O000017,2024-01-04,U0106,上海,小程序,美妆,2,434.9,0.1,782.82,已完成 +O000018,2024-01-04,U0195,北京,APP,服饰,1,326.9,,326.9,已完成 +O000019,2024-01-05,U0217,广州,小程序,服饰,4,82.9,0.15,281.86,已完成 +O000020,2024-01-05,U0097,上海,APP,家居,2,433.9,,867.8,已完成 +O000021,2024-01-05,U0100,深圳,小程序,食品,2,54.9,0.1,98.82,已完成 +O000022,2024-01-06,U0315,成都,小程序,食品,2,64.9,0.05,123.31,已完成 +O000023,2024-01-06,U0115,深圳,网页,数码,4,642.9,0.0,2571.6,已完成 +O000024,2024-01-06,U0254,广州,APP,服饰,1,201.9,0.1,181.71,已完成 +O000025,2024-01-06,U0130,成都,APP,服饰,3,274.9,0.15,700.99,已完成 +O000026,2024-01-06,U0113,上海,APP,服饰,2,186.9,0.2,299.04,已完成 +O000027,2024-01-06,U0062,杭州,小程序,家居,2,293.9,0.2,470.24,已完成 +O000028,2024-01-07,U0134,成都,小程序,美妆,4,277.9,0.2,889.28,已完成 +O000029,2024-01-07,U0092,上海,网页,食品,3,35.9,0.05,102.31,已完成 +O000030,2024-01-07,U0199,上海,APP,数码,4,2139.9,0.0,8559.6,已完成 +O000031,2024-01-07,U0153,上海,小程序,美妆,1,555.9,0.1,500.31,已完成 +O000032,2024-01-08,U0316,成都,APP,美妆,1,399.9,,399.9,已完成 +O000033,2024-01-08,U0158,上海,小程序,食品,5,19.9,0.1,89.55,已完成 +O000034,2024-01-08,U0108,深圳,APP,美妆,4,207.9,0.15,706.86,已完成 +O000035,2024-01-09,U0296,北京,小程序,数码,2,1808.9,,3617.8,已完成 +O000036,2024-01-09,U0056,杭州,APP,美妆,4,60.9,0.05,231.42,已完成 +O000037,2024-01-09,U0335,武汉,网页,家居,1,405.9,0.1,365.31,已完成 +O000038,2024-01-10,U0291,武汉,小程序,家居,1,372.9,0.0,372.9,已完成 +O000039,2024-01-10,U0316,杭州,小程序,服饰,1,336.9,0.2,269.52,已完成 +O000040,2024-01-11,U0082,武汉,APP,美妆,2,469.9,0.1,845.82,已退款 +O000041,2024-01-11,U0227,北京,APP,数码,1,2217.9,0.1,1996.11,已完成 +O000042,2024-01-11,U0209,上海,小程序,服饰,1,168.9,0.0,168.9,已完成 +O000042,2024-01-11,U0209,上海,小程序,服饰,1,168.9,0.0,168.9,已完成 +O000043,2024-01-11,U0097,成都,APP,服饰,5,108.9,0.05,517.28,已完成 +O000044,2024-01-11,U0115,成都,APP,家居,5,69.9,0.2,279.6,已完成 +O000045,2024-01-11,U0124,杭州,APP,服饰,1,217.9,0.15,185.22,已取消 +O000046,2024-01-11,U0125,成都,小程序,美妆,2,459.9,0.15,781.83,已完成 +O000047,2024-01-11,U0338,成都,APP,美妆,1,141.9,0.1,127.71,已完成 +O000048,2024-01-11,U0175,杭州,APP,家居,2,315.9,0.05,600.21,已完成 +O000049,2024-01-12,U0180,上海,网页,服饰,1,276.9,0.1,249.21,已完成 +O000050,2024-01-12,U0013,上海,网页,家居,2,195.9,0.1,352.62,已完成 +O000051,2024-01-12,U0081,广州,APP,服饰,1,378.9,0.05,359.96,已完成 +O000052,2024-01-12,U0077,武汉,小程序,服饰,5,385.9,0.3,1350.65,已完成 +O000053,2024-01-12,U0028,广州,小程序,食品,1,79.9,0.1,71.91,已完成 +O000053,2024-01-12,U0028,广州,小程序,食品,1,79.9,0.1,71.91,已完成 +O000054,2024-01-12,U0321,成都,APP,美妆,1,516.9,0.1,465.21,已完成 +O000055,2024-01-13,U0291,,网页,食品,3,115.9,0.05,330.32,已完成 +O000056,2024-01-13,U0324,成都,小程序,家居,3,463.9,0.0,1391.7,已完成 +O000057,2024-01-13,U0318,北京,小程序,服饰,4,111.9,,447.6,已完成 +O000058,2024-01-13,U0161,武汉,网页,服饰,1,363.9,0.1,327.51,已完成 +O000059,2024-01-13,U0021,北京,小程序,食品,2,34.9,0.1,62.82,已完成 +O000060,2024-01-14,U0161,成都,APP,食品,2,37.9,0.0,75.8,已取消 +O000061,2024-01-14,U0336,杭州,小程序,数码,4,732.9,0.0,2931.6,已退款 +O000062,2024-01-14,U0257,北京,小程序,食品,2,51.9,0.1,93.42,已完成 +O000063,2024-01-14,U0058,北京,小程序,美妆,1,60.9,0.0,60.9,已完成 +O000064,2024-01-14,U0243,武汉,小程序,食品,1,67.9,0.2,54.32,已完成 +O000065,2024-01-14,U0042,上海,APP,家居,1,190.9,0.3,133.63,已完成 +O000066,2024-01-14,U0091,上海,APP,数码,4,2983.9,0.05,11338.82,已退款 +O000067,2024-01-15,U0308,杭州,APP,家居,1,597.9,0.15,508.22,已完成 +O000068,2024-01-15,U0242,广州,APP,美妆,5,464.9,0.15,1975.82,已完成 +O000069,2024-01-15,U0118,武汉,APP,家居,4,336.9,,1347.6,已完成 +O000070,2024-01-15,U0280,上海,APP,食品,2,57.9,0.05,110.01,已完成 +O000071,2024-01-15,U0137,北京,小程序,数码,1,1837.9,0.1,1654.11,已完成 +O000072,2024-01-16,U0071,北京,APP,家居,2,397.9,,795.8,已完成 +O000073,2024-01-16,U0093,深圳,APP,美妆,2,204.9,0.05,389.31,已完成 +O000074,2024-01-16,U0125,北京,APP,美妆,2,278.9,,557.8,已完成 +O000075,2024-01-16,U0088,武汉,APP,服饰,1,269.9,0.05,256.4,已完成 +O000076,2024-01-16,U0272,,APP,美妆,2,586.9,0.1,1056.42,已完成 +O000077,2024-01-16,U0097,成都,小程序,食品,3,40.9,0.05,116.56,已完成 +O000078,2024-01-17,U0061,杭州,小程序,服饰,3,102.9,0.1,277.83,已取消 +O000078,2024-01-17,U0061,杭州,小程序,服饰,3,102.9,0.1,277.83,已取消 +O000079,2024-01-17,U0049,深圳,网页,服饰,5,284.9,0.1,1282.05,已取消 +O000080,2024-01-17,U0064,北京,APP,服饰,3,348.9,0.0,1046.7,已完成 +O000081,2024-01-17,U0098,上海,小程序,数码,2,832.9,0.1,1499.22,已完成 +O000082,2024-01-17,U0185,武汉,小程序,食品,3,24.9,0.05,70.96,已完成 +O000083,2024-01-17,U0327,武汉,网页,食品,1,125.9,0.1,113.31,已完成 +O000084,2024-01-17,U0032,杭州,网页,服饰,4,64.9,0.0,259.6,已完成 +O000085,2024-01-17,U0091,广州,APP,食品,5,104.9,,524.5,已完成 +O000086,2024-01-18,U0221,武汉,小程序,美妆,3,182.9,0.1,493.83,已取消 +O000087,2024-01-18,U0098,杭州,APP,服饰,2,73.9,0.0,147.8,已完成 +O000087,2024-01-18,U0098,杭州,APP,服饰,2,73.9,0.0,147.8,已完成 +O000088,2024-01-18,U0155,上海,小程序,家居,3,353.9,0.1,955.53,已完成 +O000089,2024-01-18,U0097,杭州,小程序,家居,1,178.9,0.05,169.96,已完成 +O000090,2024-01-18,U0203,上海,小程序,美妆,4,104.9,0.2,335.68,已完成 +O000091,2024-01-18,U0082,广州,APP,服饰,2,302.9,0.15,514.93,已完成 +O000092,2024-01-18,U0090,武汉,小程序,服饰,2,124.9,,249.8,已完成 +O000093,2024-01-19,U0218,成都,小程序,食品,1,85.9,0.05,81.6,已取消 +O000094,2024-01-19,U0028,北京,网页,服饰,2,248.9,,497.8,已完成 +O000095,2024-01-19,U0105,,小程序,服饰,2,151.9,0.0,303.8,已完成 +O000096,2024-01-20,U0167,深圳,小程序,食品,4,73.9,0.05,280.82,已完成 +O000097,2024-01-20,U0287,上海,APP,家居,1,648.9,0.1,584.01,已完成 +O000098,2024-01-20,U0250,上海,小程序,服饰,2,260.9,0.0,521.8,已完成 +O000099,2024-01-20,U0137,上海,小程序,服饰,1,237.9,,237.9,已完成 +O000100,2024-01-20,U0265,深圳,小程序,服饰,1,359.9,0.15,305.91,已完成 +O000101,2024-01-21,U0171,武汉,APP,服饰,1,230.9,0.05,219.36,已完成 +O000102,2024-01-21,U0064,武汉,APP,食品,2,110.9,0.0,221.8,已退款 +O000103,2024-01-21,U0257,杭州,APP,服饰,2,286.9,0.2,459.04,已完成 +O000104,2024-01-21,U0077,成都,小程序,美妆,1,518.9,0.0,518.9,已完成 +O000105,2024-01-22,U0322,成都,小程序,服饰,5,204.9,0.05,973.28,已完成 +O000106,2024-01-22,U0077,,网页,家居,5,209.9,0.1,944.55,已完成 +O000107,2024-01-22,U0058,,小程序,食品,1,95.9,0.0,95.9,已退款 +O000108,2024-01-22,U0058,,APP,食品,2,31.9,0.0,63.8,已完成 +O000109,2024-01-22,U0246,上海,APP,服饰,1,59.9,,59.9,已完成 +O000110,2024-01-22,U0319,成都,小程序,家居,4,365.9,0.1,1317.24,已完成 +O000111,2024-01-22,U0264,杭州,小程序,数码,2,591.9,,1183.8,已完成 +O000112,2024-01-23,U0059,上海,小程序,数码,1,821.9,0.0,821.9,已完成 +O000113,2024-01-23,U0057,上海,小程序,食品,3,90.9,0.0,272.7,已完成 +O000114,2024-01-23,U0058,成都,APP,家居,1,323.9,0.05,307.7,已完成 +O000115,2024-01-23,U0119,深圳,网页,服饰,3,257.9,0.1,696.33,已完成 +O000116,2024-01-23,U0158,深圳,小程序,食品,1,24.9,0.1,22.41,已完成 +O000117,2024-01-23,U0063,上海,APP,服饰,2,171.9,0.1,309.42,已取消 +O000118,2024-01-23,U0267,成都,APP,食品,2,108.9,,217.8,已完成 +O000119,2024-01-24,U0194,北京,APP,服饰,1,290.9,0.05,276.35,已完成 +O000120,2024-01-24,U0134,上海,网页,服饰,1,223.9,0.1,201.51,已完成 +O000121,2024-01-24,U0077,北京,APP,服饰,2,154.9,0.0,309.8,已完成 +O000122,2024-01-24,U0097,成都,网页,服饰,2,339.9,0.0,679.8,已完成 +O000123,2024-01-24,U0181,上海,APP,食品,2,84.9,0.1,152.82,已完成 +O000124,2024-01-24,U0062,杭州,APP,食品,3,89.9,0.1,242.73,已完成 +O000125,2024-01-24,U0103,杭州,APP,数码,1,1158.9,,1158.9,已完成 +O000126,2024-01-24,U0307,上海,小程序,服饰,1,194.9,0.15,165.66,已退款 +O000127,2024-01-25,U0184,杭州,APP,美妆,5,415.9,0.0,2079.5,已完成 +O000128,2024-01-25,U0130,北京,小程序,服饰,2,355.9,0.1,640.62,已完成 +O000129,2024-01-25,U0077,武汉,小程序,数码,5,1654.9,,8274.5,已完成 +O000130,2024-01-25,U0108,上海,小程序,食品,2,36.9,0.0,73.8,已完成 +O000131,2024-01-25,U0230,杭州,APP,服饰,2,66.9,0.15,113.73,已完成 +O000132,2024-01-25,U0018,武汉,小程序,服饰,2,304.9,,609.8,已完成 +O000133,2024-01-25,U0102,成都,APP,服饰,1,229.9,0.15,195.42,已完成 +O000134,2024-01-26,U0114,成都,APP,服饰,1,267.9,0.05,254.5,已完成 +O000135,2024-01-26,U0007,上海,小程序,服饰,1,207.9,0.2,166.32,已退款 +O000136,2024-01-26,U0049,武汉,小程序,美妆,1,271.9,0.1,244.71,已完成 +O000137,2024-01-26,U0040,深圳,小程序,食品,1,24.9,0.0,24.9,已完成 +O000137,2024-01-26,U0040,深圳,小程序,食品,1,24.9,0.0,24.9,已完成 +O000138,2024-01-26,U0103,成都,APP,美妆,1,94.9,0.0,94.9,已完成 +O000139,2024-01-26,U0350,广州,小程序,家居,5,470.9,0.05,2236.78,已完成 +O000140,2024-01-26,U0125,成都,APP,家居,2,340.9,0.15,579.53,已完成 +O000141,2024-01-27,U0130,深圳,小程序,家居,1,438.9,0.3,307.23,已完成 +O000142,2024-01-27,U0235,上海,小程序,数码,2,854.9,0.0,1709.8,已完成 +O000143,2024-01-27,U0201,北京,APP,食品,1,120.9,0.0,120.9,已完成 +O000144,2024-01-27,U0170,武汉,小程序,数码,1,2978.9,,2978.9,已完成 +O000145,2024-01-27,U0191,武汉,小程序,家居,4,496.9,0.1,1788.84,已退款 +O000146,2024-01-27,U0028,北京,APP,食品,2,97.9,0.0,195.8,已完成 +O000147,2024-01-28,U0027,北京,APP,家居,1,347.9,,347.9,已完成 +O000148,2024-01-28,U0130,,APP,数码,5,2836.9,0.1,12766.05,已取消 +O000149,2024-01-28,U0186,杭州,小程序,食品,2,93.9,0.0,187.8,已完成 +O000150,2024-01-28,U0184,北京,小程序,美妆,1,488.9,0.05,464.46,已完成 +O000150,2024-01-28,U0184,北京,小程序,美妆,1,488.9,0.05,464.46,已完成 +O000151,2024-01-29,U0002,深圳,APP,家居,4,463.9,,1855.6,已完成 +O000152,2024-01-29,U0009,杭州,APP,数码,4,2801.9,0.05,10647.22,已完成 +O000153,2024-01-29,U0029,广州,小程序,数码,2,509.9,,1019.8,已取消 +O000154,2024-01-29,U0002,深圳,APP,数码,2,2029.9,,4059.8,已完成 +O000155,2024-01-29,U0157,广州,APP,食品,1,45.9,0.1,41.31,已完成 +O000156,2024-01-30,U0246,上海,小程序,服饰,2,259.9,0.05,493.81,已完成 +O000157,2024-01-30,U0040,上海,网页,家居,1,620.9,0.05,589.85,已完成 +O000158,2024-01-30,U0272,上海,小程序,美妆,3,107.9,0.05,307.52,已完成 +O000159,2024-01-30,U0360,成都,APP,数码,4,2460.9,0.0,9843.6,已取消 +O000160,2024-01-30,U0209,北京,APP,食品,5,95.9,0.15,407.58,已完成 +O000161,2024-01-31,U0107,上海,网页,食品,2,41.9,,83.8,已完成 +O000162,2024-01-31,U0276,武汉,APP,美妆,1,63.9,0.1,57.51,已完成 +O000163,2024-01-31,U0125,广州,小程序,美妆,1,560.9,,560.9,已完成 +O000164,2024-02-01,U0094,武汉,APP,美妆,1,105.9,,105.9,已完成 +O000165,2024-02-01,U0115,成都,小程序,家居,5,462.9,0.15,1967.32,已完成 +O000166,2024-02-01,U0307,广州,APP,服饰,1,207.9,0.2,166.32,已完成 +O000167,2024-02-01,U0013,深圳,小程序,美妆,5,79.9,0.3,279.65,已完成 +O000168,2024-02-02,U0304,北京,APP,家居,1,77.9,0.05,74.0,已完成 +O000169,2024-02-02,U0272,上海,小程序,食品,1,107.9,0.1,97.11,已完成 +O000170,2024-02-02,U0077,深圳,小程序,家居,1,283.9,0.1,255.51,已完成 +O000170,2024-02-02,U0077,深圳,小程序,家居,1,283.9,0.1,255.51,已完成 +O000171,2024-02-03,U0215,杭州,APP,食品,2,26.9,0.3,37.66,已完成 +O000172,2024-02-03,U0341,北京,小程序,数码,2,2549.9,0.1,4589.82,已完成 +O000173,2024-02-03,U0255,杭州,APP,数码,1,1443.9,0.05,1371.7,已完成 +O000174,2024-02-03,U0336,北京,小程序,家居,3,200.9,0.0,602.7,已完成 +O000175,2024-02-04,U0102,北京,APP,服饰,2,108.9,0.0,217.8,已完成 +O000176,2024-02-04,U0083,上海,APP,食品,2,68.9,0.05,130.91,已退款 +O000177,2024-02-04,U0074,北京,APP,数码,1,2927.9,0.0,2927.9,已完成 +O000178,2024-02-04,U0130,北京,APP,服饰,2,199.9,0.1,359.82,已完成 +O000179,2024-02-05,U0267,武汉,APP,服饰,1,309.9,0.0,309.9,已完成 +O000180,2024-02-05,U0225,杭州,APP,数码,2,1697.9,0.1,3056.22,已取消 +O000181,2024-02-05,U0077,成都,APP,服饰,2,331.9,0.2,531.04,已完成 +O000182,2024-02-05,U0093,成都,APP,服饰,2,167.9,0.0,335.8,已完成 +O000183,2024-02-06,U0195,杭州,小程序,服饰,5,390.9,,1954.5,已完成 +O000184,2024-02-06,U0095,成都,APP,美妆,2,542.9,0.05,1031.51,已完成 +O000185,2024-02-06,U0249,上海,APP,服饰,1,80.9,0.0,80.9,已退款 +O000186,2024-02-06,U0106,上海,小程序,数码,1,1244.9,0.1,1120.41,已完成 +O000187,2024-02-06,U0316,北京,小程序,家居,1,152.9,0.0,152.9,已完成 +O000188,2024-02-07,U0292,成都,小程序,数码,1,2874.9,0.1,2587.41,已完成 +O000189,2024-02-07,U0160,上海,小程序,家居,4,522.9,0.0,2091.6,已完成 +O000190,2024-02-07,U0186,上海,APP,服饰,4,61.9,0.0,247.6,已完成 +O000191,2024-02-07,U0291,深圳,APP,食品,1,89.9,0.2,71.92,已退款 +O000192,2024-02-07,U0159,,网页,美妆,2,311.9,0.1,561.42,已完成 +O000193,2024-02-07,U0023,上海,小程序,美妆,3,551.9,0.1,1490.13,已完成 +O000194,2024-02-08,U0114,深圳,小程序,食品,4,59.9,0.0,239.6,已完成 +O000195,2024-02-08,U0350,成都,小程序,服饰,2,144.9,0.1,260.82,已退款 +O000196,2024-02-09,U0345,成都,网页,服饰,2,382.9,0.0,765.8,已完成 +O000197,2024-02-09,U0090,深圳,小程序,美妆,1,180.9,0.05,171.86,已完成 +O000198,2024-02-09,U0019,武汉,APP,服饰,1,136.9,0.05,130.06,已完成 +O000199,2024-02-09,U0316,北京,小程序,家居,2,603.9,,1207.8,已退款 +O000200,2024-02-09,U0331,杭州,小程序,食品,5,123.9,0.0,619.5,已完成 +O000201,2024-02-09,U0259,深圳,APP,数码,2,1295.9,0.0,2591.8,已完成 +O000202,2024-02-09,U0340,上海,APP,服饰,4,320.9,0.3,898.52,已完成 +O000203,2024-02-10,U0112,上海,APP,服饰,1,342.9,0.2,274.32,已完成 +O000204,2024-02-10,U0318,杭州,APP,美妆,1,227.9,0.15,193.72,已完成 +O000204,2024-02-10,U0318,杭州,APP,美妆,1,227.9,0.15,193.72,已完成 +O000205,2024-02-10,U0192,上海,APP,服饰,3,373.9,,1121.7,已完成 +O000206,2024-02-11,U0035,上海,APP,食品,1,27.9,0.0,27.9,已完成 +O000207,2024-02-11,U0075,武汉,APP,食品,1,20.9,0.0,20.9,已完成 +O000208,2024-02-11,U0259,深圳,小程序,美妆,5,374.9,0.0,1874.5,已退款 +O000209,2024-02-11,U0199,武汉,小程序,美妆,1,543.9,0.05,516.7,已完成 +O000210,2024-02-12,U0316,北京,APP,食品,2,109.9,0.15,186.83,已完成 +O000211,2024-02-12,U0138,,APP,食品,2,59.9,0.05,113.81,已完成 +O000212,2024-02-12,U0321,,小程序,服饰,1,306.9,0.1,276.21,已取消 +O000213,2024-02-12,U0015,杭州,小程序,服饰,2,320.9,0.15,545.53,已完成 +O000214,2024-02-12,U0102,北京,APP,服饰,1,64.9,0.15,55.17,已退款 +O000215,2024-02-12,U0185,杭州,网页,服饰,1,328.9,0.1,296.01,已完成 +O000216,2024-02-13,U0170,杭州,小程序,家居,1,237.9,0.0,237.9,已完成 +O000217,2024-02-13,U0086,武汉,APP,美妆,2,539.9,0.0,1079.8,已完成 +O000218,2024-02-14,U0067,武汉,APP,食品,4,64.9,0.15,220.66,已完成 +O000219,2024-02-15,U0086,北京,网页,食品,2,47.9,0.0,95.8,已退款 +O000220,2024-02-15,U0051,上海,APP,服饰,4,372.9,0.0,1491.6,已完成 +O000221,2024-02-16,U0091,广州,小程序,服饰,2,308.9,0.1,556.02,已完成 +O000222,2024-02-16,U0091,上海,小程序,服饰,2,283.9,0.3,397.46,已完成 +O000223,2024-02-16,U0331,深圳,APP,服饰,1,286.9,0.0,286.9,已完成 +O000224,2024-02-16,U0220,成都,APP,服饰,1,219.9,0.1,197.91,已完成 +O000225,2024-02-16,U0029,北京,APP,服饰,4,288.9,,1155.6,已完成 +O000226,2024-02-17,U0287,武汉,APP,食品,1,21.9,0.0,21.9,已完成 +O000227,2024-02-17,U0057,广州,APP,食品,2,27.9,0.0,55.8,已完成 +O000228,2024-02-18,U0021,成都,小程序,美妆,1,175.9,0.0,175.9,已完成 +O000229,2024-02-18,U0296,武汉,小程序,食品,5,100.9,0.05,479.28,已完成 +O000230,2024-02-18,U0037,杭州,APP,食品,5,116.9,,584.5,已完成 +O000231,2024-02-18,U0250,武汉,APP,数码,1,1010.9,,1010.9,已完成 +O000232,2024-02-19,U0005,上海,APP,食品,5,121.9,0.05,579.02,已完成 +O000233,2024-02-19,U0105,成都,APP,美妆,4,428.9,0.1,1544.04,已完成 +O000234,2024-02-19,U0004,成都,APP,家居,1,314.9,0.1,283.41,已完成 +O000235,2024-02-19,U0142,杭州,APP,食品,2,125.9,0.05,239.21,已完成 +O000236,2024-02-19,U0062,北京,APP,数码,1,836.9,,836.9,已完成 +O000236,2024-02-19,U0062,北京,APP,数码,1,836.9,,836.9,已完成 +O000237,2024-02-20,U0187,杭州,小程序,美妆,3,114.9,0.15,293.0,已完成 +O000238,2024-02-20,U0095,北京,APP,家居,1,186.9,0.0,186.9,已完成 +O000239,2024-02-20,U0093,北京,小程序,服饰,5,129.9,0.2,519.6,已取消 +O000240,2024-02-20,U0073,北京,APP,美妆,4,296.9,0.1,1068.84,已完成 +O000241,2024-02-20,U0123,广州,APP,服饰,2,337.9,0.0,675.8,已完成 +O000242,2024-02-20,U0164,北京,小程序,家居,1,426.9,0.0,426.9,已完成 +O000243,2024-02-21,U0130,深圳,APP,服饰,3,74.9,0.05,213.46,已完成 +O000244,2024-02-21,U0012,成都,网页,食品,1,96.9,0.05,92.06,已完成 +O000245,2024-02-21,U0281,深圳,小程序,家居,1,193.9,0.0,193.9,已完成 +O000246,2024-02-21,U0342,北京,小程序,食品,5,73.9,0.0,369.5,已完成 +O000247,2024-02-21,U0292,,APP,食品,5,78.9,0.0,394.5,已退款 +O000248,2024-02-22,U0156,武汉,APP,服饰,1,325.9,0.0,325.9,已完成 +O000249,2024-02-23,U0304,广州,APP,美妆,1,418.9,0.1,377.01,已完成 +O000250,2024-02-23,U0123,武汉,网页,家居,3,147.9,0.0,443.7,已完成 +O000251,2024-02-23,U0244,上海,网页,服饰,1,199.9,0.0,199.9,已完成 +O000252,2024-02-23,U0269,广州,小程序,美妆,2,483.9,,967.8,已完成 +O000253,2024-02-23,U0127,北京,APP,美妆,1,389.9,0.05,370.4,已完成 +O000254,2024-02-23,U0357,武汉,小程序,服饰,1,328.9,0.05,312.46,已取消 +O000255,2024-02-24,U0315,,APP,服饰,2,120.9,0.0,241.8,已完成 +O000256,2024-02-24,U0312,上海,小程序,美妆,1,322.9,0.15,274.46,已完成 +O000257,2024-02-24,U0307,深圳,APP,家居,1,563.9,0.15,479.31,已退款 +O000258,2024-02-25,U0027,北京,APP,服饰,1,384.9,,384.9,已完成 +O000259,2024-02-26,U0062,成都,APP,食品,5,29.9,0.1,134.55,已取消 +O000260,2024-02-26,U0308,深圳,APP,美妆,3,555.9,0.15,1417.54,已完成 +O000261,2024-02-27,U0296,杭州,小程序,食品,2,25.9,0.0,51.8,已完成 +O000262,2024-02-27,U0077,武汉,小程序,家居,5,227.9,0.1,1025.55,已完成 +O000263,2024-02-27,U0111,北京,APP,服饰,1,177.9,0.0,177.9,已完成 +O000264,2024-02-27,U0209,成都,小程序,食品,1,33.9,0.05,32.2,已完成 +O000265,2024-02-27,U0257,杭州,APP,食品,1,60.9,0.3,42.63,已取消 +O000266,2024-02-27,U0054,深圳,APP,家居,2,540.9,0.15,919.53,已完成 +O000267,2024-02-27,U0059,杭州,APP,服饰,3,178.9,0.15,456.2,已完成 +O000268,2024-02-28,U0295,武汉,网页,食品,1,50.9,,50.9,已完成 +O000269,2024-02-28,U0317,北京,APP,数码,2,2431.9,0.1,4377.42,已取消 +O000270,2024-02-29,U0092,杭州,小程序,食品,2,101.9,0.0,203.8,已退款 +O000271,2024-02-29,U0002,上海,APP,家居,1,456.9,0.2,365.52,已完成 +O000272,2024-02-29,U0123,上海,小程序,服饰,1,94.9,0.0,94.9,已完成 +O000273,2024-02-29,U0196,上海,小程序,美妆,1,189.9,0.05,180.4,已完成 +O000274,2024-02-29,U0298,武汉,APP,数码,1,2626.9,0.15,2232.87,已完成 +O000275,2024-02-29,U0127,杭州,APP,服饰,5,226.9,0.05,1077.77,已完成 +O000276,2024-02-29,U0029,北京,APP,食品,3,55.9,0.05,159.31,已完成 +O000277,2024-03-01,U0143,北京,APP,服饰,1,381.9,0.05,362.8,已完成 +O000278,2024-03-01,U0057,杭州,APP,数码,2,980.9,0.15,1667.53,已完成 +O000279,2024-03-01,U0209,上海,APP,食品,2,76.9,0.1,138.42,已完成 +O000280,2024-03-01,U0045,上海,小程序,美妆,2,554.9,0.05,1054.31,已完成 +O000281,2024-03-01,U0199,北京,小程序,食品,4,77.9,0.2,249.28,已完成 +O000281,2024-03-01,U0199,北京,小程序,食品,4,77.9,0.2,249.28,已完成 +O000282,2024-03-01,U0085,北京,网页,家居,2,149.9,0.05,284.81,已完成 +O000283,2024-03-01,U0019,杭州,APP,美妆,1,118.9,0.05,112.96,已完成 +O000284,2024-03-01,U0199,广州,APP,服饰,1,140.9,,140.9,已完成 +O000285,2024-03-01,U0044,杭州,小程序,美妆,2,284.9,0.1,512.82,已完成 +O000286,2024-03-01,U0272,武汉,APP,食品,2,68.9,0.1,124.02,已完成 +O000287,2024-03-01,U0058,北京,小程序,美妆,1,338.9,,338.9,已完成 +O000288,2024-03-01,U0149,广州,APP,食品,4,30.9,0.0,123.6,已完成 +O000289,2024-03-02,U0187,广州,网页,家居,3,158.9,0.05,452.86,已完成 +O000290,2024-03-02,U0090,深圳,小程序,家居,5,296.9,0.05,1410.28,已完成 +O000291,2024-03-02,U0089,杭州,APP,家居,2,525.9,0.15,894.03,已完成 +O000292,2024-03-02,U0077,成都,APP,服饰,1,324.9,,324.9,已完成 +O000293,2024-03-02,U0039,深圳,APP,服饰,1,89.9,0.0,89.9,已完成 +O000294,2024-03-02,U0019,上海,网页,家居,3,263.9,0.15,672.94,已取消 +O000295,2024-03-02,U0154,深圳,小程序,数码,2,2584.9,,5169.8,已完成 +O000296,2024-03-02,U0322,广州,小程序,数码,5,536.9,,2684.5,已完成 +O000297,2024-03-02,U0072,成都,小程序,食品,3,66.9,0.1,180.63,已完成 +O000298,2024-03-03,U0321,上海,APP,食品,1,108.9,,108.9,已完成 +O000299,2024-03-03,U0307,上海,网页,家居,3,461.9,0.0,1385.7,已完成 +O000300,2024-03-03,U0045,上海,APP,服饰,1,232.9,0.05,221.26,已完成 +O000301,2024-03-04,U0297,广州,小程序,美妆,2,104.9,0.0,209.8,已取消 +O000302,2024-03-04,U0077,广州,小程序,家居,1,483.9,0.05,459.7,已取消 +O000303,2024-03-04,U0282,上海,小程序,数码,5,1180.9,0.05,5609.28,已完成 +O000304,2024-03-04,U0062,上海,APP,家居,1,195.9,0.1,176.31,已完成 +O000305,2024-03-04,U0227,杭州,小程序,服饰,1,129.9,0.05,123.4,已完成 +O000306,2024-03-04,U0077,北京,网页,美妆,1,552.9,,552.9,已完成 +O000307,2024-03-04,U0326,深圳,APP,美妆,3,372.9,0.0,1118.7,已完成 +O000308,2024-03-04,U0082,成都,小程序,服饰,1,381.9,0.15,324.61,已完成 +O000309,2024-03-04,U0022,武汉,小程序,服饰,4,76.9,0.2,246.08,已完成 +O000310,2024-03-04,U0145,广州,小程序,食品,1,42.9,0.15,36.46,已取消 +O000311,2024-03-04,U0062,成都,APP,家居,1,82.9,0.0,82.9,已完成 +O000312,2024-03-04,U0200,成都,APP,服饰,3,157.9,0.15,402.65,已完成 +O000313,2024-03-04,U0054,上海,小程序,美妆,4,429.9,0.1,1547.64,已完成 +O000314,2024-03-04,U0021,武汉,APP,家居,4,609.9,0.2,1951.68,已取消 +O000315,2024-03-04,U0327,北京,网页,美妆,2,153.9,0.0,307.8,已完成 +O000316,2024-03-05,U0236,上海,APP,食品,4,45.9,0.3,128.52,已完成 +O000317,2024-03-05,U0064,上海,小程序,家居,3,154.9,0.0,464.7,已完成 +O000318,2024-03-05,U0013,北京,APP,美妆,1,534.9,0.1,481.41,已完成 +O000319,2024-03-05,U0092,深圳,小程序,食品,1,44.9,0.05,42.65,已取消 +O000320,2024-03-05,U0062,深圳,APP,家居,1,348.9,0.1,314.01,已完成 +O000321,2024-03-05,U0181,北京,小程序,服饰,1,71.9,0.05,68.31,已完成 +O000322,2024-03-05,U0173,,小程序,家居,1,201.9,0.1,181.71,已完成 +O000323,2024-03-05,U0238,成都,小程序,数码,2,2615.9,0.1,4708.62,已完成 +O000324,2024-03-05,U0199,杭州,APP,数码,5,2100.9,0.2,8403.6,已完成 +O000325,2024-03-05,U0056,成都,APP,美妆,1,363.9,,363.9,已完成 +O000326,2024-03-05,U0316,北京,网页,食品,1,100.9,,100.9,已完成 +O000327,2024-03-06,U0251,广州,网页,食品,2,45.9,0.1,82.62,已完成 +O000328,2024-03-06,U0316,成都,小程序,食品,5,28.9,0.0,144.5,已完成 +O000329,2024-03-06,U0209,上海,小程序,美妆,1,364.9,0.1,328.41,已退款 +O000330,2024-03-06,U0182,武汉,APP,家居,3,423.9,0.3,890.19,已完成 +O000331,2024-03-06,U0146,广州,小程序,数码,4,572.9,0.05,2177.02,已完成 +O000332,2024-03-06,U0123,武汉,网页,服饰,1,335.9,0.2,268.72,已完成 +O000333,2024-03-06,U0056,深圳,APP,食品,5,124.9,0.2,499.6,已完成 +O000334,2024-03-06,U0139,深圳,APP,食品,2,57.9,0.0,115.8,已退款 +O000335,2024-03-06,U0115,成都,网页,食品,1,46.9,0.1,42.21,已退款 +O000336,2024-03-06,U0293,广州,APP,食品,1,56.9,0.2,45.52,已完成 +O000337,2024-03-06,U0322,杭州,APP,服饰,2,281.9,0.1,507.42,已退款 +O000338,2024-03-07,U0175,成都,APP,数码,1,2022.9,0.1,1820.61,已完成 +O000339,2024-03-07,U0144,北京,小程序,美妆,3,293.9,0.2,705.36,已完成 +O000340,2024-03-07,U0057,上海,小程序,食品,3,82.9,0.0,248.7,已取消 +O000341,2024-03-07,U0297,成都,小程序,家居,5,238.9,0.0,1194.5,已完成 +O000342,2024-03-07,U0056,北京,APP,食品,1,39.9,0.0,39.9,已完成 +O000343,2024-03-07,U0077,上海,小程序,家居,2,424.9,0.15,722.33,已完成 +O000344,2024-03-07,U0267,深圳,APP,服饰,3,258.9,0.15,660.2,已取消 +O000345,2024-03-07,U0335,北京,小程序,美妆,3,520.9,0.1,1406.43,已退款 +O000346,2024-03-07,U0081,广州,APP,服饰,4,129.9,,519.6,已完成 +O000347,2024-03-07,U0047,成都,APP,家居,2,216.9,0.15,368.73,已完成 +O000348,2024-03-07,U0319,武汉,小程序,美妆,1,490.9,,490.9,已退款 +O000349,2024-03-07,U0336,北京,小程序,美妆,1,203.9,0.0,203.9,已完成 +O000350,2024-03-07,U0189,广州,APP,家居,3,344.9,0.0,1034.7,已完成 +O000351,2024-03-07,U0091,上海,APP,食品,2,127.9,0.1,230.22,已完成 +O000352,2024-03-07,U0290,北京,APP,食品,4,116.9,0.0,467.6,已完成 +O000353,2024-03-07,U0083,北京,小程序,服饰,3,357.9,0.1,966.33,已完成 +O000354,2024-03-08,U0186,深圳,APP,食品,1,32.9,0.0,32.9,已完成 +O000355,2024-03-08,U0077,武汉,网页,服饰,1,285.9,0.1,257.31,已完成 +O000356,2024-03-08,U0167,武汉,小程序,数码,1,1948.9,0.0,1948.9,已完成 +O000357,2024-03-08,U0097,武汉,APP,服饰,4,387.9,0.0,1551.6,已完成 +O000358,2024-03-08,U0199,上海,APP,家居,1,205.9,,205.9,已完成 +O000359,2024-03-08,U0199,北京,APP,美妆,2,192.9,0.1,347.22,已退款 +O000360,2024-03-08,U0213,广州,网页,服饰,1,240.9,0.05,228.86,已完成 +O000361,2024-03-08,U0097,深圳,APP,服饰,4,317.9,0.0,1271.6,已完成 +O000362,2024-03-08,U0024,,APP,家居,1,89.9,0.05,85.4,已完成 +O000363,2024-03-08,U0301,北京,APP,食品,3,72.9,0.0,218.7,已完成 +O000364,2024-03-08,U0155,上海,小程序,美妆,2,411.9,,823.8,已完成 +O000365,2024-03-08,U0307,北京,小程序,数码,1,2345.9,0.15,1994.02,已完成 +O000366,2024-03-08,U0161,成都,APP,美妆,2,80.9,0.15,137.53,已完成 +O000367,2024-03-08,U0316,杭州,网页,服饰,2,385.9,0.05,733.21,已完成 +O000368,2024-03-08,U0010,杭州,网页,服饰,1,306.9,0.0,306.9,已完成 +O000369,2024-03-09,U0212,成都,APP,美妆,2,158.9,0.1,286.02,已退款 +O000370,2024-03-09,U0176,成都,APP,美妆,1,425.9,0.1,383.31,已完成 +O000371,2024-03-09,U0308,广州,APP,服饰,2,196.9,0.1,354.42,已完成 +O000372,2024-03-09,U0316,成都,网页,服饰,1,147.9,0.1,133.11,已退款 +O000373,2024-03-09,U0190,成都,APP,服饰,2,279.9,,559.8,已完成 +O000374,2024-03-09,U0181,杭州,小程序,服饰,3,77.9,0.05,222.02,已取消 +O000375,2024-03-09,U0074,深圳,小程序,家居,5,226.9,0.15,964.32,已完成 +O000376,2024-03-09,U0183,北京,小程序,食品,2,22.9,0.1,41.22,已完成 +O000377,2024-03-09,U0280,上海,APP,美妆,2,499.9,0.05,949.81,已完成 +O000378,2024-03-10,U0301,杭州,小程序,食品,1,70.9,0.1,63.81,已完成 +O000379,2024-03-10,U0016,武汉,小程序,美妆,2,561.9,0.0,1123.8,已完成 +O000380,2024-03-10,U0106,上海,APP,家居,4,310.9,0.0,1243.6,已完成 +O000381,2024-03-10,U0077,上海,APP,服饰,2,76.9,0.05,146.11,已完成 +O000382,2024-03-10,U0065,广州,小程序,食品,3,110.9,0.0,332.7,已完成 +O000383,2024-03-10,U0217,成都,APP,服饰,2,223.9,0.0,447.8,已完成 +O000384,2024-03-10,U0260,北京,APP,家居,2,262.9,0.0,525.8,已完成 +O000385,2024-03-10,U0276,北京,网页,食品,1,106.9,0.1,96.21,已完成 +O000386,2024-03-11,U0282,深圳,网页,服饰,2,155.9,0.0,311.8,已完成 +O000387,2024-03-11,U0295,成都,APP,美妆,1,342.9,0.0,342.9,已完成 +O000388,2024-03-11,U0052,深圳,APP,服饰,5,354.9,0.05,1685.78,已完成 +O000389,2024-03-12,U0135,广州,网页,家居,4,683.9,0.0,2735.6,已完成 +O000390,2024-03-12,U0091,深圳,小程序,服饰,1,154.9,0.05,147.16,已完成 +O000391,2024-03-12,U0173,武汉,APP,美妆,3,451.9,0.0,1355.7,已完成 +O000392,2024-03-12,U0074,上海,小程序,服饰,1,105.9,0.15,90.02,已完成 +O000393,2024-03-12,U0076,北京,APP,数码,4,427.9,0.05,1626.02,已完成 +O000394,2024-03-12,U0162,深圳,小程序,食品,4,32.9,0.0,131.6,已完成 +O000395,2024-03-12,U0147,北京,APP,服饰,5,374.9,,1874.5,已退款 +O000396,2024-03-13,U0140,上海,小程序,美妆,3,401.9,,1205.7,已完成 +O000397,2024-03-13,U0062,杭州,APP,家居,1,188.9,0.2,151.12,已完成 +O000398,2024-03-13,U0328,成都,小程序,服饰,4,146.9,0.0,587.6,已完成 +O000399,2024-03-13,U0207,北京,网页,家居,2,127.9,0.0,255.8,已完成 +O000400,2024-03-13,U0097,杭州,小程序,食品,3,22.9,0.15,58.39,已完成 +O000401,2024-03-13,U0304,深圳,APP,家居,3,404.9,,1214.7,已完成 +O000402,2024-03-14,U0043,成都,APP,数码,2,1531.9,0.0,3063.8,已完成 +O000403,2024-03-14,U0115,深圳,APP,数码,2,2897.9,0.0,5795.8,已完成 +O000404,2024-03-14,U0225,广州,APP,美妆,5,485.9,,2429.5,已取消 +O000405,2024-03-14,U0049,上海,网页,服饰,1,347.9,,347.9,已完成 +O000406,2024-03-14,U0319,,小程序,服饰,3,121.9,0.0,365.7,已完成 +O000407,2024-03-14,U0273,成都,网页,食品,1,110.9,0.0,110.9,已完成 +O000408,2024-03-14,U0227,成都,小程序,服饰,1,251.9,0.15,214.12,已完成 +O000409,2024-03-14,U0156,深圳,小程序,食品,3,35.9,,107.7,已退款 +O000410,2024-03-15,U0135,深圳,APP,服饰,3,67.9,0.15,173.14,已退款 +O000411,2024-03-15,U0143,成都,网页,服饰,1,97.9,0.05,93.0,已完成 +O000412,2024-03-15,U0316,北京,APP,服饰,1,73.9,0.15,62.82,已完成 +O000413,2024-03-15,U0336,杭州,APP,家居,1,41.9,0.0,41.9,已完成 +O000414,2024-03-15,U0311,杭州,网页,服饰,2,318.9,0.1,574.02,已完成 +O000415,2024-03-15,U0021,广州,小程序,食品,2,118.9,,237.8,已完成 +O000416,2024-03-16,U0115,北京,APP,数码,2,1533.9,,3067.8,已完成 +O000417,2024-03-16,U0178,广州,小程序,美妆,2,379.9,0.15,645.83,已完成 +O000418,2024-03-16,U0354,深圳,小程序,服饰,1,70.9,0.2,56.72,已完成 +O000419,2024-03-16,U0124,广州,小程序,美妆,1,105.9,0.2,84.72,已完成 +O000420,2024-03-16,U0287,北京,小程序,家居,1,119.9,0.0,119.9,已完成 +O000421,2024-03-16,U0129,杭州,网页,食品,2,112.9,0.1,203.22,已完成 +O000422,2024-03-16,U0063,武汉,APP,食品,3,57.9,0.05,165.02,已完成 +O000423,2024-03-16,U0307,上海,APP,数码,1,425.9,0.2,340.72,已完成 +O000424,2024-03-17,U0180,广州,APP,食品,1,86.9,0.05,82.56,已完成 +O000425,2024-03-17,U0159,北京,网页,家居,1,411.9,0.1,370.71,已退款 +O000426,2024-03-17,U0086,北京,小程序,美妆,2,97.9,0.05,186.01,已完成 +O000427,2024-03-17,U0327,上海,APP,服饰,2,77.9,,155.8,已完成 +O000428,2024-03-17,U0322,上海,APP,数码,4,2406.9,0.2,7702.08,已完成 +O000429,2024-03-17,U0266,广州,APP,食品,2,50.9,0.1,91.62,已完成 +O000430,2024-03-17,U0322,上海,网页,美妆,1,283.9,,283.9,已完成 +O000431,2024-03-17,U0241,北京,APP,食品,4,25.9,0.1,93.24,已完成 +O000432,2024-03-17,U0174,杭州,APP,食品,1,111.9,0.0,111.9,已完成 +O000433,2024-03-17,U0287,上海,APP,数码,2,1437.9,0.1,2588.22,已完成 +O000434,2024-03-17,U0086,广州,小程序,家居,5,204.9,0.2,819.6,已完成 +O000435,2024-03-17,U0094,武汉,小程序,食品,1,81.9,0.0,81.9,已完成 +O000436,2024-03-18,U0328,北京,小程序,服饰,5,269.9,0.1,1214.55,已取消 +O000437,2024-03-18,U0120,上海,网页,服饰,5,103.9,0.2,415.6,已完成 +O000438,2024-03-18,U0264,杭州,APP,食品,1,85.9,0.3,60.13,已取消 +O000439,2024-03-18,U0082,杭州,APP,美妆,1,299.9,0.15,254.91,已完成 +O000440,2024-03-18,U0358,杭州,APP,数码,5,2875.9,0.0,14379.5,已完成 +O000441,2024-03-18,U0035,杭州,APP,食品,1,19.9,0.05,18.9,已完成 +O000442,2024-03-18,U0262,,APP,家居,1,106.9,0.3,74.83,已完成 +O000443,2024-03-18,U0173,杭州,APP,数码,3,524.9,0.0,1574.7,已完成 +O000444,2024-03-18,U0214,深圳,小程序,食品,1,105.9,0.0,105.9,已完成 +O000445,2024-03-19,U0240,广州,APP,服饰,1,355.9,0.0,355.9,已完成 +O000446,2024-03-19,U0106,杭州,小程序,美妆,1,569.9,0.2,455.92,已取消 +O000447,2024-03-19,U0062,上海,APP,食品,2,65.9,0.0,131.8,已完成 +O000448,2024-03-19,U0318,北京,小程序,美妆,1,440.9,0.3,308.63,已完成 +O000449,2024-03-19,U0336,北京,APP,家居,3,101.9,0.0,305.7,已完成 +O000450,2024-03-19,U0099,上海,APP,美妆,4,310.9,0.2,994.88,已完成 +O000451,2024-03-20,U0080,深圳,APP,服饰,3,316.9,,950.7,已完成 +O000452,2024-03-20,U0204,北京,小程序,家居,2,184.9,0.0,369.8,已完成 +O000453,2024-03-20,U0077,深圳,APP,美妆,5,63.9,0.05,303.52,已退款 +O000454,2024-03-20,U0047,武汉,APP,家居,4,314.9,,1259.6,已完成 +O000455,2024-03-20,U0048,上海,小程序,美妆,1,590.9,0.1,531.81,已完成 +O000456,2024-03-20,U0343,北京,网页,服饰,1,200.9,0.0,200.9,已完成 +O000457,2024-03-20,U0102,上海,网页,美妆,1,452.9,0.0,452.9,已完成 +O000458,2024-03-20,U0120,深圳,小程序,数码,4,1086.9,0.0,4347.6,已完成 +O000459,2024-03-21,U0086,杭州,APP,食品,4,48.9,0.1,176.04,已完成 +O000460,2024-03-21,U0343,成都,APP,服饰,2,176.9,0.0,353.8,已完成 +O000461,2024-03-21,U0323,北京,小程序,食品,2,51.9,0.05,98.61,已完成 +O000462,2024-03-21,U0049,广州,小程序,家居,4,505.9,,2023.6,已取消 +O000463,2024-03-21,U0170,上海,小程序,食品,1,114.9,0.05,109.16,已退款 +O000464,2024-03-21,U0027,杭州,网页,数码,1,558.9,,558.9,已取消 +O000465,2024-03-22,U0087,深圳,APP,家居,1,656.9,0.2,525.52,已取消 +O000466,2024-03-22,U0359,成都,小程序,美妆,1,539.9,0.05,512.9,已完成 +O000467,2024-03-22,U0057,上海,APP,美妆,2,309.9,0.2,495.84,已完成 +O000468,2024-03-22,U0113,武汉,APP,美妆,4,572.9,0.0,2291.6,已退款 +O000469,2024-03-22,U0047,上海,网页,数码,1,671.9,0.0,671.9,已取消 +O000470,2024-03-22,U0063,广州,小程序,家居,3,118.9,0.0,356.7,已完成 +O000471,2024-03-22,U0102,广州,网页,食品,4,73.9,0.0,295.6,已完成 +O000472,2024-03-22,U0316,武汉,APP,服饰,1,185.9,0.0,185.9,已完成 +O000473,2024-03-22,U0096,成都,小程序,食品,5,107.9,0.0,539.5,已完成 +O000474,2024-03-22,U0199,广州,APP,食品,5,60.9,0.05,289.27,已完成 +O000475,2024-03-23,U0027,上海,APP,食品,2,52.9,0.0,105.8,已完成 +O000476,2024-03-23,U0011,上海,小程序,家居,2,638.9,,1277.8,已完成 +O000477,2024-03-23,U0059,杭州,小程序,数码,2,717.9,0.05,1364.01,已完成 +O000478,2024-03-23,U0123,杭州,APP,家居,5,559.9,0.0,2799.5,已完成 +O000479,2024-03-23,U0307,深圳,APP,服饰,1,240.9,0.05,228.86,已完成 +O000480,2024-03-23,U0108,杭州,网页,家居,2,513.9,0.05,976.41,已完成 +O000481,2024-03-23,U0018,成都,APP,家居,2,516.9,0.1,930.42,已退款 +O000482,2024-03-23,U0275,成都,小程序,食品,5,114.9,0.0,574.5,已完成 +O000483,2024-03-23,U0339,杭州,APP,美妆,3,432.9,0.1,1168.83,已完成 +O000484,2024-03-23,U0086,武汉,APP,美妆,1,103.9,0.0,103.9,已完成 +O000485,2024-03-23,U0140,杭州,APP,食品,1,126.9,,126.9,已完成 +O000486,2024-03-23,U0199,深圳,小程序,数码,5,2970.9,0.1,13369.05,已完成 +O000487,2024-03-23,U0333,上海,APP,数码,1,2086.9,0.0,2086.9,已完成 +O000488,2024-03-23,U0073,成都,APP,家居,4,666.9,0.0,2667.6,已完成 +O000489,2024-03-23,U0331,北京,小程序,数码,1,986.9,0.05,937.56,已完成 +O000490,2024-03-24,U0255,杭州,小程序,食品,3,92.9,0.0,278.7,已完成 +O000491,2024-03-24,U0026,杭州,APP,食品,2,106.9,0.2,171.04,已完成 +O000492,2024-03-24,U0318,北京,APP,食品,2,40.9,0.2,65.44,已退款 +O000493,2024-03-24,U0192,成都,网页,食品,1,25.9,0.0,25.9,已完成 +O000494,2024-03-24,U0180,广州,APP,食品,1,71.9,0.0,71.9,已完成 +O000495,2024-03-24,U0299,深圳,网页,食品,2,106.9,0.0,213.8,已完成 +O000496,2024-03-24,U0226,北京,小程序,数码,3,876.9,0.0,2630.7,已完成 +O000497,2024-03-25,U0125,武汉,网页,美妆,2,161.9,0.2,259.04,已退款 +O000498,2024-03-25,U0342,广州,APP,美妆,2,421.9,0.1,759.42,已完成 +O000499,2024-03-25,U0093,北京,APP,美妆,2,156.9,0.0,313.8,已退款 +O000500,2024-03-25,U0199,北京,APP,服饰,1,82.9,0.1,74.61,已完成 +O000501,2024-03-25,U0183,武汉,小程序,食品,3,106.9,0.05,304.67,已完成 +O000502,2024-03-25,U0059,杭州,APP,美妆,1,364.9,,364.9,已完成 +O000503,2024-03-25,U0056,上海,APP,家居,5,56.9,0.1,256.05,已完成 +O000504,2024-03-25,U0349,北京,APP,美妆,2,222.9,0.0,445.8,已完成 +O000505,2024-03-25,U0143,北京,APP,美妆,1,115.9,0.0,115.9,已完成 +O000506,2024-03-25,U0192,北京,APP,美妆,1,95.9,,95.9,已完成 +O000507,2024-03-25,U0156,北京,APP,家居,3,413.9,0.0,1241.7,已退款 +O000508,2024-03-25,U0019,上海,小程序,食品,1,46.9,0.1,42.21,已取消 +O000509,2024-03-25,U0140,杭州,APP,服饰,1,298.9,0.05,283.96,已完成 +O000510,2024-03-26,U0316,武汉,APP,家居,4,54.9,0.05,208.62,已完成 +O000511,2024-03-26,U0077,深圳,APP,食品,4,44.9,0.05,170.62,已完成 +O000512,2024-03-26,U0122,广州,小程序,服饰,2,353.9,0.0,707.8,已完成 +O000513,2024-03-26,U0267,武汉,APP,服饰,5,235.9,,1179.5,已完成 +O000514,2024-03-26,U0137,杭州,网页,食品,2,85.9,,171.8,已完成 +O000515,2024-03-26,U0316,武汉,网页,服饰,1,229.9,0.0,229.9,已完成 +O000516,2024-03-26,U0036,成都,小程序,美妆,2,491.9,0.1,885.42,已退款 +O000517,2024-03-27,U0078,杭州,APP,服饰,3,114.9,0.0,344.7,已完成 +O000518,2024-03-27,U0252,成都,小程序,家居,4,249.9,0.15,849.66,已完成 +O000519,2024-03-27,U0311,上海,网页,家居,2,163.9,0.0,327.8,已完成 +O000520,2024-03-28,U0300,上海,APP,服饰,1,312.9,,312.9,已完成 +O000521,2024-03-28,U0180,深圳,APP,食品,5,43.9,0.15,186.58,已取消 +O000522,2024-03-28,U0199,,小程序,数码,2,244.9,0.1,440.82,已完成 +O000523,2024-03-28,U0318,武汉,APP,数码,2,2262.9,,4525.8,已完成 +O000524,2024-03-28,U0250,杭州,小程序,服饰,5,84.9,0.0,424.5,已完成 +O000525,2024-03-28,U0284,成都,APP,食品,1,35.9,0.0,35.9,已完成 +O000526,2024-03-28,U0130,成都,小程序,食品,4,25.9,0.05,98.42,已取消 +O000527,2024-03-29,U0096,广州,网页,服饰,1,151.9,0.0,151.9,已完成 +O000528,2024-03-29,U0029,北京,小程序,家居,2,240.9,0.05,457.71,已完成 +O000529,2024-03-29,U0056,广州,APP,数码,3,1447.9,0.05,4126.52,已完成 +O000530,2024-03-29,U0149,北京,小程序,食品,3,111.9,0.1,302.13,已完成 +O000531,2024-03-29,U0035,杭州,网页,美妆,1,274.9,0.2,219.92,已完成 +O000532,2024-03-29,U0097,杭州,APP,服饰,5,116.9,,584.5,已完成 +O000533,2024-03-29,U0322,广州,APP,服饰,1,172.9,0.1,155.61,已取消 +O000534,2024-03-30,U0342,,APP,家居,1,428.9,0.2,343.12,已完成 +O000535,2024-03-30,U0062,杭州,APP,美妆,2,513.9,0.1,925.02,已完成 +O000536,2024-03-30,U0309,成都,APP,美妆,1,82.9,0.15,70.46,已完成 +O000537,2024-03-30,U0316,北京,网页,服饰,1,237.9,0.2,190.32,已完成 +O000538,2024-03-30,U0125,上海,APP,美妆,1,59.9,0.1,53.91,已完成 +O000539,2024-03-30,U0104,深圳,APP,服饰,1,135.9,,135.9,已完成 +O000540,2024-03-30,U0311,杭州,网页,食品,1,120.9,0.0,120.9,已完成 +O000541,2024-03-30,U0189,上海,APP,食品,5,124.9,0.2,499.6,已完成 +O000542,2024-03-30,U0062,武汉,APP,美妆,4,344.9,,1379.6,已完成 +O000543,2024-03-30,U0306,北京,网页,服饰,3,238.9,0.1,645.03,已完成 +O000544,2024-03-30,U0183,,APP,美妆,1,209.9,0.1,188.91,已取消 +O000545,2024-03-30,U0180,上海,APP,食品,1,21.9,0.05,20.8,已完成 +O000546,2024-03-30,U0053,上海,网页,美妆,2,344.9,0.15,586.33,已完成 +O000547,2024-03-31,U0337,杭州,APP,服饰,1,241.9,0.0,241.9,已完成 +O000548,2024-03-31,U0057,上海,APP,食品,2,105.9,,211.8,已完成 +O000549,2024-03-31,U0027,上海,网页,服饰,1,60.9,0.1,54.81,已完成 +O000550,2024-03-31,U0068,杭州,APP,服饰,2,257.9,0.1,464.22,已完成 +O000551,2024-04-01,U0088,广州,APP,数码,2,1125.9,0.2,1801.44,已完成 +O000552,2024-04-01,U0107,武汉,小程序,家居,1,39.9,0.0,39.9,已完成 +O000553,2024-04-01,U0023,广州,小程序,家居,4,39.9,0.05,151.62,已完成 +O000554,2024-04-01,U0210,武汉,APP,数码,3,550.9,0.1,1487.43,已完成 +O000555,2024-04-01,U0063,成都,小程序,美妆,4,162.9,0.0,651.6,已完成 +O000556,2024-04-01,U0201,上海,APP,数码,2,1681.9,0.1,3027.42,已完成 +O000557,2024-04-01,U0186,,小程序,服饰,2,357.9,0.3,501.06,已完成 +O000558,2024-04-02,U0108,北京,APP,服饰,5,366.9,0.0,1834.5,已完成 +O000559,2024-04-02,U0067,广州,APP,数码,2,225.9,0.0,451.8,已完成 +O000560,2024-04-02,U0177,北京,小程序,食品,2,118.9,0.1,214.02,已完成 +O000561,2024-04-02,U0062,上海,APP,服饰,1,349.9,,349.9,已完成 +O000562,2024-04-02,U0157,深圳,APP,服饰,2,272.9,0.1,491.22,已完成 +O000563,2024-04-02,U0337,深圳,小程序,食品,3,97.9,0.0,293.7,已完成 +O000564,2024-04-02,U0062,杭州,小程序,食品,2,83.9,0.1,151.02,已取消 +O000565,2024-04-02,U0322,深圳,小程序,食品,1,39.9,0.0,39.9,已完成 +O000566,2024-04-02,U0239,武汉,APP,家居,2,108.9,0.0,217.8,已完成 +O000567,2024-04-03,U0237,武汉,APP,美妆,5,594.9,0.1,2677.05,已完成 +O000568,2024-04-03,U0119,北京,网页,数码,4,1135.9,0.15,3862.06,已完成 +O000569,2024-04-03,U0077,杭州,小程序,服饰,1,229.9,,229.9,已完成 +O000570,2024-04-03,U0032,北京,APP,美妆,2,479.9,0.0,959.8,已取消 +O000571,2024-04-03,U0298,深圳,网页,食品,1,24.9,0.0,24.9,已完成 +O000572,2024-04-04,U0154,北京,APP,家居,5,574.9,0.0,2874.5,已完成 +O000573,2024-04-04,U0026,深圳,小程序,家居,2,79.9,,159.8,已完成 +O000574,2024-04-04,U0321,杭州,APP,服饰,1,333.9,0.15,283.82,已完成 +O000575,2024-04-04,U0077,深圳,网页,家居,2,182.9,0.3,256.06,已取消 +O000576,2024-04-04,U0320,上海,小程序,家居,1,121.9,0.0,121.9,已完成 +O000577,2024-04-04,U0004,北京,网页,食品,3,102.9,,308.7,已完成 +O000578,2024-04-04,U0336,上海,APP,家居,3,241.9,0.0,725.7,已完成 +O000579,2024-04-05,U0082,杭州,APP,食品,1,91.9,0.2,73.52,已完成 +O000580,2024-04-05,U0082,上海,网页,家居,2,450.9,0.2,721.44,已完成 +O000581,2024-04-05,U0215,杭州,APP,家居,1,343.9,0.0,343.9,已完成 +O000581,2024-04-05,U0215,杭州,APP,家居,1,343.9,0.0,343.9,已完成 +O000582,2024-04-05,U0092,成都,APP,美妆,1,168.9,0.0,168.9,已完成 +O000583,2024-04-05,U0042,武汉,小程序,食品,5,87.9,0.1,395.55,已取消 +O000584,2024-04-05,U0143,上海,网页,服饰,1,230.9,0.0,230.9,已完成 +O000585,2024-04-05,U0020,成都,APP,食品,1,122.9,0.0,122.9,已取消 +O000586,2024-04-05,U0209,深圳,APP,家居,2,39.9,0.05,75.81,已取消 +O000587,2024-04-05,U0171,成都,APP,美妆,1,408.9,0.0,408.9,已完成 +O000588,2024-04-05,U0097,深圳,APP,家居,1,108.9,0.0,108.9,已完成 +O000589,2024-04-06,U0062,深圳,小程序,数码,1,1998.9,0.15,1699.06,已完成 +O000590,2024-04-06,U0027,上海,小程序,家居,3,413.9,,1241.7,已完成 +O000591,2024-04-06,U0354,广州,APP,美妆,5,441.9,,2209.5,已完成 +O000592,2024-04-06,U0283,深圳,APP,食品,2,67.9,,135.8,已完成 +O000593,2024-04-06,U0085,杭州,APP,家居,5,612.9,0.15,2604.82,已完成 +O000594,2024-04-06,U0180,广州,网页,服饰,3,134.9,0.1,364.23,已取消 +O000595,2024-04-06,U0032,武汉,网页,服饰,5,147.9,0.0,739.5,已完成 +O000596,2024-04-06,U0313,武汉,小程序,家居,1,491.9,0.0,491.9,已完成 +O000597,2024-04-06,U0021,武汉,网页,食品,2,43.9,0.05,83.41,已完成 +O000598,2024-04-07,U0317,武汉,APP,食品,1,68.9,0.15,58.57,已完成 +O000599,2024-04-07,U0227,上海,网页,家居,3,488.9,,1466.7,已完成 +O000600,2024-04-07,U0321,杭州,APP,食品,1,64.9,0.15,55.17,已完成 +O000601,2024-04-07,U0119,杭州,APP,数码,1,2445.9,0.3,1712.13,已完成 +O000602,2024-04-07,U0227,杭州,APP,数码,5,2345.9,0.1,10556.55,已完成 +O000603,2024-04-07,U0027,深圳,APP,数码,2,1746.9,0.0,3493.8,已完成 +O000604,2024-04-07,U0012,武汉,网页,美妆,1,510.9,0.0,510.9,已完成 +O000605,2024-04-07,U0199,广州,小程序,家居,2,416.9,0.1,750.42,已完成 +O000606,2024-04-07,U0110,上海,APP,服饰,2,124.9,,249.8,已完成 +O000607,2024-04-07,U0274,成都,APP,家居,4,408.9,0.1,1472.04,已完成 +O000608,2024-04-07,U0199,杭州,小程序,食品,1,71.9,0.0,71.9,已完成 +O000609,2024-04-08,U0357,广州,网页,美妆,2,416.9,0.0,833.8,已完成 +O000610,2024-04-08,U0153,北京,APP,食品,1,117.9,0.1,106.11,已完成 +O000611,2024-04-08,U0276,杭州,小程序,服饰,2,309.9,0.0,619.8,已完成 +O000612,2024-04-08,U0348,深圳,小程序,服饰,1,355.9,0.1,320.31,已完成 +O000613,2024-04-08,U0132,广州,APP,服饰,1,77.9,0.15,66.22,已完成 +O000614,2024-04-09,U0312,杭州,网页,美妆,1,58.9,0.05,55.96,已完成 +O000615,2024-04-09,U0004,北京,APP,美妆,1,536.9,0.0,536.9,已完成 +O000616,2024-04-09,U0303,北京,APP,家居,4,595.9,0.0,2383.6,已完成 +O000617,2024-04-10,U0085,,APP,数码,1,259.9,0.1,233.91,已退款 +O000618,2024-04-10,U0189,上海,小程序,家居,5,260.9,0.0,1304.5,已完成 +O000619,2024-04-10,U0097,武汉,APP,食品,3,26.9,0.05,76.66,已完成 +O000620,2024-04-11,U0303,广州,小程序,家居,2,574.9,0.05,1092.31,已退款 +O000621,2024-04-11,U0292,上海,APP,服饰,2,184.9,,369.8,已完成 +O000622,2024-04-11,U0275,北京,APP,服饰,1,303.9,0.0,303.9,已完成 +O000623,2024-04-12,U0195,上海,APP,食品,1,20.9,0.0,20.9,已完成 +O000624,2024-04-12,U0319,深圳,APP,家居,2,184.9,,369.8,已完成 +O000625,2024-04-12,U0291,成都,APP,食品,4,63.9,,255.6,已完成 +O000626,2024-04-12,U0297,杭州,APP,服饰,1,308.9,0.05,293.46,已完成 +O000627,2024-04-13,U0204,上海,网页,数码,2,1808.9,0.1,3256.02,已完成 +O000628,2024-04-13,U0227,上海,网页,服饰,2,180.9,,361.8,已完成 +O000629,2024-04-13,U0198,成都,小程序,美妆,4,580.9,0.15,1975.06,已完成 +O000630,2024-04-13,U0077,成都,APP,家居,3,353.9,0.15,902.44,已完成 +O000631,2024-04-13,U0066,杭州,小程序,服饰,3,371.9,0.0,1115.7,已完成 +O000632,2024-04-13,U0110,成都,APP,家居,5,263.9,0.0,1319.5,已完成 +O000633,2024-04-13,U0153,武汉,小程序,美妆,4,322.9,0.0,1291.6,已取消 +O000634,2024-04-13,U0335,北京,小程序,服饰,5,237.9,0.0,1189.5,已完成 +O000635,2024-04-14,U0242,上海,APP,食品,5,95.9,0.05,455.52,已完成 +O000636,2024-04-14,U0158,广州,APP,食品,1,36.9,,36.9,已完成 +O000637,2024-04-14,U0030,上海,APP,服饰,5,122.9,,614.5,已完成 +O000638,2024-04-14,U0036,北京,APP,服饰,1,331.9,0.0,331.9,已完成 +O000639,2024-04-14,U0160,上海,APP,数码,2,2139.9,0.1,3851.82,已完成 +O000640,2024-04-14,U0079,深圳,网页,家居,3,120.9,0.0,362.7,已退款 +O000641,2024-04-14,U0077,武汉,小程序,服饰,1,86.9,0.1,78.21,已完成 +O000642,2024-04-15,U0077,广州,小程序,食品,1,38.9,0.1,35.01,已完成 +O000643,2024-04-15,U0231,北京,小程序,数码,1,1551.9,,1551.9,已退款 +O000644,2024-04-15,U0123,成都,小程序,服饰,4,305.9,0.0,1223.6,已取消 +O000645,2024-04-15,U0292,深圳,APP,数码,2,1669.9,0.05,3172.81,已完成 +O000646,2024-04-15,U0021,成都,小程序,美妆,1,176.9,0.05,168.06,已退款 +O000647,2024-04-15,U0307,上海,小程序,美妆,1,88.9,0.05,84.46,已完成 +O000648,2024-04-15,U0217,,APP,美妆,2,239.9,0.1,431.82,已完成 +O000649,2024-04-15,U0155,杭州,APP,服饰,1,379.9,0.1,341.91,已完成 +O000650,2024-04-15,U0171,深圳,APP,服饰,1,134.9,0.0,134.9,已完成 +O000651,2024-04-15,U0211,武汉,APP,数码,4,2540.9,0.05,9655.42,已取消 +O000652,2024-04-15,U0097,广州,APP,食品,3,110.9,0.05,316.07,已取消 +O000653,2024-04-16,U0161,广州,APP,家居,2,45.9,0.0,91.8,已退款 +O000654,2024-04-16,U0102,北京,小程序,食品,2,32.9,0.0,65.8,已取消 +O000655,2024-04-16,U0274,北京,小程序,服饰,5,105.9,0.15,450.08,已完成 +O000656,2024-04-16,U0055,广州,小程序,食品,1,40.9,0.1,36.81,已完成 +O000656,2024-04-16,U0055,广州,小程序,食品,1,40.9,0.1,36.81,已完成 +O000657,2024-04-16,U0316,深圳,网页,家居,1,617.9,0.1,556.11,已完成 +O000658,2024-04-16,U0316,深圳,APP,数码,4,952.9,0.0,3811.6,已完成 +O000659,2024-04-16,U0322,深圳,APP,服饰,3,212.9,0.15,542.9,已完成 +O000660,2024-04-17,U0321,成都,APP,数码,1,2921.9,0.0,2921.9,已完成 +O000661,2024-04-17,U0001,杭州,小程序,食品,1,103.9,0.0,103.9,已完成 +O000662,2024-04-17,U0291,成都,APP,家居,5,522.9,0.0,2614.5,已取消 +O000663,2024-04-17,U0296,武汉,APP,美妆,3,540.9,0.1,1460.43,已完成 +O000664,2024-04-17,U0169,成都,APP,美妆,2,258.9,0.1,466.02,已完成 +O000665,2024-04-18,U0295,深圳,APP,数码,1,919.9,0.05,873.9,已完成 +O000666,2024-04-18,U0130,武汉,APP,服饰,1,134.9,0.15,114.66,已完成 +O000667,2024-04-18,U0084,杭州,小程序,美妆,2,297.9,0.05,566.01,已退款 +O000668,2024-04-18,U0097,武汉,APP,数码,2,245.9,0.0,491.8,已完成 +O000669,2024-04-18,U0287,成都,小程序,美妆,5,271.9,0.0,1359.5,已完成 +O000670,2024-04-19,U0155,广州,网页,数码,2,1979.9,0.05,3761.81,已完成 +O000671,2024-04-19,U0199,成都,APP,服饰,5,171.9,0.05,816.52,已完成 +O000672,2024-04-19,U0354,深圳,小程序,食品,1,76.9,0.2,61.52,已取消 +O000673,2024-04-20,U0242,深圳,APP,服饰,2,177.9,0.1,320.22,已取消 +O000674,2024-04-20,U0178,深圳,小程序,家居,3,306.9,0.1,828.63,已取消 +O000675,2024-04-20,U0191,上海,小程序,服饰,3,213.9,0.1,577.53,已完成 +O000676,2024-04-21,U0093,武汉,APP,数码,1,2007.9,,2007.9,已完成 +O000677,2024-04-21,U0126,武汉,小程序,食品,3,44.9,,134.7,已完成 +O000678,2024-04-21,U0355,广州,网页,食品,2,115.9,,231.8,已完成 +O000679,2024-04-21,U0176,深圳,APP,家居,3,632.9,0.05,1803.76,已完成 +O000680,2024-04-21,U0067,广州,APP,服饰,1,335.9,0.05,319.1,已完成 +O000681,2024-04-21,U0115,北京,APP,美妆,1,260.9,,260.9,已完成 +O000682,2024-04-22,U0290,北京,小程序,美妆,4,223.9,0.0,895.6,已退款 +O000683,2024-04-22,U0275,武汉,小程序,食品,2,127.9,0.05,243.01,已完成 +O000684,2024-04-22,U0211,广州,小程序,数码,1,2540.9,0.15,2159.76,已完成 +O000685,2024-04-22,U0311,深圳,APP,美妆,1,288.9,,288.9,已退款 +O000686,2024-04-22,U0126,广州,小程序,食品,1,119.9,,119.9,已取消 +O000687,2024-04-22,U0130,北京,小程序,食品,1,126.9,,126.9,已完成 +O000688,2024-04-23,U0177,成都,APP,美妆,2,104.9,,209.8,已完成 +O000689,2024-04-23,U0214,武汉,APP,美妆,2,453.9,0.1,817.02,已退款 +O000690,2024-04-23,U0159,杭州,小程序,服饰,5,351.9,0.05,1671.52,已完成 +O000691,2024-04-23,U0089,北京,APP,食品,1,63.9,0.0,63.9,已完成 +O000692,2024-04-24,U0051,北京,小程序,食品,1,30.9,0.0,30.9,已完成 +O000693,2024-04-24,U0259,广州,APP,食品,4,63.9,0.0,255.6,已完成 +O000694,2024-04-24,U0225,深圳,网页,服饰,1,68.9,0.15,58.57,已完成 +O000695,2024-04-24,U0207,成都,网页,美妆,4,385.9,0.15,1312.06,已完成 +O000696,2024-04-24,U0097,武汉,网页,美妆,2,507.9,0.05,965.01,已完成 +O000697,2024-04-25,U0273,北京,APP,家居,4,129.9,0.05,493.62,已完成 +O000698,2024-04-25,U0126,上海,APP,家居,2,287.9,,575.8,已完成 +O000699,2024-04-25,U0062,成都,小程序,家居,1,570.9,0.0,570.9,已完成 +O000700,2024-04-25,U0018,杭州,小程序,食品,1,108.9,0.05,103.46,已退款 +O000701,2024-04-25,U0086,北京,小程序,美妆,1,485.9,0.1,437.31,已完成 +O000702,2024-04-25,U0232,成都,APP,美妆,2,337.9,0.0,675.8,已退款 +O000703,2024-04-26,U0056,武汉,APP,服饰,3,374.9,,1124.7,已完成 +O000704,2024-04-26,U0349,成都,小程序,家居,5,288.9,0.05,1372.28,已完成 +O000705,2024-04-26,U0051,杭州,APP,数码,1,2696.9,0.1,2427.21,已完成 +O000706,2024-04-26,U0311,上海,APP,家居,3,529.9,,1589.7,已完成 +O000707,2024-04-26,U0211,上海,APP,家居,2,338.9,0.2,542.24,已完成 +O000708,2024-04-26,U0045,广州,小程序,服饰,4,97.9,0.2,313.28,已完成 +O000709,2024-04-26,U0120,广州,小程序,数码,3,1626.9,,4880.7,已完成 +O000710,2024-04-26,U0105,上海,APP,家居,5,285.9,0.1,1286.55,已退款 +O000711,2024-04-27,U0275,杭州,APP,数码,5,2893.9,0.05,13746.02,已完成 +O000712,2024-04-27,U0145,北京,小程序,家居,4,597.9,,2391.6,已完成 +O000713,2024-04-27,U0107,杭州,小程序,食品,1,83.9,,83.9,已完成 +O000714,2024-04-27,U0097,深圳,小程序,服饰,1,70.9,,70.9,已完成 +O000715,2024-04-28,U0077,北京,APP,食品,2,76.9,0.15,130.73,已完成 +O000716,2024-04-28,U0358,杭州,小程序,食品,3,56.9,0.0,170.7,已完成 +O000717,2024-04-28,U0089,武汉,APP,服饰,1,394.9,0.0,394.9,已完成 +O000718,2024-04-28,U0281,成都,APP,服饰,2,290.9,0.05,552.71,已完成 +O000719,2024-04-28,U0309,广州,小程序,美妆,3,152.9,0.1,412.83,已完成 +O000720,2024-04-29,U0086,成都,APP,食品,4,32.9,0.15,111.86,已完成 +O000721,2024-04-29,U0111,北京,小程序,美妆,5,132.9,0.3,465.15,已完成 +O000722,2024-04-29,U0123,上海,小程序,食品,3,38.9,0.0,116.7,已完成 +O000723,2024-04-29,U0130,广州,APP,食品,1,43.9,0.0,43.9,已退款 +O000724,2024-04-29,U0077,杭州,网页,数码,2,1436.9,0.05,2730.11,已完成 +O000725,2024-04-29,U0225,深圳,APP,食品,1,50.9,0.15,43.26,已完成 +O000726,2024-04-29,U0199,成都,APP,服饰,5,375.9,0.0,1879.5,已完成 +O000727,2024-04-29,U0063,深圳,小程序,食品,1,104.9,0.0,104.9,已取消 +O000728,2024-04-29,U0295,深圳,APP,服饰,1,396.9,,396.9,已完成 +O000729,2024-04-29,U0272,上海,APP,食品,5,120.9,0.1,544.05,已完成 +O000730,2024-04-29,U0307,上海,APP,服饰,1,174.9,0.15,148.66,已完成 +O000731,2024-04-30,U0303,深圳,小程序,食品,2,37.9,0.1,68.22,已完成 +O000732,2024-04-30,U0279,广州,APP,家居,1,68.9,0.1,62.01,已完成 +O000733,2024-04-30,U0130,北京,APP,家居,4,612.9,0.1,2206.44,已完成 +O000734,2024-05-01,U0345,杭州,APP,家居,3,307.9,0.05,877.51,已完成 +O000735,2024-05-01,U0136,武汉,小程序,服饰,2,65.9,0.0,131.8,已完成 +O000736,2024-05-01,U0316,上海,网页,食品,1,119.9,0.0,119.9,已完成 +O000737,2024-05-01,U0100,广州,APP,食品,3,97.9,0.05,279.02,已完成 +O000738,2024-05-01,U0058,上海,APP,服饰,1,326.9,0.05,310.55,已完成 +O000739,2024-05-01,U0188,上海,APP,家居,5,462.9,0.3,1620.15,已完成 +O000740,2024-05-01,U0271,武汉,APP,家居,2,277.9,,555.8,已退款 +O000741,2024-05-02,U0097,深圳,网页,家居,1,556.9,,556.9,已取消 +O000742,2024-05-02,U0279,成都,小程序,数码,2,947.9,0.2,1516.64,已完成 +O000743,2024-05-02,U0276,武汉,小程序,服饰,1,302.9,0.15,257.46,已完成 +O000744,2024-05-02,U0130,广州,APP,服饰,5,112.9,,564.5,已完成 +O000745,2024-05-03,U0327,杭州,网页,数码,4,252.9,,1011.6,已完成 +O000746,2024-05-03,U0063,武汉,APP,家居,3,625.9,0.15,1596.04,已完成 +O000747,2024-05-03,U0082,上海,APP,美妆,1,197.9,0.0,197.9,已完成 +O000748,2024-05-03,U0168,成都,小程序,食品,4,99.9,0.05,379.62,已完成 +O000749,2024-05-03,U0067,武汉,小程序,服饰,1,176.9,0.0,176.9,已完成 +O000750,2024-05-03,U0077,,APP,美妆,4,272.9,0.3,764.12,已完成 +O000751,2024-05-04,U0287,深圳,小程序,美妆,1,243.9,0.0,243.9,已完成 +O000752,2024-05-04,U0154,北京,APP,食品,2,71.9,0.1,129.42,已取消 +O000753,2024-05-04,U0139,武汉,APP,数码,1,2786.9,,2786.9,已完成 +O000754,2024-05-04,U0023,上海,小程序,服饰,2,148.9,,297.8,已取消 +O000755,2024-05-04,U0217,北京,APP,食品,2,71.9,0.0,143.8,已完成 +O000756,2024-05-04,U0199,杭州,APP,家居,1,422.9,0.0,422.9,已完成 +O000757,2024-05-04,U0133,深圳,小程序,家居,3,100.9,0.05,287.57,已完成 +O000758,2024-05-04,U0342,武汉,网页,服饰,3,381.9,0.05,1088.41,已完成 +O000759,2024-05-05,U0232,深圳,网页,家居,1,74.9,0.15,63.67,已完成 +O000760,2024-05-05,U0130,上海,APP,家居,4,246.9,0.1,888.84,已完成 +O000761,2024-05-05,U0058,成都,APP,服饰,2,259.9,,519.8,已完成 +O000762,2024-05-05,U0060,武汉,APP,服饰,1,188.9,0.0,188.9,已完成 +O000763,2024-05-05,U0280,上海,APP,服饰,1,72.9,0.05,69.26,已完成 +O000764,2024-05-06,U0273,北京,APP,美妆,5,558.9,0.05,2654.78,已完成 +O000765,2024-05-06,U0305,深圳,小程序,服饰,2,393.9,0.0,787.8,已完成 +O000766,2024-05-06,U0308,广州,APP,家居,1,125.9,0.1,113.31,已完成 +O000767,2024-05-07,U0282,上海,小程序,家居,3,637.9,,1913.7,已完成 +O000768,2024-05-07,U0311,上海,小程序,服饰,2,390.9,0.0,781.8,已完成 +O000769,2024-05-07,U0247,广州,小程序,食品,1,62.9,0.0,62.9,已完成 +O000770,2024-05-07,U0281,北京,APP,家居,1,613.9,0.1,552.51,已取消 +O000771,2024-05-07,U0096,深圳,网页,服饰,1,193.9,0.1,174.51,已完成 +O000772,2024-05-07,U0110,成都,APP,服饰,5,245.9,0.0,1229.5,已完成 +O000773,2024-05-08,U0316,广州,小程序,家居,1,394.9,0.3,276.43,已完成 +O000774,2024-05-08,U0086,武汉,APP,数码,1,519.9,0.1,467.91,已完成 +O000775,2024-05-08,U0336,杭州,网页,服饰,3,380.9,0.05,1085.56,已完成 +O000776,2024-05-08,U0101,北京,APP,数码,2,1755.9,0.1,3160.62,已完成 +O000777,2024-05-08,U0319,北京,APP,食品,2,35.9,0.0,71.8,已完成 +O000778,2024-05-08,U0010,上海,小程序,美妆,1,273.9,,273.9,已完成 +O000779,2024-05-08,U0092,上海,APP,食品,2,44.9,0.05,85.31,已退款 +O000780,2024-05-08,U0316,上海,APP,服饰,2,375.9,0.2,601.44,已退款 +O000781,2024-05-08,U0102,广州,APP,食品,3,82.9,0.1,223.83,已完成 +O000782,2024-05-08,U0004,成都,APP,家居,1,406.9,0.05,386.55,已完成 +O000783,2024-05-08,U0169,广州,小程序,服饰,1,72.9,0.2,58.32,已退款 +O000784,2024-05-09,U0317,深圳,小程序,食品,1,58.9,0.0,58.9,已完成 +O000785,2024-05-09,U0100,武汉,小程序,美妆,1,149.9,0.0,149.9,已完成 +O000786,2024-05-09,U0002,北京,小程序,家居,2,136.9,0.2,219.04,已完成 +O000787,2024-05-10,U0102,杭州,APP,服饰,1,346.9,0.1,312.21,已退款 +O000788,2024-05-10,U0350,北京,小程序,美妆,2,465.9,0.0,931.8,已完成 +O000789,2024-05-10,U0094,北京,APP,服饰,1,115.9,0.1,104.31,已完成 +O000790,2024-05-10,U0240,成都,小程序,服饰,1,318.9,,318.9,已完成 +O000791,2024-05-10,U0142,成都,APP,服饰,2,349.9,0.1,629.82,已完成 +O000792,2024-05-11,U0253,成都,网页,食品,5,76.9,0.15,326.82,已取消 +O000793,2024-05-11,U0327,北京,APP,美妆,2,521.9,0.3,730.66,已完成 +O000793,2024-05-11,U0327,北京,APP,美妆,2,521.9,0.3,730.66,已完成 +O000794,2024-05-11,U0281,广州,APP,食品,4,103.9,0.05,394.82,已完成 +O000795,2024-05-11,U0077,杭州,网页,服饰,1,87.9,0.05,83.5,已完成 +O000796,2024-05-11,U0014,北京,APP,食品,4,109.9,0.0,439.6,已完成 +O000797,2024-05-11,U0262,北京,小程序,家居,4,594.9,0.2,1903.68,已完成 +O000798,2024-05-11,U0248,武汉,APP,美妆,1,133.9,0.0,133.9,已完成 +O000799,2024-05-12,U0129,广州,APP,家居,1,655.9,0.05,623.1,已完成 +O000800,2024-05-12,U0332,武汉,APP,数码,1,1265.9,,1265.9,已完成 +O000801,2024-05-12,U0173,杭州,网页,家居,3,457.9,,1373.7,已取消 +O000802,2024-05-12,U0097,深圳,小程序,家居,3,531.9,0.2,1276.56,已完成 +O000803,2024-05-12,U0064,北京,APP,食品,5,65.9,0.1,296.55,已完成 +O000804,2024-05-12,U0271,深圳,APP,美妆,5,578.9,0.3,2026.15,已完成 +O000805,2024-05-12,U0240,广州,APP,美妆,3,477.9,,1433.7,已完成 +O000806,2024-05-12,U0356,深圳,APP,美妆,1,495.9,0.15,421.52,已完成 +O000807,2024-05-13,U0258,上海,APP,数码,1,1625.9,0.3,1138.13,已完成 +O000808,2024-05-13,U0250,成都,APP,服饰,1,321.9,0.2,257.52,已完成 +O000809,2024-05-13,U0155,深圳,APP,食品,1,26.9,0.0,26.9,已完成 +O000810,2024-05-13,U0065,成都,小程序,美妆,3,221.9,0.1,599.13,已完成 +O000811,2024-05-14,U0321,武汉,网页,美妆,3,551.9,0.1,1490.13,已完成 +O000812,2024-05-14,U0111,杭州,APP,家居,2,255.9,0.05,486.21,已完成 +O000813,2024-05-14,U0111,上海,网页,食品,1,63.9,0.0,63.9,已取消 +O000814,2024-05-14,U0056,,APP,食品,1,91.9,0.05,87.3,已完成 +O000815,2024-05-14,U0347,广州,APP,数码,1,2920.9,0.15,2482.76,已取消 +O000816,2024-05-14,U0210,杭州,小程序,数码,3,297.9,0.0,893.7,已完成 +O000817,2024-05-14,U0212,上海,网页,家居,1,356.9,0.1,321.21,已完成 +O000818,2024-05-14,U0102,北京,APP,美妆,2,283.9,0.2,454.24,已完成 +O000819,2024-05-15,U0296,杭州,APP,家居,4,656.9,0.0,2627.6,已取消 +O000820,2024-05-15,U0023,杭州,小程序,服饰,3,71.9,0.0,215.7,已完成 +O000821,2024-05-15,U0300,北京,小程序,美妆,5,305.9,0.15,1300.08,已取消 +O000822,2024-05-15,U0256,上海,APP,食品,4,101.9,0.0,407.6,已完成 +O000823,2024-05-15,U0154,武汉,网页,服饰,4,192.9,0.05,733.02,已完成 +O000824,2024-05-15,U0097,深圳,网页,家居,3,587.9,0.15,1499.14,已完成 +O000825,2024-05-16,U0331,上海,小程序,食品,1,70.9,0.05,67.36,已完成 +O000826,2024-05-16,U0199,北京,APP,数码,1,1017.9,0.05,967.0,已完成 +O000827,2024-05-16,U0102,杭州,APP,数码,1,542.9,0.15,461.46,已完成 +O000828,2024-05-16,U0222,深圳,APP,美妆,1,594.9,0.2,475.92,已完成 +O000829,2024-05-16,U0003,杭州,APP,食品,5,43.9,0.2,175.6,已完成 +O000830,2024-05-16,U0227,成都,APP,食品,1,52.9,0.2,42.32,已完成 +O000831,2024-05-17,U0097,上海,小程序,食品,1,61.9,0.0,61.9,已完成 +O000832,2024-05-17,U0057,深圳,APP,美妆,1,480.9,,480.9,已完成 +O000833,2024-05-17,U0303,北京,网页,数码,4,416.9,0.05,1584.22,已完成 +O000834,2024-05-17,U0125,杭州,APP,家居,5,361.9,0.0,1809.5,已完成 +O000835,2024-05-17,U0357,广州,APP,服饰,3,273.9,0.0,821.7,已完成 +O000836,2024-05-17,U0259,武汉,网页,食品,2,54.9,,109.8,已完成 +O000837,2024-05-17,U0079,,APP,服饰,1,214.9,0.0,214.9,已完成 +O000838,2024-05-17,U0291,上海,小程序,美妆,2,456.9,0.0,913.8,已完成 +O000839,2024-05-17,U0106,,APP,家居,5,503.9,0.05,2393.52,已完成 +O000840,2024-05-18,U0247,广州,APP,食品,1,98.9,,98.9,已取消 +O000841,2024-05-18,U0145,上海,APP,食品,2,111.9,0.1,201.42,已完成 +O000842,2024-05-18,U0311,深圳,小程序,食品,2,103.9,0.1,187.02,已完成 +O000843,2024-05-18,U0209,上海,APP,服饰,3,323.9,0.0,971.7,已取消 +O000844,2024-05-18,U0174,武汉,网页,家居,1,88.9,0.0,88.9,已完成 +O000845,2024-05-18,U0274,上海,小程序,食品,1,77.9,0.15,66.22,已完成 +O000846,2024-05-19,U0275,上海,APP,美妆,1,69.9,,69.9,已退款 +O000847,2024-05-19,U0040,成都,APP,食品,1,98.9,0.05,93.96,已完成 +O000848,2024-05-19,U0285,广州,小程序,服饰,3,314.9,0.0,944.7,已完成 +O000849,2024-05-19,U0045,北京,小程序,美妆,1,379.9,0.2,303.92,已完成 +O000850,2024-05-19,U0290,深圳,网页,家居,2,596.9,0.05,1134.11,已完成 +O000851,2024-05-19,U0056,成都,APP,数码,4,1620.9,0.0,6483.6,已完成 +O000852,2024-05-19,U0307,武汉,APP,服饰,1,204.9,0.05,194.66,已完成 +O000853,2024-05-20,U0075,武汉,APP,服饰,5,240.9,0.1,1084.05,已完成 +O000854,2024-05-20,U0081,深圳,APP,食品,3,94.9,0.0,284.7,已完成 +O000855,2024-05-20,U0056,成都,APP,美妆,5,97.9,0.0,489.5,已完成 +O000856,2024-05-20,U0248,深圳,小程序,家居,1,528.9,0.0,528.9,已完成 +O000857,2024-05-20,U0249,北京,APP,家居,1,120.9,0.0,120.9,已完成 +O000858,2024-05-20,U0197,深圳,APP,美妆,1,417.9,0.1,376.11,已完成 +O000859,2024-05-20,U0316,杭州,小程序,食品,2,112.9,0.05,214.51,已完成 +O000860,2024-05-20,U0240,上海,APP,食品,1,39.9,0.1,35.91,已完成 +O000861,2024-05-21,U0074,杭州,APP,服饰,5,226.9,0.2,907.6,已完成 +O000861,2024-05-21,U0074,杭州,APP,服饰,5,226.9,0.2,907.6,已完成 +O000862,2024-05-21,U0012,上海,APP,美妆,1,532.9,0.0,532.9,已完成 +O000863,2024-05-21,U0284,广州,网页,服饰,1,344.9,,344.9,已退款 +O000864,2024-05-21,U0259,上海,小程序,数码,2,2581.9,,5163.8,已完成 +O000865,2024-05-21,U0153,北京,小程序,服饰,3,128.9,0.15,328.7,已退款 +O000866,2024-05-22,U0096,杭州,小程序,美妆,4,138.9,0.0,555.6,已完成 +O000867,2024-05-22,U0115,上海,APP,服饰,1,269.9,0.0,269.9,已完成 +O000868,2024-05-22,U0225,北京,APP,食品,1,110.9,0.0,110.9,已完成 +O000869,2024-05-22,U0006,成都,小程序,食品,1,107.9,0.2,86.32,已退款 +O000870,2024-05-23,U0065,北京,网页,服饰,4,366.9,0.0,1467.6,已完成 +O000871,2024-05-23,U0221,北京,APP,家居,1,49.9,0.1,44.91,已完成 +O000872,2024-05-23,U0075,上海,网页,美妆,1,190.9,0.3,133.63,已完成 +O000873,2024-05-24,U0182,杭州,小程序,家居,1,450.9,0.0,450.9,已完成 +O000873,2024-05-24,U0182,杭州,小程序,家居,1,450.9,0.0,450.9,已完成 +O000874,2024-05-24,U0144,上海,小程序,服饰,3,130.9,,392.7,已完成 +O000875,2024-05-24,U0184,武汉,小程序,家居,1,125.9,0.1,113.31,已完成 +O000876,2024-05-24,U0041,杭州,APP,食品,1,62.9,0.1,56.61,已完成 +O000877,2024-05-24,U0071,深圳,小程序,食品,1,92.9,0.15,78.96,已完成 +O000878,2024-05-24,U0027,上海,小程序,食品,5,115.9,0.15,492.58,已完成 +O000879,2024-05-24,U0130,成都,APP,数码,3,1157.9,0.15,2952.64,已完成 +O000880,2024-05-24,U0217,武汉,小程序,食品,1,123.9,0.0,123.9,已完成 +O000881,2024-05-25,U0177,成都,小程序,家居,5,48.9,0.05,232.27,已完成 +O000882,2024-05-25,U0018,广州,APP,食品,1,65.9,0.05,62.6,已完成 +O000883,2024-05-25,U0129,广州,小程序,数码,4,2141.9,0.0,8567.6,已取消 +O000884,2024-05-25,U0358,武汉,APP,服饰,3,383.9,,1151.7,已完成 +O000885,2024-05-25,U0113,北京,APP,服饰,1,72.9,0.15,61.96,已完成 +O000886,2024-05-25,U0149,武汉,小程序,食品,1,94.9,0.15,80.67,已完成 +O000887,2024-05-25,U0347,,小程序,数码,2,336.9,0.0,673.8,已完成 +O000888,2024-05-26,U0144,深圳,APP,数码,4,389.9,0.0,1559.6,已完成 +O000889,2024-05-26,U0216,成都,小程序,食品,2,77.9,0.1,140.22,已完成 +O000890,2024-05-26,U0360,深圳,APP,数码,2,607.9,0.0,1215.8,已完成 +O000891,2024-05-26,U0274,武汉,网页,家居,2,455.9,0.0,911.8,已完成 +O000892,2024-05-26,U0325,杭州,小程序,数码,2,394.9,0.15,671.33,已完成 +O000893,2024-05-26,U0170,上海,网页,服饰,1,93.9,0.15,79.82,已完成 +O000894,2024-05-26,U0012,上海,APP,家居,1,593.9,0.3,415.73,已完成 +O000895,2024-05-26,U0314,深圳,小程序,服饰,1,395.9,0.05,376.1,已完成 +O000896,2024-05-26,U0031,上海,网页,美妆,1,514.9,0.0,514.9,已取消 +O000897,2024-05-26,U0103,上海,APP,数码,1,1469.9,0.05,1396.4,已完成 +O000898,2024-05-27,U0161,杭州,小程序,家居,1,76.9,0.1,69.21,已完成 +O000899,2024-05-27,U0093,武汉,小程序,食品,4,101.9,,407.6,已完成 +O000900,2024-05-27,U0293,广州,APP,数码,1,2107.9,0.1,1897.11,已完成 +O000901,2024-05-27,U0090,上海,APP,家居,2,161.9,0.0,323.8,已完成 +O000902,2024-05-27,U0063,成都,小程序,数码,1,1716.9,0.0,1716.9,已完成 +O000903,2024-05-27,U0316,武汉,小程序,食品,1,78.9,0.0,78.9,已完成 +O000904,2024-05-27,U0251,杭州,网页,美妆,2,360.9,0.05,685.71,已完成 +O000905,2024-05-27,U0029,武汉,小程序,家居,1,118.9,0.0,118.9,已完成 +O000906,2024-05-27,U0071,上海,APP,食品,1,63.9,0.2,51.12,已完成 +O000907,2024-05-28,U0234,深圳,APP,数码,4,1771.9,0.05,6733.22,已完成 +O000908,2024-05-28,U0079,广州,APP,食品,2,41.9,0.0,83.8,已退款 +O000909,2024-05-28,U0027,上海,APP,数码,4,871.9,0.2,2790.08,已完成 +O000910,2024-05-28,U0193,北京,网页,服饰,1,397.9,0.0,397.9,已完成 +O000911,2024-05-28,U0356,广州,APP,家居,2,503.9,,1007.8,已完成 +O000912,2024-05-29,U0249,武汉,网页,美妆,1,421.9,0.1,379.71,已完成 +O000913,2024-05-29,U0136,成都,APP,服饰,1,229.9,,229.9,已完成 +O000914,2024-05-29,U0316,杭州,小程序,服饰,2,258.9,,517.8,已完成 +O000915,2024-05-29,U0230,杭州,小程序,食品,3,44.9,0.1,121.23,已完成 +O000916,2024-05-29,U0056,北京,小程序,服饰,2,149.9,,299.8,已完成 +O000916,2024-05-29,U0056,北京,小程序,服饰,2,149.9,,299.8,已完成 +O000917,2024-05-29,U0308,深圳,APP,数码,2,2190.9,0.0,4381.8,已取消 +O000918,2024-05-30,U0121,上海,APP,数码,3,221.9,,665.7,已完成 +O000919,2024-05-30,U0210,杭州,小程序,家居,4,295.9,,1183.6,已完成 +O000920,2024-05-30,U0189,广州,APP,服饰,3,333.9,0.0,1001.7,已完成 +O000921,2024-05-30,U0285,深圳,小程序,服饰,4,271.9,0.1,978.84,已取消 +O000922,2024-05-30,U0107,杭州,APP,美妆,2,354.9,0.0,709.8,已完成 +O000923,2024-05-30,U0242,杭州,小程序,服饰,1,274.9,0.05,261.15,已完成 +O000924,2024-05-30,U0016,上海,APP,服饰,5,170.9,0.05,811.78,已完成 +O000925,2024-05-30,U0071,上海,网页,食品,1,38.9,0.15,33.06,已完成 +O000926,2024-05-30,U0102,深圳,APP,食品,3,20.9,,62.7,已完成 +O000927,2024-05-31,U0313,杭州,APP,数码,5,1405.9,0.15,5975.08,已完成 +O000928,2024-05-31,U0004,上海,APP,美妆,1,476.9,0.05,453.05,已完成 +O000929,2024-05-31,U0143,杭州,APP,食品,2,67.9,0.05,129.01,已完成 +O000930,2024-05-31,U0322,杭州,网页,食品,1,32.9,0.05,31.25,已完成 +O000931,2024-05-31,U0086,上海,小程序,美妆,1,166.9,0.15,141.86,已完成 +O000932,2024-06-01,U0071,成都,小程序,食品,1,120.9,0.15,102.76,已完成 +O000933,2024-06-01,U0219,上海,APP,美妆,1,125.9,0.15,107.02,已完成 +O000934,2024-06-01,U0286,上海,网页,家居,1,353.9,0.0,353.9,已完成 +O000935,2024-06-01,U0251,广州,小程序,食品,1,120.9,0.0,120.9,已完成 +O000936,2024-06-01,U0077,上海,小程序,美妆,3,265.9,0.05,757.82,已完成 +O000937,2024-06-01,U0188,武汉,小程序,食品,2,74.9,0.05,142.31,已取消 +O000938,2024-06-01,U0244,广州,APP,食品,3,59.9,0.0,179.7,已退款 +O000939,2024-06-01,U0075,广州,小程序,家居,4,449.9,0.0,1799.6,已完成 +O000940,2024-06-01,U0058,武汉,APP,美妆,1,351.9,,351.9,已完成 +O000941,2024-06-02,U0111,深圳,小程序,数码,3,2249.9,0.0,6749.7,已取消 +O000942,2024-06-02,U0082,北京,APP,家居,2,287.9,0.1,518.22,已完成 +O000943,2024-06-02,U0179,深圳,小程序,服饰,2,222.9,,445.8,已完成 +O000944,2024-06-02,U0009,杭州,APP,家居,5,173.9,0.05,826.02,已完成 +O000945,2024-06-02,U0257,武汉,APP,数码,1,2719.9,,2719.9,已完成 +O000946,2024-06-02,U0058,上海,APP,服饰,3,249.9,0.0,749.7,已完成 +O000947,2024-06-02,U0215,杭州,网页,服饰,2,241.9,,483.8,已完成 +O000948,2024-06-03,U0029,杭州,小程序,家居,1,41.9,0.1,37.71,已退款 +O000949,2024-06-03,U0360,北京,APP,美妆,3,511.9,0.2,1228.56,已完成 +O000950,2024-06-03,U0084,武汉,APP,食品,5,79.9,0.0,399.5,已完成 +O000951,2024-06-03,U0110,杭州,APP,美妆,1,198.9,0.0,198.9,已完成 +O000952,2024-06-03,U0077,上海,APP,家居,1,278.9,0.05,264.96,已完成 +O000953,2024-06-03,U0237,上海,网页,服饰,1,333.9,0.1,300.51,已完成 +O000954,2024-06-03,U0322,武汉,小程序,数码,3,2708.9,,8126.7,已退款 +O000955,2024-06-03,U0025,杭州,APP,服饰,4,117.9,0.15,400.86,已完成 +O000956,2024-06-03,U0108,北京,APP,数码,1,929.9,0.2,743.92,已完成 +O000957,2024-06-03,U0074,杭州,网页,家居,3,586.9,0.15,1496.59,已完成 +O000958,2024-06-03,U0260,杭州,网页,家居,2,619.9,0.0,1239.8,已完成 +O000959,2024-06-03,U0180,上海,网页,数码,3,1421.9,0.1,3839.13,已退款 +O000960,2024-06-03,U0314,杭州,APP,服饰,1,71.9,0.1,64.71,已完成 +O000961,2024-06-03,U0261,上海,APP,服饰,3,137.9,0.1,372.33,已完成 +O000962,2024-06-04,U0298,北京,小程序,服饰,2,265.9,0.15,452.03,已完成 +O000963,2024-06-04,U0147,成都,小程序,服饰,2,101.9,0.1,183.42,已完成 +O000964,2024-06-04,U0027,北京,小程序,服饰,1,80.9,0.0,80.9,已完成 +O000965,2024-06-04,U0155,广州,APP,食品,1,41.9,0.05,39.8,已完成 +O000966,2024-06-04,U0316,北京,APP,服饰,5,140.9,0.0,704.5,已完成 +O000967,2024-06-05,U0110,广州,APP,食品,1,62.9,0.2,50.32,已完成 +O000968,2024-06-05,U0077,深圳,小程序,服饰,2,345.9,0.0,691.8,已完成 +O000969,2024-06-05,U0163,深圳,小程序,美妆,2,160.9,0.1,289.62,已取消 +O000970,2024-06-05,U0186,武汉,小程序,数码,3,842.9,0.0,2528.7,已完成 +O000971,2024-06-05,U0234,深圳,APP,服饰,1,164.9,,164.9,已完成 +O000972,2024-06-05,U0316,成都,网页,食品,1,41.9,,41.9,已完成 +O000973,2024-06-05,U0272,杭州,APP,数码,1,2384.9,0.2,1907.92,已完成 +O000974,2024-06-05,U0147,北京,网页,服饰,2,349.9,0.15,594.83,已完成 +O000975,2024-06-05,U0004,广州,APP,食品,4,116.9,0.15,397.46,已完成 +O000976,2024-06-05,U0146,上海,小程序,食品,5,106.9,0.0,534.5,已完成 +O000977,2024-06-06,U0076,武汉,APP,数码,1,1984.9,0.15,1687.16,已完成 +O000978,2024-06-06,U0221,武汉,APP,家居,2,469.9,,939.8,已完成 +O000979,2024-06-06,U0110,广州,网页,服饰,1,264.9,0.15,225.16,已完成 +O000980,2024-06-06,U0360,杭州,APP,服饰,1,212.9,0.1,191.61,已完成 +O000981,2024-06-06,U0297,深圳,小程序,家居,2,56.9,0.05,108.11,已完成 +O000982,2024-06-06,U0019,杭州,小程序,服饰,5,365.9,0.0,1829.5,已完成 +O000983,2024-06-06,U0256,广州,网页,家居,2,681.9,0.0,1363.8,已完成 +O000984,2024-06-07,U0311,杭州,APP,数码,1,1795.9,0.0,1795.9,已完成 +O000985,2024-06-07,U0192,成都,APP,食品,1,106.9,,106.9,已完成 +O000986,2024-06-07,U0064,武汉,小程序,服饰,5,312.9,0.15,1329.82,已完成 +O000987,2024-06-07,U0027,北京,小程序,食品,3,126.9,0.0,380.7,已完成 +O000988,2024-06-07,U0358,上海,小程序,家居,1,158.9,0.05,150.96,已完成 +O000989,2024-06-07,U0092,上海,小程序,食品,2,101.9,0.0,203.8,已完成 +O000990,2024-06-07,U0341,北京,APP,服饰,3,318.9,0.0,956.7,已完成 +O000991,2024-06-07,U0077,上海,小程序,美妆,3,519.9,0.2,1247.76,已完成 +O000992,2024-06-07,U0067,深圳,网页,家居,1,468.9,0.0,468.9,已取消 +O000993,2024-06-07,U0115,成都,APP,家居,1,391.9,0.0,391.9,已完成 +O000994,2024-06-08,U0067,杭州,APP,食品,5,53.9,,269.5,已退款 +O000995,2024-06-08,U0106,上海,APP,家居,1,552.9,0.0,552.9,已完成 +O000996,2024-06-08,U0199,深圳,小程序,服饰,1,108.9,0.0,108.9,已完成 +O000997,2024-06-08,U0075,北京,小程序,食品,2,36.9,0.05,70.11,已完成 +O000998,2024-06-08,U0251,北京,小程序,美妆,4,183.9,,735.6,已完成 +O000999,2024-06-08,U0097,深圳,网页,家居,2,522.9,0.0,1045.8,已完成 +O001000,2024-06-08,U0036,北京,APP,食品,1,103.9,,103.9,已完成 +O001001,2024-06-08,U0102,广州,小程序,家居,3,233.9,0.0,701.7,已完成 +O001002,2024-06-08,U0115,杭州,网页,数码,1,793.9,0.0,793.9,已完成 +O001003,2024-06-08,U0189,深圳,小程序,美妆,2,579.9,0.0,1159.8,已完成 +O001004,2024-06-08,U0342,广州,APP,食品,1,23.9,,23.9,已完成 +O001005,2024-06-09,U0113,上海,APP,家居,2,277.9,0.0,555.8,已完成 +O001006,2024-06-09,U0123,,APP,食品,1,80.9,0.0,80.9,已完成 +O001007,2024-06-09,U0126,广州,APP,食品,1,30.9,0.05,29.35,已完成 +O001008,2024-06-09,U0191,上海,APP,食品,1,22.9,0.1,20.61,已完成 +O001009,2024-06-09,U0163,广州,APP,服饰,2,171.9,0.0,343.8,已完成 +O001010,2024-06-10,U0210,深圳,APP,服饰,2,154.9,0.05,294.31,已完成 +O001011,2024-06-10,U0341,成都,APP,美妆,1,337.9,0.05,321.0,已完成 +O001012,2024-06-10,U0110,上海,小程序,家居,1,62.9,0.0,62.9,已完成 +O001013,2024-06-10,U0139,成都,APP,数码,4,1506.9,0.05,5726.22,已完成 +O001014,2024-06-10,U0280,上海,APP,数码,3,1759.9,0.2,4223.76,已完成 +O001015,2024-06-10,U0182,武汉,APP,美妆,4,389.9,0.1,1403.64,已完成 +O001016,2024-06-10,U0285,上海,APP,服饰,1,342.9,0.15,291.46,已完成 +O001017,2024-06-11,U0116,北京,网页,食品,5,105.9,0.1,476.55,已完成 +O001018,2024-06-11,U0249,杭州,APP,服饰,2,378.9,,757.8,已完成 +O001019,2024-06-11,U0304,杭州,APP,家居,1,467.9,0.0,467.9,已完成 +O001020,2024-06-11,U0086,杭州,小程序,美妆,1,474.9,0.1,427.41,已完成 +O001021,2024-06-11,U0199,深圳,小程序,美妆,5,403.9,,2019.5,已完成 +O001022,2024-06-11,U0234,北京,小程序,食品,1,126.9,0.0,126.9,已退款 +O001022,2024-06-11,U0234,北京,小程序,食品,1,126.9,0.0,126.9,已退款 +O001023,2024-06-11,U0133,成都,APP,服饰,4,248.9,0.0,995.6,已完成 +O001024,2024-06-11,U0177,上海,小程序,食品,3,37.9,0.15,96.64,已完成 +O001025,2024-06-11,U0100,北京,小程序,美妆,2,109.9,0.15,186.83,已完成 +O001026,2024-06-11,U0098,北京,小程序,数码,5,1481.9,0.0,7409.5,已完成 +O001027,2024-06-11,U0338,成都,APP,美妆,1,555.9,0.05,528.1,已取消 +O001028,2024-06-11,U0077,武汉,APP,数码,1,2371.9,0.05,2253.3,已完成 +O001029,2024-06-12,U0021,,APP,食品,1,45.9,0.0,45.9,已完成 +O001030,2024-06-12,U0223,上海,APP,家居,3,480.9,0.0,1442.7,已取消 +O001031,2024-06-12,U0349,杭州,网页,服饰,2,201.9,0.0,403.8,已完成 +O001032,2024-06-12,U0284,广州,APP,服饰,2,75.9,0.15,129.03,已取消 +O001033,2024-06-12,U0079,上海,小程序,服饰,1,74.9,0.1,67.41,已完成 +O001034,2024-06-12,U0166,北京,小程序,家居,4,625.9,0.1,2253.24,已完成 +O001034,2024-06-12,U0166,北京,小程序,家居,4,625.9,0.1,2253.24,已完成 +O001035,2024-06-12,U0358,北京,小程序,美妆,1,361.9,0.05,343.8,已退款 +O001036,2024-06-13,U0092,上海,小程序,美妆,1,260.9,0.0,260.9,已完成 +O001037,2024-06-13,U0056,武汉,APP,服饰,5,292.9,0.2,1171.6,已完成 +O001038,2024-06-13,U0097,上海,APP,食品,1,104.9,0.05,99.66,已完成 +O001039,2024-06-13,U0115,上海,小程序,食品,2,45.9,0.15,78.03,已完成 +O001040,2024-06-13,U0257,成都,网页,数码,1,413.9,,413.9,已完成 +O001041,2024-06-14,U0052,杭州,APP,食品,5,74.9,0.0,374.5,已完成 +O001042,2024-06-14,U0142,武汉,APP,家居,1,200.9,0.1,180.81,已取消 +O001043,2024-06-14,U0060,上海,小程序,家居,2,242.9,0.1,437.22,已完成 +O001044,2024-06-14,U0039,北京,APP,美妆,1,189.9,0.2,151.92,已取消 +O001045,2024-06-14,U0050,成都,网页,食品,5,100.9,0.15,428.82,已完成 +O001046,2024-06-14,U0304,成都,APP,家居,2,240.9,0.15,409.53,已退款 +O001047,2024-06-14,U0232,成都,APP,食品,1,26.9,0.0,26.9,已完成 +O001048,2024-06-15,U0189,广州,APP,服饰,1,350.9,0.0,350.9,已完成 +O001049,2024-06-15,U0065,深圳,小程序,家居,1,53.9,,53.9,已完成 +O001050,2024-06-15,U0102,武汉,APP,家居,5,606.9,0.05,2882.78,已完成 +O001051,2024-06-15,U0351,成都,网页,数码,5,1027.9,0.0,5139.5,已完成 +O001052,2024-06-15,U0311,成都,APP,食品,2,91.9,0.2,147.04,已取消 +O001053,2024-06-15,U0125,深圳,小程序,家居,1,131.9,0.2,105.52,已完成 +O001054,2024-06-15,U0029,北京,APP,食品,1,118.9,0.0,118.9,已完成 +O001055,2024-06-15,U0001,成都,网页,家居,1,569.9,0.05,541.4,已完成 +O001056,2024-06-16,U0055,成都,网页,家居,1,82.9,,82.9,已完成 +O001057,2024-06-16,U0357,北京,小程序,服饰,1,213.9,0.0,213.9,已取消 +O001058,2024-06-16,U0113,深圳,网页,家居,3,322.9,0.05,920.26,已完成 +O001059,2024-06-16,U0044,深圳,小程序,家居,1,449.9,0.05,427.4,已退款 +O001060,2024-06-16,U0019,广州,APP,家居,1,235.9,0.0,235.9,已取消 +O001061,2024-06-16,U0033,北京,小程序,美妆,2,579.9,0.0,1159.8,已完成 +O001062,2024-06-16,U0097,成都,APP,数码,1,651.9,0.15,554.12,已完成 +O001063,2024-06-16,U0204,广州,小程序,家居,3,183.9,,551.7,已完成 +O001064,2024-06-16,U0159,上海,APP,服饰,1,254.9,0.05,242.16,已退款 +O001065,2024-06-16,U0272,上海,小程序,家居,4,682.9,0.05,2595.02,已完成 +O001066,2024-06-16,U0102,广州,APP,食品,2,68.9,0.0,137.8,已退款 +O001067,2024-06-16,U0004,广州,APP,食品,2,40.9,0.15,69.53,已完成 +O001068,2024-06-17,U0024,北京,APP,服饰,2,62.9,0.2,100.64,已退款 +O001069,2024-06-17,U0149,广州,网页,家居,1,584.9,,584.9,已完成 +O001070,2024-06-17,U0221,北京,APP,服饰,2,354.9,0.2,567.84,已完成 +O001071,2024-06-17,U0110,北京,网页,家居,3,189.9,0.1,512.73,已完成 +O001072,2024-06-17,U0122,广州,APP,食品,1,77.9,0.1,70.11,已完成 +O001073,2024-06-17,U0187,北京,APP,家居,3,182.9,0.0,548.7,已取消 +O001074,2024-06-17,U0144,广州,APP,家居,1,673.9,0.3,471.73,已退款 +O001075,2024-06-17,U0327,广州,APP,美妆,4,502.9,0.0,2011.6,已完成 +O001076,2024-06-17,U0204,杭州,小程序,家居,1,520.9,,520.9,已完成 +O001077,2024-06-17,U0187,深圳,APP,美妆,4,511.9,0.0,2047.6,已完成 +O001078,2024-06-17,U0097,杭州,APP,服饰,2,61.9,0.1,111.42,已完成 +O001079,2024-06-17,U0223,杭州,APP,服饰,5,145.9,0.0,729.5,已完成 +O001080,2024-06-17,U0216,深圳,小程序,食品,2,94.9,0.15,161.33,已完成 +O001081,2024-06-18,U0316,,网页,服饰,2,155.9,0.0,311.8,已完成 +O001082,2024-06-18,U0219,上海,小程序,食品,2,82.9,0.0,165.8,已完成 +O001083,2024-06-18,U0251,武汉,网页,数码,1,812.9,0.1,731.61,已完成 +O001084,2024-06-18,U0317,北京,网页,美妆,2,332.9,0.0,665.8,已退款 +O001085,2024-06-18,U0195,北京,APP,数码,2,2375.9,0.0,4751.8,已完成 +O001086,2024-06-18,U0123,成都,网页,美妆,2,156.9,0.0,313.8,已完成 +O001087,2024-06-18,U0199,武汉,APP,食品,2,110.9,,221.8,已完成 +O001088,2024-06-18,U0086,杭州,APP,服饰,1,231.9,0.2,185.52,已完成 +O001089,2024-06-18,U0027,杭州,网页,食品,4,27.9,,111.6,已完成 +O001090,2024-06-19,U0261,上海,APP,服饰,1,59.9,0.2,47.92,已完成 +O001091,2024-06-19,U0004,上海,APP,服饰,2,380.9,0.0,761.8,已完成 +O001092,2024-06-19,U0146,北京,小程序,服饰,2,216.9,0.2,347.04,已完成 +O001093,2024-06-19,U0349,北京,小程序,数码,5,2380.9,0.05,11309.28,已完成 +O001094,2024-06-19,U0143,北京,APP,家居,5,478.9,0.0,2394.5,已完成 +O001095,2024-06-19,U0327,深圳,小程序,美妆,3,151.9,,455.7,已完成 +O001096,2024-06-19,U0311,成都,APP,食品,3,82.9,0.0,248.7,已完成 +O001097,2024-06-19,U0251,武汉,小程序,美妆,2,186.9,0.0,373.8,已完成 +O001098,2024-06-19,U0246,杭州,小程序,服饰,1,227.9,0.0,227.9,已完成 +O001099,2024-06-19,U0124,,APP,服饰,3,303.9,,911.7,已完成 +O001100,2024-06-19,U0087,杭州,小程序,食品,2,74.9,0.1,134.82,已完成 +O001101,2024-06-19,U0074,北京,APP,家居,1,225.9,0.1,203.31,已退款 +O001102,2024-06-19,U0182,上海,网页,家居,2,468.9,,937.8,已完成 +O001103,2024-06-20,U0182,北京,APP,美妆,3,368.9,0.0,1106.7,已完成 +O001104,2024-06-20,U0199,深圳,APP,服饰,2,250.9,,501.8,已完成 +O001105,2024-06-20,U0294,上海,网页,数码,5,2376.9,0.15,10101.82,已完成 +O001106,2024-06-20,U0283,成都,APP,食品,1,108.9,0.0,108.9,已完成 +O001107,2024-06-20,U0071,杭州,APP,服饰,1,153.9,0.0,153.9,已完成 +O001108,2024-06-20,U0062,成都,小程序,家居,2,690.9,0.1,1243.62,已完成 +O001109,2024-06-20,U0205,深圳,APP,家居,1,246.9,0.1,222.21,已完成 +O001110,2024-06-20,U0230,深圳,网页,家居,1,276.9,0.0,276.9,已取消 +O001111,2024-06-20,U0199,广州,APP,数码,2,2589.9,0.2,4143.84,已完成 +O001112,2024-06-20,U0035,杭州,APP,食品,5,30.9,0.1,139.05,已完成 +O001113,2024-06-20,U0102,北京,APP,美妆,4,188.9,0.2,604.48,已完成 +O001114,2024-06-20,U0318,上海,APP,家居,2,575.9,0.15,979.03,已完成 +O001115,2024-06-21,U0068,北京,APP,家居,1,565.9,0.1,509.31,已完成 +O001116,2024-06-21,U0075,北京,APP,食品,5,104.9,,524.5,已取消 +O001117,2024-06-21,U0004,广州,小程序,食品,4,107.9,0.1,388.44,已完成 +O001118,2024-06-21,U0146,成都,APP,食品,5,104.9,0.05,498.28,已完成 +O001119,2024-06-21,U0316,成都,APP,服饰,2,291.9,0.0,583.8,已完成 +O001120,2024-06-21,U0164,上海,APP,家居,4,408.9,0.05,1553.82,已完成 +O001121,2024-06-21,U0068,北京,小程序,美妆,4,397.9,0.2,1273.28,已完成 +O001122,2024-06-21,U0124,成都,APP,服饰,2,134.9,0.0,269.8,已完成 +O001123,2024-06-21,U0316,武汉,APP,美妆,4,321.9,0.05,1223.22,已完成 +O001124,2024-06-21,U0145,上海,APP,服饰,1,246.9,0.1,222.21,已完成 +O001125,2024-06-21,U0058,杭州,小程序,美妆,2,127.9,,255.8,已完成 +O001126,2024-06-21,U0122,深圳,网页,食品,1,66.9,0.1,60.21,已完成 +O001127,2024-06-21,U0064,杭州,APP,数码,2,2275.9,,4551.8,已完成 +O001128,2024-06-22,U0295,杭州,小程序,家居,1,377.9,0.0,377.9,已完成 +O001129,2024-06-22,U0301,上海,APP,数码,2,775.9,0.05,1474.21,已退款 +O001130,2024-06-22,U0358,武汉,网页,食品,4,109.9,0.0,439.6,已完成 +O001131,2024-06-22,U0077,上海,APP,家居,4,219.9,0.15,747.66,已完成 +O001132,2024-06-23,U0019,北京,APP,食品,2,91.9,0.1,165.42,已完成 +O001133,2024-06-23,U0119,杭州,APP,家居,3,600.9,,1802.7,已取消 +O001134,2024-06-23,U0071,深圳,小程序,家居,1,683.9,0.05,649.7,已完成 +O001135,2024-06-23,U0265,深圳,APP,服饰,1,379.9,0.1,341.91,已完成 +O001136,2024-06-23,U0321,成都,网页,食品,1,112.9,0.0,112.9,已完成 +O001137,2024-06-23,U0012,武汉,网页,服饰,1,355.9,0.1,320.31,已完成 +O001138,2024-06-23,U0222,武汉,APP,服饰,5,155.9,0.15,662.58,已退款 +O001139,2024-06-23,U0316,广州,网页,食品,1,50.9,0.1,45.81,已取消 +O001140,2024-06-23,U0115,北京,网页,服饰,1,143.9,0.15,122.32,已完成 +O001141,2024-06-23,U0169,武汉,APP,服饰,4,85.9,,343.6,已完成 +O001142,2024-06-24,U0028,北京,网页,食品,5,32.9,0.0,164.5,已完成 +O001143,2024-06-24,U0127,深圳,小程序,家居,2,230.9,0.15,392.53,已完成 +O001144,2024-06-24,U0129,广州,小程序,食品,3,64.9,0.05,184.96,已完成 +O001145,2024-06-24,U0250,成都,APP,服饰,5,359.9,0.0,1799.5,已完成 +O001146,2024-06-24,U0171,北京,小程序,食品,1,33.9,,33.9,已完成 +O001147,2024-06-24,U0327,武汉,小程序,家居,1,119.9,0.2,95.92,已完成 +O001148,2024-06-24,U0263,武汉,小程序,服饰,1,232.9,0.1,209.61,已完成 +O001149,2024-06-25,U0202,北京,网页,食品,5,62.9,0.05,298.77,已完成 +O001150,2024-06-25,U0061,,APP,服饰,3,146.9,0.0,440.7,已完成 +O001151,2024-06-25,U0077,北京,小程序,食品,2,107.9,,215.8,已完成 +O001152,2024-06-25,U0135,杭州,小程序,数码,1,1429.9,0.0,1429.9,已完成 +O001153,2024-06-25,U0111,上海,小程序,食品,5,128.9,0.1,580.05,已完成 +O001154,2024-06-25,U0317,上海,APP,家居,4,381.9,,1527.6,已完成 +O001155,2024-06-25,U0062,上海,网页,服饰,3,359.9,,1079.7,已完成 +O001156,2024-06-25,U0082,成都,小程序,食品,2,108.9,0.3,152.46,已完成 +O001157,2024-06-25,U0129,北京,APP,家居,5,156.9,0.15,666.82,已完成 +O001158,2024-06-25,U0001,杭州,APP,食品,4,99.9,0.1,359.64,已完成 +O001159,2024-06-26,U0208,北京,小程序,服饰,4,97.9,0.1,352.44,已完成 +O001160,2024-06-26,U0004,深圳,APP,数码,2,680.9,0.2,1089.44,已完成 +O001161,2024-06-26,U0321,成都,APP,服饰,1,218.9,,218.9,已完成 +O001162,2024-06-26,U0139,,网页,食品,1,39.9,0.05,37.9,已完成 +O001163,2024-06-26,U0161,武汉,小程序,食品,4,94.9,0.2,303.68,已完成 +O001164,2024-06-26,U0260,武汉,APP,服饰,2,175.9,0.05,334.21,已完成 +O001165,2024-06-26,U0006,上海,APP,食品,3,117.9,0.15,300.65,已完成 +O001166,2024-06-26,U0292,上海,网页,美妆,5,247.9,,1239.5,已完成 +O001167,2024-06-27,U0015,深圳,网页,服饰,5,158.9,0.3,556.15,已完成 +O001168,2024-06-27,U0269,杭州,小程序,食品,1,114.9,,114.9,已完成 +O001169,2024-06-27,U0148,北京,小程序,家居,4,373.9,0.0,1495.6,已完成 +O001170,2024-06-27,U0126,深圳,APP,美妆,4,183.9,0.0,735.6,已完成 +O001171,2024-06-27,U0077,北京,小程序,美妆,4,66.9,0.05,254.22,已完成 +O001172,2024-06-28,U0214,深圳,APP,服饰,1,185.9,0.05,176.6,已完成 +O001173,2024-06-28,U0097,北京,网页,服饰,3,213.9,0.0,641.7,已完成 +O001174,2024-06-28,U0307,成都,APP,服饰,2,222.9,0.0,445.8,已完成 +O001175,2024-06-28,U0245,上海,APP,食品,2,79.9,0.0,159.8,已完成 +O001176,2024-06-28,U0155,上海,APP,食品,5,109.9,,549.5,已完成 +O001177,2024-06-28,U0066,武汉,小程序,食品,1,89.9,0.05,85.4,已完成 +O001178,2024-06-28,U0278,广州,网页,食品,1,49.9,0.3,34.93,已取消 +O001179,2024-06-28,U0123,北京,网页,数码,4,1413.9,0.1,5090.04,已完成 +O001180,2024-06-28,U0082,武汉,小程序,美妆,3,473.9,0.1,1279.53,已完成 +O001181,2024-06-28,U0028,上海,小程序,服饰,4,80.9,,323.6,已退款 +O001182,2024-06-28,U0102,杭州,小程序,家居,2,369.9,0.0,739.8,已完成 +O001183,2024-06-28,U0255,武汉,APP,数码,1,2336.9,0.0,2336.9,已完成 +O001184,2024-06-29,U0012,深圳,网页,服饰,3,212.9,0.1,574.83,已完成 +O001185,2024-06-29,U0316,北京,小程序,服饰,2,85.9,0.0,171.8,已完成 +O001186,2024-06-29,U0108,杭州,网页,食品,2,108.9,0.0,217.8,已完成 +O001187,2024-06-29,U0256,广州,网页,美妆,3,212.9,0.15,542.9,已完成 +O001188,2024-06-29,U0224,,小程序,美妆,1,365.9,0.0,365.9,已取消 +O001189,2024-06-29,U0306,成都,APP,食品,3,94.9,0.05,270.47,已完成 +O001190,2024-06-29,U0087,上海,小程序,数码,1,1014.9,0.0,1014.9,已完成 +O001191,2024-06-29,U0271,成都,APP,服饰,2,144.9,0.1,260.82,已完成 +O001192,2024-06-29,U0100,北京,小程序,服饰,2,69.9,0.15,118.83,已完成 +O001193,2024-06-29,U0300,杭州,小程序,服饰,2,276.9,0.05,526.11,已完成 +O001194,2024-06-30,U0098,广州,APP,服饰,1,117.9,0.2,94.32,已完成 +O001195,2024-06-30,U0111,北京,网页,食品,2,126.9,0.0,253.8,已完成 +O001196,2024-06-30,U0110,杭州,小程序,食品,1,64.9,0.15,55.17,已完成 +O001197,2024-06-30,U0150,上海,APP,数码,1,626.9,0.2,501.52,已完成 +O001198,2024-06-30,U0057,北京,APP,食品,2,32.9,0.0,65.8,已完成 +O001199,2024-06-30,U0316,成都,小程序,服饰,1,202.9,0.0,202.9,已完成 +O001200,2024-06-30,U0284,北京,小程序,服饰,3,172.9,0.1,466.83,已完成 From 72754b77d3d13a05ee0a665561a8df94cc417d4f Mon Sep 17 00:00:00 2001 From: Smilewithoutfalling <91455578+Smilewithoutfalling@users.noreply.github.com> Date: Sat, 10 Oct 2026 09:00:10 +0800 Subject: [PATCH 23/28] =?UTF-8?q?=E9=98=B6=E6=AE=B53=EF=BC=9Adata/eval/ord?= =?UTF-8?q?ers.dict.csv?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/eval/orders.dict.csv | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 data/eval/orders.dict.csv diff --git a/data/eval/orders.dict.csv b/data/eval/orders.dict.csv new file mode 100644 index 0000000..1dabd84 --- /dev/null +++ b/data/eval/orders.dict.csv @@ -0,0 +1,12 @@ +field,description +order_id,"订单号,唯一标识一笔订单;表中有少量整行重复的录入错误,同一订单号出现两次" +order_date,"下单日期,格式 YYYY-MM-DD,范围 2024-01-01 至 2024-06-30" +user_id,"下单用户编号" +city,"收货城市,取值有北京、上海、广州、深圳、杭州、成都、武汉;少量为空表示未填写" +channel,"下单渠道,取值有 APP、小程序、网页" +category,"商品品类,取值有服饰、数码、食品、家居、美妆" +qty,"购买件数" +unit_price,"商品单价,单位为元" +discount,"折扣率,0.1 表示打九折;为空表示无折扣(等同于 0)" +pay_amount,"实付金额,单位为元,= 件数 × 单价 ×(1 − 折扣率)" +status,"订单状态,取值有已完成、已退款、已取消;已退款和已取消的订单不计入有效销售额" From f5f1e34f9ad390889b2a647e4e468a3a1e8ab49e Mon Sep 17 00:00:00 2001 From: Smilewithoutfalling <91455578+Smilewithoutfalling@users.noreply.github.com> Date: Sat, 10 Oct 2026 09:00:11 +0800 Subject: [PATCH 24/28] =?UTF-8?q?=E9=98=B6=E6=AE=B53=EF=BC=9Adata/sample?= =?UTF-8?q?=5Feval.dict.csv?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/sample_eval.dict.csv | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 data/sample_eval.dict.csv diff --git a/data/sample_eval.dict.csv b/data/sample_eval.dict.csv new file mode 100644 index 0000000..12501fb --- /dev/null +++ b/data/sample_eval.dict.csv @@ -0,0 +1,6 @@ +field,description +date,销售日期,格式 YYYY-MM-DD,范围 2024-01-05 至 2024-06-30 +region,销售地区,取值有华东、华北、华南、华中、西南 +product,产品代号,取值有 A、B、C、D、E +units,销售数量,单位为件;每行是一条销售记录(一笔订单) +price,单价,单位为元;销售额 = units × price From 2d4c82f08aa7f3f6b8eb968429c6e9611cfdb1e7 Mon Sep 17 00:00:00 2001 From: Smilewithoutfalling <91455578+Smilewithoutfalling@users.noreply.github.com> Date: Sat, 10 Oct 2026 09:00:13 +0800 Subject: [PATCH 25/28] =?UTF-8?q?=E9=98=B6=E6=AE=B53=EF=BC=9Ascripts/gen?= =?UTF-8?q?=5Feval=5Fdata.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/gen_eval_data.py | 242 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 242 insertions(+) create mode 100644 scripts/gen_eval_data.py diff --git a/scripts/gen_eval_data.py b/scripts/gen_eval_data.py new file mode 100644 index 0000000..9fee17f --- /dev/null +++ b/scripts/gen_eval_data.py @@ -0,0 +1,242 @@ +"""生成阶段 3 评测用的 3 张合成表(固定随机种子,重复运行产出逐字节相同的 CSV)。 + + python scripts/gen_eval_data.py # 写到 data/eval/ + python scripts/gen_eval_data.py --check # 只校验现有文件与重新生成的是否一致(CI 用) + +表: +- orders.csv 电商订单 2024-01 至 2024-06,含缺失值(城市、折扣)和整行重复(录入重复) +- employees.csv 员工花名册(截至 2024-09-30),含在职与离职员工 +- inventory.csv 门店日频库存 2024-03-01 至 2024-05-31,5 家门店 × 4 个 SKU + +每张表旁边有同名 .dict.csv 数据字典(field,description),供工作流版检索。 +数据是虚构的,不对应任何真实公司或个人。 +""" +import argparse +import io +import os +import sys + +import numpy as np +import pandas as pd + +SEED = 20261010 +ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) +OUT_DIR = os.path.join(ROOT, "data", "eval") + + +# ---------------------------------------------------------------- 电商订单 +def make_orders(rng: np.random.Generator) -> pd.DataFrame: + n = 1200 + days = pd.date_range("2024-01-01", "2024-06-30", freq="D") + # 月度有起伏:3 月、6 月促销更多 + weight = np.array([{1: 0.9, 2: 0.7, 3: 1.2, 4: 1.0, 5: 1.0, 6: 1.4}[d.month] for d in days]) + dates = rng.choice(days, size=n, p=weight / weight.sum()) + dates = np.sort(dates) + + cities = ["北京", "上海", "广州", "深圳", "杭州", "成都", "武汉"] + city_p = [0.18, 0.2, 0.12, 0.14, 0.13, 0.12, 0.11] + channels = ["APP", "小程序", "网页"] + channel_p = [0.5, 0.35, 0.15] + cats = {"服饰": (59, 399), "数码": (199, 2999), "食品": (19, 129), "家居": (39, 699), "美妆": (49, 599)} + cat_names = list(cats) + cat_p = [0.26, 0.14, 0.24, 0.18, 0.18] + + users = [f"U{i:04d}" for i in range(1, 361)] + # 少数老客买得多 + user_w = rng.pareto(1.6, size=len(users)) + 1 + user_ids = rng.choice(users, size=n, p=user_w / user_w.sum()) + + category = rng.choice(cat_names, size=n, p=cat_p) + unit_price = np.array([round(float(rng.uniform(*cats[c])) / 1) for c in category], dtype=float) + unit_price = np.round(unit_price, 0) - 0.1 # 定价习惯:xx9.9 + unit_price = np.where(unit_price < 9.9, 9.9, unit_price) + qty = rng.choice([1, 1, 1, 2, 2, 3, 4, 5], size=n) + discount = rng.choice([0.0, 0.05, 0.1, 0.15, 0.2, 0.3], size=n, p=[0.45, 0.15, 0.2, 0.1, 0.07, 0.03]) + status = rng.choice(["已完成", "已退款", "已取消"], size=n, p=[0.85, 0.08, 0.07]) + city = rng.choice(cities, size=n, p=city_p).astype(object) + channel = rng.choice(channels, size=n, p=channel_p) + + df = pd.DataFrame({ + "order_id": [f"O{i:06d}" for i in range(1, n + 1)], + "order_date": pd.to_datetime(dates).strftime("%Y-%m-%d"), + "user_id": user_ids, + "city": city, + "channel": channel, + "category": category, + "qty": qty, + "unit_price": unit_price, + "discount": discount, + }) + df["pay_amount"] = (df["qty"] * df["unit_price"] * (1 - df["discount"])).round(2) + df["status"] = status + + # 脏数据:城市缺失约 3%;折扣为 0 的行里约 1/3 留空(字典说明:空 = 无折扣) + miss_city = rng.random(n) < 0.03 + df.loc[miss_city, "city"] = np.nan + zero = df.index[df["discount"] == 0.0] + blank = rng.choice(zero, size=len(zero) // 3, replace=False) + df["discount"] = df["discount"].astype(object) + df.loc[blank, "discount"] = np.nan + # 整行重复 18 条(同一 order_id 录入两次),插在原行后面 + dup_idx = np.sort(rng.choice(df.index, size=18, replace=False)) + parts, last = [], 0 + for i in dup_idx: + parts.append(df.iloc[last:i + 1]) + parts.append(df.iloc[[i]]) + last = i + 1 + parts.append(df.iloc[last:]) + return pd.concat(parts, ignore_index=True) + + +ORDERS_DICT = [ + ("order_id", "订单号,唯一标识一笔订单;表中有少量整行重复的录入错误,同一订单号出现两次"), + ("order_date", "下单日期,格式 YYYY-MM-DD,范围 2024-01-01 至 2024-06-30"), + ("user_id", "下单用户编号"), + ("city", "收货城市,取值有北京、上海、广州、深圳、杭州、成都、武汉;少量为空表示未填写"), + ("channel", "下单渠道,取值有 APP、小程序、网页"), + ("category", "商品品类,取值有服饰、数码、食品、家居、美妆"), + ("qty", "购买件数"), + ("unit_price", "商品单价,单位为元"), + ("discount", "折扣率,0.1 表示打九折;为空表示无折扣(等同于 0)"), + ("pay_amount", "实付金额,单位为元,= 件数 × 单价 ×(1 − 折扣率)"), + ("status", "订单状态,取值有已完成、已退款、已取消;已退款和已取消的订单不计入有效销售额"), +] + + +# ---------------------------------------------------------------- 员工花名册 +def make_employees(rng: np.random.Generator) -> pd.DataFrame: + n = 240 + depts = ["研发", "销售", "市场", "财务", "人力", "运营"] + dept_p = [0.35, 0.22, 0.12, 0.08, 0.08, 0.15] + levels = ["P4", "P5", "P6", "P7", "P8"] + level_p = [0.25, 0.32, 0.24, 0.13, 0.06] + base = {"P4": 9000, "P5": 13000, "P6": 19000, "P7": 28000, "P8": 40000} + dept_mult = {"研发": 1.15, "销售": 0.95, "市场": 1.0, "财务": 1.0, "人力": 0.9, "运营": 0.92} + + dept = rng.choice(depts, size=n, p=dept_p) + level = rng.choice(levels, size=n, p=level_p) + gender = np.where(rng.random(n) < np.array([0.3 if d == "研发" else 0.55 for d in dept]), "女", "男") + city = rng.choice(["北京", "上海", "深圳"], size=n, p=[0.45, 0.35, 0.2]) + hire = pd.to_datetime("2015-01-01") + pd.to_timedelta(rng.integers(0, 3560, size=n), unit="D") + lv_age = {"P4": 24, "P5": 27, "P6": 30, "P7": 34, "P8": 38} + birth_year = np.array([2024 - lv_age[l] - int(rng.integers(0, 8)) for l in level]) + salary = np.array([round(base[l] * dept_mult[d] * rng.uniform(0.88, 1.15) / 100) * 100 + for l, d in zip(level, dept)]) + + leave = [] + for h in hire: + if rng.random() < 0.17: + lo = max(h + pd.Timedelta(days=60), pd.Timestamp("2022-01-01")) + hi = pd.Timestamp("2024-09-30") + leave.append(lo + pd.Timedelta(days=int(rng.integers(0, max(1, (hi - lo).days)))) if lo < hi else pd.NaT) + else: + leave.append(pd.NaT) + leave = pd.to_datetime(pd.Series(leave)) + + perf = rng.choice(["A", "B", "C", "D"], size=n, p=[0.15, 0.55, 0.25, 0.05]).astype(object) + perf[hire >= pd.Timestamp("2024-01-01")] = np.nan # 2024 年入职的没有 2023 年绩效 + + df = pd.DataFrame({ + "emp_id": [f"E{i:04d}" for i in range(1, n + 1)], + "dept": dept, "level": level, "gender": gender, "birth_year": birth_year, "city": city, + "hire_date": hire.strftime("%Y-%m-%d"), + "leave_date": leave.dt.strftime("%Y-%m-%d"), + "monthly_salary": salary, "perf_2023": perf, + }) + return df + + +EMP_DICT = [ + ("emp_id", "员工编号"), + ("dept", "所属部门,取值有研发、销售、市场、财务、人力、运营"), + ("level", "职级,P4 最低、P8 最高"), + ("gender", "性别,男或女"), + ("birth_year", "出生年份"), + ("city", "工作城市,取值有北京、上海、深圳"), + ("hire_date", "入职日期,格式 YYYY-MM-DD"), + ("leave_date", "离职日期,格式 YYYY-MM-DD;为空表示仍在职(数据截至 2024-09-30)"), + ("monthly_salary", "月薪(税前基本工资),单位为元"), + ("perf_2023", "2023 年度绩效,A 最好、D 最差;2024 年入职的员工为空"), +] + + +# ---------------------------------------------------------------- 门店日频库存 +def make_inventory(rng: np.random.Generator) -> pd.DataFrame: + days = pd.date_range("2024-03-01", "2024-05-31", freq="D") + stores = {"S01": 1.3, "S02": 1.0, "S03": 0.8, "S04": 1.1, "S05": 0.6} + skus = {"K100": 30, "K200": 18, "K300": 9, "K400": 4} # 日均基础销量 + rows = [] + for s, sm in stores.items(): + for k, base in skus.items(): + stock = int(base * sm * 10) + target = int(base * sm * 12) + for d in days: + dow = 1.35 if d.dayofweek >= 5 else 1.0 # 周末多卖 + promo = 1.5 if pd.Timestamp("2024-05-01") <= d <= pd.Timestamp("2024-05-05") else 1.0 + demand = int(rng.poisson(base * sm * dow * promo)) + received = 0 + if d.dayofweek == 0 or (k == "K100" and d.dayofweek == 3): # 周一补货,K100 周四加补一次 + received = max(0, target - stock) + if rng.random() < 0.08: # 偶尔缺货漏补 + received = 0 + opening = stock + sold = min(demand, opening + received) + closing = opening + received - sold + rows.append((d.strftime("%Y-%m-%d"), s, k, opening, received, sold, closing)) + stock = closing + return pd.DataFrame(rows, columns=["date", "store", "sku", "opening_stock", "received", "sold", "closing_stock"]) + + +INV_DICT = [ + ("date", "日期,格式 YYYY-MM-DD,范围 2024-03-01 至 2024-05-31"), + ("store", "门店编号,取值有 S01、S02、S03、S04、S05"), + ("sku", "商品编号,取值有 K100、K200、K300、K400"), + ("opening_stock", "当日期初库存,单位为件"), + ("received", "当日到货补货数量,单位为件"), + ("sold", "当日销量,单位为件;库存不足时销量受限"), + ("closing_stock", "当日期末库存,单位为件,= 期初 + 到货 − 销量;为 0 表示当日缺货(售罄)"), +] + + +TABLES = { + "orders": (make_orders, ORDERS_DICT), + "employees": (make_employees, EMP_DICT), + "inventory": (make_inventory, INV_DICT), +} + + +def build() -> dict: + """返回 {文件名: 文本内容}。每张表用独立的子种子,改一张表不影响另外两张。""" + out = {} + for i, (name, (fn, dct)) in enumerate(TABLES.items()): + rng = np.random.default_rng([SEED, i]) + buf = io.StringIO() + fn(rng).to_csv(buf, index=False, lineterminator="\n") + out[f"{name}.csv"] = buf.getvalue() + out[f"{name}.dict.csv"] = "field,description\n" + "".join(f"{f},\"{d}\"\n" for f, d in dct) + return out + + +def main(): + ap = argparse.ArgumentParser() + ap.add_argument("--check", action="store_true", help="只校验,不写文件") + args = ap.parse_args() + files = build() + if args.check: + bad = [f for f, text in files.items() + if not os.path.exists(os.path.join(OUT_DIR, f)) + or open(os.path.join(OUT_DIR, f), encoding="utf-8", newline="").read() != text] + if bad: + print("与生成脚本不一致:", ", ".join(bad)) + sys.exit(1) + print("评测数据与生成脚本一致") + return + os.makedirs(OUT_DIR, exist_ok=True) + for f, text in files.items(): + with open(os.path.join(OUT_DIR, f), "w", encoding="utf-8", newline="") as fh: + fh.write(text) + print("写入", os.path.join("data", "eval", f)) + + +if __name__ == "__main__": + main() From edc0e262f45a7773c69ae8865d7c9cc7231e87e3 Mon Sep 17 00:00:00 2001 From: Smilewithoutfalling <91455578+Smilewithoutfalling@users.noreply.github.com> Date: Sat, 10 Oct 2026 09:06:26 +0800 Subject: [PATCH 26/28] =?UTF-8?q?=E9=98=B6=E6=AE=B53=EF=BC=9AWindows=5FCRL?= =?UTF-8?q?F=5F=E7=AD=BE=E5=87=BA=E5=85=BC=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/gen_eval_data.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/gen_eval_data.py b/scripts/gen_eval_data.py index 9fee17f..22adbe0 100644 --- a/scripts/gen_eval_data.py +++ b/scripts/gen_eval_data.py @@ -223,9 +223,10 @@ def main(): args = ap.parse_args() files = build() if args.check: + # 比较时统一换行符:Windows 上 git 可能把 LF 签出成 CRLF(core.autocrlf),内容相同即可 bad = [f for f, text in files.items() if not os.path.exists(os.path.join(OUT_DIR, f)) - or open(os.path.join(OUT_DIR, f), encoding="utf-8", newline="").read() != text] + or open(os.path.join(OUT_DIR, f), encoding="utf-8", newline="").read().replace("\r\n", "\n") != text] if bad: print("与生成脚本不一致:", ", ".join(bad)) sys.exit(1) From 53b9caf8d1f744b3c22b4d05dcdfbcfba2105ba5 Mon Sep 17 00:00:00 2001 From: Smilewithoutfalling <91455578+Smilewithoutfalling@users.noreply.github.com> Date: Sat, 10 Oct 2026 09:06:27 +0800 Subject: [PATCH 27/28] =?UTF-8?q?=E9=98=B6=E6=AE=B53=EF=BC=9AWindows=5FCRL?= =?UTF-8?q?F=5F=E7=AD=BE=E5=87=BA=E5=85=BC=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 8c6ce05..7d9d167 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -24,8 +24,8 @@ jobs: env: PYTHONUTF8: "1" steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 + - uses: actions/checkout@v5 + - uses: actions/setup-python@v6 with: python-version: ${{ matrix.python }} cache: pip From c43b969aa9efc7d211720675c58961c6067a6cb3 Mon Sep 17 00:00:00 2001 From: Smilewithoutfalling <91455578+Smilewithoutfalling@users.noreply.github.com> Date: Sat, 10 Oct 2026 09:06:29 +0800 Subject: [PATCH 28/28] =?UTF-8?q?=E9=98=B6=E6=AE=B53=EF=BC=9AWindows=5FCRL?= =?UTF-8?q?F=5F=E7=AD=BE=E5=87=BA=E5=85=BC=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitattributes | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..95dfd91 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# 评测数据按 LF 存储(scripts/gen_eval_data.py --check 逐字节对比) +data/eval/*.csv text eol=lf