fix: 修复地材混入计算结果的问题
This commit is contained in:
@@ -16,7 +16,7 @@ class Collector:
|
|||||||
self.force = True # todo-2 已发布的价格不在覆盖计算
|
self.force = True # todo-2 已发布的价格不在覆盖计算
|
||||||
self.digit_map = {}
|
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.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}
|
self.tax_map = {m.code: m.tax for m in self.materials if m.code}
|
||||||
|
@@ -35,6 +35,13 @@ class Material(db.Model, Model, OperationTrackMixin):
|
|||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super().__init__(*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
|
@classmethod
|
||||||
def get_by_key(cls, code):
|
def get_by_key(cls, code):
|
||||||
return cls.query.filter(cls.code == code).one_or_none()
|
return cls.query.filter(cls.code == code).one_or_none()
|
||||||
|
@@ -12,7 +12,7 @@ def calculate(year=2023, month=8):
|
|||||||
# 清空当月数据
|
# 清空当月数据
|
||||||
PriceResult.clean(year, month)
|
PriceResult.clean(year, month)
|
||||||
# 从材料表获取趋势表所需的材料信息
|
# 从材料表获取趋势表所需的材料信息
|
||||||
for material in Material.query.all():
|
for material in Material.list(type=1):
|
||||||
calculator = Calculator(year=year, month=month)
|
calculator = Calculator(year=year, month=month)
|
||||||
calculator.name = material.name
|
calculator.name = material.name
|
||||||
calculator.material_id = material.id
|
calculator.material_id = material.id
|
||||||
|
Reference in New Issue
Block a user