From 70bac5c22c6597e98921aa7a6b9011d3e19df6e4 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Mon, 29 Jun 2026 13:22:23 +0800 Subject: [PATCH] =?UTF-8?q?feat(resm):=20=E5=AF=B9=E6=8E=A5=E6=9D=90?= =?UTF-8?q?=E6=96=99=E5=89=8D=E6=B2=BF=E7=AE=80=E6=8A=A5=E8=A1=A5=E5=85=85?= =?UTF-8?q?=E6=9C=9F=E5=88=8A/=E5=85=B3=E9=94=AE=E8=AF=8D=E7=9B=91?= =?UTF-8?q?=E6=8E=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 按《全球材料前沿动态简报》三、前沿科技检索清单, 新增 8 本期刊 (Nature Materials/Communications/Reviews Materials、Communications Materials、Science Advances、Scientific Reports、Engineering Structures、 Materials Today)与 6 个低碳建材关键词监控, 复用每天 05:00 的 monitor_papers 周期任务。简报已列且 0009 已收录的期刊不重复添加。 Co-Authored-By: Claude Opus 4.8 (1M context) --- .../migrations/0011_seed_briefing_monitors.py | 87 ++++++++++++++++++ docs/全球材料前沿动态简报(1).docx | Bin 0 -> 14409 bytes 2 files changed, 87 insertions(+) create mode 100644 apps/resm/migrations/0011_seed_briefing_monitors.py create mode 100644 docs/全球材料前沿动态简报(1).docx diff --git a/apps/resm/migrations/0011_seed_briefing_monitors.py b/apps/resm/migrations/0011_seed_briefing_monitors.py new file mode 100644 index 0000000..ce17b1b --- /dev/null +++ b/apps/resm/migrations/0011_seed_briefing_monitors.py @@ -0,0 +1,87 @@ +"""种子数据:对接《全球材料前沿动态简报》三、前沿科技 检索清单,补充期刊 / 关键词监控。 + +简报已列但 0009 已收录的期刊(Ceramics International / CCR / CCC / Construction and +Building Materials)不重复添加;此处只补简报新增项: + +- 一级检索源(Nature/Science 系顶刊):Nature Materials、Nature Communications、 + Communications Materials、Science Advances、Nature Reviews Materials、Scientific Reports +- 二级检索源补充(建材 TOP):Engineering Structures、Materials Today +- 统一检索关键词(简报第三节):低碳水泥 / 储能建材 / 碳化机理 / 固废基胶凝 / 建材碳捕集 等 + (OpenAlex 语料为英文,故 value 用英文搜索词,name 标中文) + +期刊监控只按 ISSN 过滤、不带主题词,Nature Communications / Scientific Reports 等综合性 +大刊会拉入非建材论文;简报要求的"建材主题 + TOP5 筛选"需在下游按关键词二次筛选,本表不承担。 +全部复用每天 05:00 的 monitor_papers 周期任务(0009 已注册),无需新增调度。 +get_or_create 保证迁移可安全重跑。 +""" +from django.db import migrations +from apps.utils.snowflake import idWorker + +# 一级检索源:Nature/Science 系材料类顶刊(简报「前沿科技」一级) +JOURNALS_TIER1 = [ + ("1476-1122", "Nature Materials"), + ("2041-1723", "Nature Communications"), + ("2662-4443", "Communications Materials"), + ("2375-2548", "Science Advances"), + ("2058-8437", "Nature Reviews Materials"), + ("2045-2322", "Scientific Reports"), +] +NOTE_TIER1 = "前沿顶刊" + +# 二级检索源补充:建材 / 无机非金属国际 TOP(简报已列、0009 未收录的) +JOURNALS_TIER2 = [ + ("0141-0296", "Engineering Structures"), + ("1369-7021", "Materials Today"), +] +NOTE_TIER2 = "建材TOP顶刊" + +# 统一检索关键词(简报第三节,英文搜索词 + 中文名) +SEARCHES = [ + ("low carbon cement", "低碳水泥"), + ("energy storage building material", "储能建筑材料"), + ("concrete carbonation", "混凝土碳化机理"), + ("geopolymer", "工业固废基地聚物"), + ("supplementary cementitious material", "固废基胶凝材料"), + ("carbon capture cement", "建材碳捕集"), +] +NOTE_SEARCH = "低碳建材前沿" + + +def seed(apps, schema_editor): + PaperMonitor = apps.get_model("resm", "PaperMonitor") + for issn, name in JOURNALS_TIER1: + PaperMonitor.objects.get_or_create( + type="journal", value=issn, + defaults={"id": idWorker.get_id(), "name": name, "note": NOTE_TIER1, + "is_active": True, "days": 7}, + ) + for issn, name in JOURNALS_TIER2: + PaperMonitor.objects.get_or_create( + type="journal", value=issn, + defaults={"id": idWorker.get_id(), "name": name, "note": NOTE_TIER2, + "is_active": True, "days": 7}, + ) + for term, name in SEARCHES: + PaperMonitor.objects.get_or_create( + type="search", value=term, + defaults={"id": idWorker.get_id(), "name": name, "note": NOTE_SEARCH, + "is_active": True, "days": 7}, + ) + + +def unseed(apps, schema_editor): + PaperMonitor = apps.get_model("resm", "PaperMonitor") + journals = [i for i, _ in JOURNALS_TIER1] + [i for i, _ in JOURNALS_TIER2] + PaperMonitor.objects.filter(type="journal", value__in=journals).delete() + PaperMonitor.objects.filter(type="search", value__in=[t for t, _ in SEARCHES]).delete() + + +class Migration(migrations.Migration): + + dependencies = [ + ("resm", "0010_seed_ensure_fetch_running"), + ] + + operations = [ + migrations.RunPython(seed, unseed), + ] diff --git a/docs/全球材料前沿动态简报(1).docx b/docs/全球材料前沿动态简报(1).docx new file mode 100644 index 0000000000000000000000000000000000000000..788f698ef52dafbad37de7a562027ff9ff035089 GIT binary patch literal 14409 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 xSMi?l@dx