gaoluyang
6 天以前 e40a608ef9bf51db294d8eefada6a8e2e80cebca
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
"""Transcribed from official CFSA PDFs, with rendered tables visually checked.
No measured results or automatic passing judgments are generated.
"""
import json,csv
from pathlib import Path
P=Path(__file__).parent
manifest=json.loads((P/'standards/downloaded-manifest.json').read_text(encoding='utf8'))
plans=[]
def scheme(tid,name,standard,scope,rows,enabled=True,note=''):
    source=next(x for x in manifest if x['metadata']['CODE']==standard and 'amendment' not in x['file'])
    out={'template_id':tid,'product':name,'standard':standard,'scope':scope,'status':0 if enabled else 1,'note':note,'source_url':source['source_url'],'pdf':source['file'],'items':[]}
    # Manual scope confirmation is mandatory before using the product criteria.
    out['items'].append({'name':'适用范围及产品形态确认','requirement':scope,'unit':'','method':'核对标签、供应商规格及COA;未确认适用范围不得据此判定合格','clause':'第1章'})
    for row in rows:
        n,r,u,m,*cl=row
        out['items'].append({'name':n,'requirement':r,'unit':u,'method':m if not m.startswith('A.') else standard+' 附录'+m,'clause':cl[0] if cl else '感官/理化指标表及附录A'})
    plans.append(out)
def sensory(color,state,odor=None,clause='表1'):
    rows=[('色泽',color,'','自然光下观察',clause),('状态',state,'','自然光下观察',clause)]
    if odor:rows.append(('气味/滋味',odor,'','按标准感官方法检验',clause))
    return rows
