fix: 修复地材混入计算结果的问题

This commit is contained in:
han0
2025-03-19 15:23:09 +08:00
parent 1e4c665870
commit d6389510ae
3 changed files with 9 additions and 2 deletions

View File

@@ -16,7 +16,7 @@ class Collector:
self.force = True # todo-2 已发布的价格不在覆盖计算
self.digit_map = {}
# 获取所有材料信息
self.materials = Material.query.all()
self.materials = Material.list(type=1)
self.material_codes = [m.code for m in self.materials if m.code]
# 缓存材料税率信息
self.tax_map = {m.code: m.tax for m in self.materials if m.code}

View File

@@ -35,6 +35,13 @@ class Material(db.Model, Model, OperationTrackMixin):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
@classmethod
def list(cls, type=None):
query = cls.query
if type:
query = query.filter(cls.type == type)
return query.all()
@classmethod
def get_by_key(cls, code):
return cls.query.filter(cls.code == code).one_or_none()

View File

@@ -12,7 +12,7 @@ def calculate(year=2023, month=8):
# 清空当月数据
PriceResult.clean(year, month)
# 从材料表获取趋势表所需的材料信息
for material in Material.query.all():
for material in Material.list(type=1):
calculator = Calculator(year=year, month=month)
calculator.name = material.name
calculator.material_id = material.id