feat: 导入福州历史数据

This commit is contained in:
han0
2024-07-11 09:13:30 +08:00
parent 967bb57136
commit 635279eba0
8 changed files with 404 additions and 30 deletions

View File

@@ -3,10 +3,12 @@ import datetime
from dateutil.relativedelta import relativedelta
from sqlalchemy import Column, Integer, String, Numeric, Date, UniqueConstraint
from commons.models.mixin.base import BaseModelMixin
from commons.models.model import Model
from core.extensions import db
class AsphaltModifier(db.Model):
class AsphaltModifier(db.Model, Model, BaseModelMixin):
__tablename__ = 'ASPHALT_MODIFIER'
id = Column('ID', Integer, primary_key=True)
name = Column('NAME', String(128), default='', comment='名称')
@@ -19,6 +21,14 @@ class AsphaltModifier(db.Model):
{'comment': '沥青改性剂'},
)
def find_by_key(self):
query = AsphaltModifier.query
query = query.filter(AsphaltModifier.name == self.name)
query = query.filter(AsphaltModifier.spec == self.spec)
query = query.filter(AsphaltModifier.date == self.date)
result = query.one_or_none()
return result
@classmethod
def get_query(cls, year=None, month=None, name=None, spec=None, name_in=None):
query = cls.query

View File

@@ -3,10 +3,12 @@ import datetime
from dateutil.relativedelta import relativedelta
from sqlalchemy import Column, Integer, String, Date, UniqueConstraint, Numeric
from commons.models.mixin.base import BaseModelMixin
from commons.models.model import Model
from core.extensions import db
class FujianSurvey(db.Model):
class FujianSurvey(db.Model, Model, BaseModelMixin):
__tablename__ = 'FUJIAN_SURVEY'
id = Column('ID', Integer, primary_key=True)
name = Column('NAME', String(128), default='', comment='名称')
@@ -20,10 +22,19 @@ class FujianSurvey(db.Model):
region = Column('REGION', String(128), comment='地区')
__table_args__ = (
UniqueConstraint(name, spec, date, name='Idx_key'),
UniqueConstraint(name, spec, date, region, name='Idx_key'),
{'comment': '福建省交通工程材料调查表'},
)
def find_by_key(self):
query = FujianSurvey.query
query = query.filter(FujianSurvey.name == self.name)
query = query.filter(FujianSurvey.spec == self.spec)
query = query.filter(FujianSurvey.region == self.region)
query = query.filter(FujianSurvey.date == self.date)
result = query.one_or_none()
return result
@classmethod
def get_query(cls, year=None, month=None, name=None, spec=None, name_in=None, region='福州'):
query = cls.query

View File

@@ -3,10 +3,12 @@ import datetime
from dateutil.relativedelta import relativedelta
from sqlalchemy import Column, Integer, String, Date, UniqueConstraint, Numeric
from commons.models.mixin.base import BaseModelMixin
from commons.models.model import Model
from core.extensions import db
class FuzhouHighwayBureau(db.Model):
class FuzhouHighwayBureau(db.Model, Model, BaseModelMixin):
__tablename__ = 'FUZHOU_HIGHWAY_BUREAU'
id = Column('ID', Integer, primary_key=True)
name = Column('NAME', String(128), default='', comment='名称')
@@ -23,6 +25,15 @@ class FuzhouHighwayBureau(db.Model):
{'comment': '福州公路局'},
)
def find_by_key(self):
query = FuzhouHighwayBureau.query
query = query.filter(FuzhouHighwayBureau.name == self.name)
query = query.filter(FuzhouHighwayBureau.spec == self.spec)
query = query.filter(FuzhouHighwayBureau.region == self.region)
query = query.filter(FuzhouHighwayBureau.date == self.date)
result = query.one_or_none()
return result
@classmethod
def get_query(cls, year, month, name, spec=None, region='福州'):
start_date = datetime.date(year, month, 1)

View File

@@ -3,10 +3,12 @@ import datetime
from dateutil.relativedelta import relativedelta
from sqlalchemy import Column, Integer, String, Date, UniqueConstraint, Numeric
from commons.models.mixin.base import BaseModelMixin
from commons.models.model import Model
from core.extensions import db
class FuzhouTransportationBureau(db.Model):
class FuzhouTransportationBureau(db.Model, Model, BaseModelMixin):
__tablename__ = 'FUZHOU_TRANSPORTATION_BUREAU'
id = Column('ID', Integer, primary_key=True)
name = Column('NAME', String(128), default='', comment='名称')
@@ -23,6 +25,15 @@ class FuzhouTransportationBureau(db.Model):
{'comment': '福州交通局'},
)
def find_by_key(self):
query = FuzhouTransportationBureau.query
query = query.filter(FuzhouTransportationBureau.name == self.name)
query = query.filter(FuzhouTransportationBureau.spec == self.spec)
query = query.filter(FuzhouTransportationBureau.region == self.region)
query = query.filter(FuzhouTransportationBureau.date == self.date)
result = query.one_or_none()
return result
@classmethod
def get_query(cls, year, month, name, region='福州'):
start_date = datetime.date(year, month, 1)

View File

@@ -1,9 +1,11 @@
from sqlalchemy import Column, Integer, String, Date, UniqueConstraint, Numeric, Text
from commons.models.mixin.base import BaseModelMixin
from commons.models.model import Model
from core.extensions import db
class LocalMaterial(db.Model):
class LocalMaterial(db.Model, Model, BaseModelMixin):
__tablename__ = 'LOCAL_MATERIAL'
id = Column('ID', Integer, primary_key=True)
name = Column('NAME', String(128), default='', comment='名称')
@@ -22,3 +24,15 @@ class LocalMaterial(db.Model):
UniqueConstraint(name, spec, city, county, date, name='Idx_key'),
{'comment': '地材'},
)
def find_by_key(self):
cls = self.__class__
query = cls.query
query = query.filter(cls.date == self.date)
query = query.filter(cls.spec == self.spec)
query = query.filter(cls.name == self.name)
query = query.filter(cls.city == self.city)
query = query.filter(cls.county == self.county)
result = query.one_or_none()
return result

View File

@@ -3,10 +3,12 @@ import datetime
from dateutil.relativedelta import relativedelta
from sqlalchemy import Column, Integer, String, Numeric, Date, UniqueConstraint
from commons.models.mixin.base import BaseModelMixin
from commons.models.model import Model
from core.extensions import db
class SanmingSteel(db.Model):
class SanmingSteel(db.Model, Model, BaseModelMixin):
__tablename__ = 'SANMING_STEEL'
id = Column('ID', Integer, primary_key=True)
name = Column('NAME', String(128), default='', comment='名称')
@@ -17,10 +19,18 @@ class SanmingSteel(db.Model):
date = Column('DATE', Date, comment='日期')
__table_args__ = (
UniqueConstraint(name, spec, material, date, name='Idx_key'),
UniqueConstraint(name, spec, date, name='Idx_key'),
{'comment': '三明钢铁'},
)
def find_by_key(self):
query = SanmingSteel.query
query = query.filter(SanmingSteel.name == self.name)
query = query.filter(SanmingSteel.spec == self.spec)
query = query.filter(SanmingSteel.date == self.date)
result = query.one_or_none()
return result
@classmethod
def get_query(cls, year, month, name, spec):
start_date = datetime.date(year, month, 1)