def ident(method='A.2'):return [('鉴别','符合标准鉴别试验要求','',''+method,'附录'+method)]
scheme(256,'DL-苹果酸','GB 25544-2010','食品添加剂DL-苹果酸;按标准第1章核对生产原料和工艺',sensory('白色或类白色','结晶粉末或颗粒','有特殊的酸味')+ident('A.3')+[
('DL-苹果酸含量(以C4H6O5计)','99.0~100.5','%','A.4'),('比旋光度(25℃,D)','-0.10~+0.10','(°)·dm²·kg⁻¹','A.5'),('砷(As)','≤2','mg/kg','A.6'),('铅(Pb)','≤2','mg/kg','A.7'),('灼烧残渣','≤0.1','%','A.8'),('富马酸','≤1.0','%','A.9'),('马来酸','≤0.05','%','A.9'),('水不溶物','≤0.1','%','A.10')])
scheme(259,'乳酸链球菌素','GB 1886.231-2023','按第1章规定发酵提取得到的乳酸链球菌素;商品化产品可添加氯化钠、乳固体辅料,效价应符合声称',sensory('浅棕色至乳白色','粉末','无异味')+ident()+[
('效价','原料≥900;商品化产品符合声称','IU/mg','A.3'),('干燥减量','≤3.0','%','GB 5009.3-2016 直接干燥法'),('氯化钠','≥50.0','%','GB 5009.44-2016 银量法'),('铅(Pb)','≤1.0','mg/kg','GB 5009.75或GB 5009.12'),('菌落总数','≤10','CFU/g','GB 4789.2'),('大肠菌群','≤3.0','MPN/g','GB 4789.3'),('大肠埃希氏菌','≤3.0','MPN/g','GB 4789.38'),('沙门氏菌','不得检出/25g','','GB 4789.4')])
scheme(261,'木糖醇','GB 1886.234-2016','食品添加剂木糖醇;核对原料/工艺。第1号修改单2026-08-18起实施,之前的检验不追溯适用例外',sensory('白色','结晶或晶状粉末')+ident()+[
('木糖醇含量(以干基计)','98.5~101.0','%','A.3'),('干燥减量','≤0.50','%','GB 5009.3 减压干燥法;称样约1g'),('灼烧残渣','≤0.10;2026-08-18起符合修改单且添加二氧化硅的商品化产品可按修改单例外处理','%','A.4'),('还原糖(以葡萄糖计)','≤0.20','%','A.5'),('其他多元醇','≤1.0','%','A.3'),('镍(Ni)','≤1.0','mg/kg','GB 5009.138'),('铅(Pb)','≤1.0','mg/kg','GB 5009.12'),('总砷(以As计)','≤3.0','mg/kg','GB 5009.11')],note='第1号修改单自2026-08-18实施;原料仍须满足基准标准;例外须有商品化配方及二氧化硅合规证明。')
scheme(258,'乳酸钙','GB 1886.21-2016','食品添加剂乳酸钙;须记录五水、三水、一水或无水形态,按对应干燥减量分支人工判定',sensory('白色','晶形粉末或颗粒','无臭或稍有特异气味')+ident('A.3')+[
('乳酸钙含量(以干基计)','98.0~101.0','%','A.4'),('干燥减量','五水22.0~27.0;三水15.0~20.0;一水5.0~8.0;无水≤3.0','%','A.5'),('水溶解','通过试验','','A.6'),('游离酸和游离碱','通过试验','','A.7'),('挥发性脂肪酸','通过试验','','A.8'),('氯化物(以Cl计)','≤0.05','%','A.9'),('硫酸盐(以SO4计)','≤0.075','%','A.10'),('氟化物(以F计)','≤0.0015','%','A.11'),('镁及碱金属','≤1.0','%','A.12'),('铁(Fe)','≤0.005','%','A.13'),('砷(As)','≤2.0','mg/kg','GB 5009.76'),('铅(Pb)','≤10.0','mg/kg','GB 5009.75'),('重金属(以Pb计)','≤20','mg/kg','GB 5009.74')])
scheme(260,'山梨糖醇','GB 1886.187-2016','仅适用于固体山梨糖醇,不用于山梨糖醇液;第1号修改单2026-08-18实施,历史检验按当时版本',sensory('白色','粉末、薄片或颗粒,具有吸湿性')+ident()+[
('山梨糖醇含量(以干基计)','≥91.0','%','A.3'),('水分','≤1.5','%','GB 5009.3 第二法或第四法(仲裁法)'),('还原糖(以葡萄糖计)','≤0.3','%','A.4'),('总糖(以葡萄糖计)','≤4.4','%','A.5'),('灼烧残渣','≤0.1;2026-08-18起符合修改单且添加二氧化硅的商品化产品可按修改单例外处理','%','A.6'),('硫酸盐(以SO4计)','≤100','mg/kg','A.7'),('氯化物(以Cl计)','≤50','mg/kg','A.8'),('镍(Ni)','≤2.0','mg/kg','GB 5009.138'),('铅(Pb)','≤1.0','mg/kg','GB 5009.12')],note='固体与液体分别建物料;第1号修改单例外须确认检验日期和商品化配方。')
scheme(262,'柠檬酸钙','GB 1903.14-2016','食品营养强化剂柠檬酸钙四水合物;核对COA及化学形态,不适用于其他形态',sensory('白色','晶体或结晶性粉末')+ident()+[
('柠檬酸钙含量(以干基计)','97.5~100.5','%','A.3'),('干燥减量','10.0~14.0','%','GB 5009.3 直接干燥法;150℃、4h'),('氟化物','≤30','mg/kg','A.4'),('铅(Pb)','≤2.0','mg/kg','GB 5009.75或GB 5009.12'),('砷(As)','≤3.0','mg/kg','GB 5009.76')])
scheme(263,'柠檬酸锌','GB 1903.49-2020','食品营养强化剂柠檬酸锌;记录无水/二水/三水形态,分支不适用项须记录原因,不得默认通过',sensory('白色','晶体或结晶性粉末','无臭')+ident()+[
('柠檬酸锌含量(三水合物)','三水合物99.0~103.0;无水/二水不适用','%','A.3'),('锌含量(以干基计)','无水/二水≥31.3;三水不适用','%','A.4'),('溶解度(25℃)','三水≥3.60;无水/二水不适用','g/100mL','A.5'),('盐酸不溶物','三水≤0.1;无水/二水不适用','%','A.6'),('干燥减量','≤1.0','%','GB 5009.3 直接干燥法;105℃±2℃、2h'),('氯化物(以Cl计)','≤0.05','%','A.7'),('硫酸盐(以SO4计)','≤0.05','%','A.8'),('溶液澄清度','三水合物合格;无水/二水不适用','','A.9'),('铁(Fe)','≤50','mg/kg','A.10'),('铅(Pb)','≤5.0','mg/kg','GB 5009.75或GB 5009.12'),('总砷(以As计)','≤2.0','mg/kg','GB 5009.76或GB 5009.11'),('镉(Cd)','≤5.0','mg/kg','GB 5009.15')])
scheme(264,'甘油','GB 29950-2013','食品添加剂甘油(丙三醇)',sensory('无色至微黄色','透明黏稠状液体')+ident()+[
('甘油含量','95.0~100.5','%','GB/T 13216'),('相对密度(25℃/25℃)','≥1.249','','GB/T 5009.2(标准原文引用;实验室核对有效方法版本)'),('色泽试验','通过试验','','A.3'),('脂肪酸与酯类','通过试验','','A.4'),('氯化物(以Cl计)','≤0.003','%','A.5'),('易炭化物','通过试验','','A.6'),('灼烧残渣','≤0.01','%','GB/T 13216'),('铅(Pb)','≤1','mg/kg','GB 5009.12')])
scheme(266,'甜菊糖苷','GB 1886.355-2022','甜叶菊叶提取、精制的甜菊糖苷;商品化产品须核对配方和含量标识;不适用于未经确认的其他来源',sensory('白色至浅黄色','粉末、晶体、颗粒或片状',clause='表2')+ident()+[
('甜菊糖苷含量(以干基计)','原料≥90.0;商品化产品应符合标识值','%','A.3'),('灰分','≤1.0','%','GB 5009.4'),('干燥减量','≤6.0','%','GB 5009.3 直接干燥法;105℃±2℃、2h'),('pH','4.5~7.0','','A.4'),('铅(Pb)','≤1.0','mg/kg','GB 5009.75或GB 5009.12'),('砷(As)','≤1.0','mg/kg','GB 5009.76或GB 5009.11'),('甲醇','≤200','mg/kg','A.5'),('乙醇','≤5000','mg/kg','A.5')])
scheme(269,'葡萄糖酸亚铁','GB 1903.10-2015','食品营养强化剂/食品添加剂葡萄糖酸亚铁;形态为无水或二水合物',sensory('灰黄色或浅黄绿色','结晶性粉末或颗粒','有焦糖样气味')+ident()+[
('葡萄糖酸亚铁含量(以干基计)','97.0~102.0','%','A.3'),('干燥减量','≤10.0','%','GB 5009.3 直接干燥法;105℃±2℃、16h'),('三价铁(以Fe3+计)','≤2.0','%','A.4'),('还原糖','通过试验','','A.5'),('硫酸盐(以SO4计)','≤0.1','%','A.6'),('铅(Pb)','≤2.0','mg/kg','GB 5009.12'),('总砷(以As计)','≤2.0','mg/kg','GB 5009.11')])
scheme(270,'赤藓糖醇','GB 26404-2011','葡萄糖为主要原料经规定酵母发酵、精制的赤藓糖醇晶体;GB 1886.390-2026到2027-02-18才实施',sensory('白色','结晶性粉末或颗粒','有甜味')+ident()+[
('赤藓糖醇含量(以干基计)','99.5~100.5','%','A.3'),('干燥减量','≤0.2','%','GB 5009.3 直接干燥法;105℃、4h'),('灼烧残渣','≤0.1','%','A.4'),('还原糖(以葡萄糖计)','≤0.3','%','A.5'),('核糖醇和丙三醇(以干基计)','≤0.1','%','A.6'),('铅(Pb)','≤1','mg/kg','GB 5009.12')],note='GB 1886.390-2026为待实施版本(2027-02-18);此次仍使用GB 26404-2011。')
scheme(271,'黄原胶','GB 1886.41-2025','淀粉质原料经野油菜黄单胞菌发酵、乙醇或异丙醇提纯的黄原胶;记录提取溶剂',sensory('类白色或浅米黄色','颗粒或粉末')+ident()+[
('黄原胶含量(以干基计)','72.0~108.0','%','A.3'),('黏度','≥600','cP','A.4'),('剪切性能值','≥6.5','','A.5'),('干燥失重','≤15.0','%','A.6'),('灰分','≤16.0','%','GB 5009.4 总灰分;预先105℃±1℃干燥4h'),('总氮','≤1.5','%','GB 5009.5 凯氏定氮法;不乘蛋白质换算系数F'),('丙酮酸','≥1.5','%','A.7'),('异丙醇','≤500;仅适用于使用异丙醇提取的产品','mg/kg','GB 25535-2010 附录B'),('铅(Pb)','≤2.0','mg/kg','GB 5009.12或GB 5009.75'),('砷(以As计)','≤1.0','mg/kg','GB 5009.11或GB 5009.76'),('菌落总数','≤5000','CFU/g','GB 4789.2;按本标准表3注进行前处理'),('大肠菌群','≤3.0','MPN/g','GB 4789.3;按表3注进行前处理'),('霉菌和酵母','≤500','CFU/g','GB 4789.15;按表3注进行前处理'),('沙门氏菌','不得检出/25g','','GB 4789.4;25g试样溶于2475mL BPW预增菌')])
# A complete conditional scheme can be prepared, but a product model and approved
# reference are still required to enable the flavor template.
scheme(265,'食用香精','GB 30616-2020','食品用香精;记录液体/乳化/浆膏/拌和粉末/胶囊粉末类型、型号、对照品、食用酒精及植物油比例',[
('原料和标签核对','按3.1、附录A/B和第4、5章核对原辅料与标签;适用GB 2760及GB 29924','','文件核对','3.1、第4/5章'),('色泽和状态','符合同一型号对照品;乳化香精不进行色状检定','','附录C.2','表1'),('香气','符合同一型号对照品','','GB/T 14454.2','表1'),('香味','符合同一型号对照品;以动植物油为溶剂的产品不适用','','附录C.3','表1'),('相对密度','液体/乳化:对照品D±0.010;其余不适用','','GB/T 11540','表2'),('折光指数','液体/乳化:对照品n±0.010;其余不适用','','GB/T 14454.4','表2'),('水分','拌和粉末≤20.0;胶囊粉末≤15.0;其余不适用','%','GB 5009.3-2016 第三法(仲裁法)','表2'),('过氧化值','动植物油含量≥20%的产品≤0.5;其余不适用','g/100g','GB 5009.227-2016 第一法','表2'),('粒度','饮料用乳化香精≤2μm且均匀分布;胶囊粉末规定范围≥90.0%;其余不适用','','附录C.4','表2'),('原液稳定性','乳化香精不分层;其余不适用','','附录C.5','表2'),('千倍稀释液稳定性','饮料用乳化香精无浮油、无沉淀;其余不适用','','附录C.6','表2'),('重金属(以Pb计)','≤10','mg/kg','GB 5009.74','表2'),('砷(以As计)','≤3;超过时复测无机砷≤1.5','mg/kg','GB 5009.76或GB 5009.11','表2'),('甲醇含量','食用酒精含量≥20%的产品≤0.2;其余不适用','%','GB/T 7917.4','表2'),('菌落总数','乳化≤5000;浆膏/固体≤30000;液体按表3不适用','CFU/g或CFU/mL','GB 4789.2','表3'),('大肠菌群','乳化≤3.6;浆膏/固体≤15;液体按表3不适用','MPN/g或MPN/mL','GB 4789.3','表3')],False,'待补产品类型/型号、批准对照品及其相对密度/折光指数;暂缓检验单导入。')
pending=[
 (257,'L-赖氨酸','GB 1903.1-2015针对L-盐酸赖氨酸;现有名称未证明盐酸盐形态,不直接套用,待COA/标签确认。'),
 (267,'甜菜根浓缩粉','未检得可直接对应该浓缩粉的食品安全产品国标;待工艺、配方及产品执行标准。'),
 (268,'燕窝','待确认净燕窝/血燕及加工形态、产地、供应商执行标准;不套用即食燕窝指标。'),
 (272,'黑果枸杞原浆','待确认原浆加工工艺、配方、杀菌方式及产品执行标准;不套用干果枸杞指标。'),
 (273,'丹参粉','待确认普通食品/保健食品用途、原料适用依据及产品标准;不将药典标准直接当作食品国标。'),
 (274,'铁棍山药粉','待确认生粉/熟粉/固体饮料/淀粉或提取物形态及产品标准;不套用其他类别限值。'),
 (275,'花生衣粉','GB 1886.323-2021是食品添加剂花生衣红,不是花生衣粉;待原料用途、工艺及产品标准。'),
 (276,'黑果枸杞0006S','0006S属于待确认的企业标准编号,需完整企业标准及版本;不从编号推定国标指标。')]
(P/'national-standards-plan.json').write_text(json.dumps({'schemes':plans,'pending':[{'template_id':t,'product':n,'reason':r} for t,n,r in pending]},ensure_ascii=False,indent=2),encoding='utf8')
with (P/'national-standards-review.csv').open('w',encoding='utf-8-sig',newline='') as f:
    w=csv.writer(f);w.writerow(['方案ID','物料','执行标准','状态','检验项','要求','单位','方法','来源条款','备注','官方来源'])
    for s in plans:
        for i in s['items']:w.writerow([s['template_id'],s['product'],s['standard'],'启用' if s['status']==0 else '停用',i['name'],i['requirement'],i['unit'],i['method'],i['clause'],s['note'],s['source_url']])
    for t,n,r in pending:w.writerow([t,n,'','停用','','','','','',r,''])
print(json.dumps({'schemes':len(plans),'enabled':sum(s['status']==0 for s in plans),'indicators':sum(len(s['items']) for s in plans),'pending':len(pending)},ensure_ascii=False))