xyc
3 天以前 465879cec6931baa8dacc94c7107ebe591f76b2b
docs/¹¤¾ß/»ã×Ü´ó±í²îÒì±È¶Ô.py
@@ -71,6 +71,9 @@
            if norm_indicator(indicator) == norm_indicator(pat): return True
    return False
# ç”¨æˆ·æ‰‹å·¥æ”¹åŠ¨ä¸ºå‡†ï¼ˆä¸å†è®¡å…¥å·®å¼‚ï¼‰
USER_EDITS = {("城市汇总", "G20")}
def num(v):
    return isinstance(v, (int, float)) and not isinstance(v, bool)
@@ -109,9 +112,10 @@
"""
def main(gen, dgf, prefix):
    ACTION = ("实质数值差异", "错误值(程序)", "错误值(手工)", "文本不同")
    ACTION = ("实质数值差异", "错误值(程序)", "错误值(手工)", "需处理(非数值文本)", "文本不同")
    IGNORE = ("已忽略(单边有值)", "已忽略(结构/设计)", "取整尾差(可忽略)", "文本型数字(可忽略)",
              "已知设计(母版新增行)", "已知设计(无表头草稿列)", "已知设计(排名表当月/累计块)", "其它")
              "已知设计(母版新增行)", "已知设计(无表头草稿列)", "已知设计(排名表当月/累计块)",
              "已知差异(用户手工改动)", "其它")
    cats = list(ACTION) + list(IGNORE)
    REASON = {(" è´§è¿", "EA"): "2022年各市州累计同比:业务已确认软件口径正确(手工那列错)",
              ("班线包车", "EO"): "程序生成时重算(疑母版2020年块分母为0):母版/手工为 0.1818,待核对",
@@ -193,17 +197,22 @@
                    cat = "错误值(程序)"; note = vg
                elif isinstance(vd, str) and vd.startswith("#"):
                    cat = "错误值(手工)"; note = vd
                elif (num(vg) and isinstance(vd, str)) or (num(vd) and isinstance(vg, str)):
                    cat = "需处理(非数值文本)"; note = "程序=%s æ‰‹å·¥=%s" % (str(vg)[:14], str(vd)[:14])
                else:
                    cat = "其它"; note = "程序=%s æ‰‹å·¥=%s" % (str(vg)[:14], str(vd)[:14])
                if cat and (sh, "%s%d" % (get_column_letter(i+1), p+1)) in USER_EDITS:
                    bump("已知差异(用户手工改动)"); continue
                if cat:
                    bump(cat)
                    rows_out.append([sh, "%s%d" % (get_column_letter(i+1), p+1), rl_g[p][:38], cl_g[i][:18], cat,
                                     ("" if vg is None else str(vg)[:20]), ("" if vd is None else str(vd)[:20]), note])
                                     ("" if vg is None else str(vg)[:20]), ("" if vd is None else str(vd)[:20]), note,
                                     "%s%d" % (get_column_letter(j+1), q+1)])
        per_sheet.append((sh, cnt))
    # è¾“出 CSV
    csv = prefix + ".csv"
    with io.open(csv, "w", encoding="utf-8-sig", newline="") as f:
        f.write("页签,生成件单元格,行标签,列表头,类别,生成件值,手工值,备注\n")
        f.write("页签,生成件单元格,行标签,列表头,类别,生成件值,手工值,备注,手工单元格\n")
        for x in rows_out:
            if x[4] not in ACTION: continue
            f.write(",".join('"%s"' % str(v).replace('"', "'") for v in x) + "\n")