refactor(repair): upgrade TransRepair model with base_id, status, and SN for independent operation
This commit is contained in:
@ -70,29 +70,71 @@ class TransBorrow(db.Model):
|
||||
class TransRepair(db.Model):
|
||||
__tablename__ = 'trans_repair'
|
||||
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
|
||||
|
||||
# 维修单号 (新增)
|
||||
repair_no = db.Column(db.String(50), nullable=True, unique=True)
|
||||
|
||||
# 关联基础信息 (新增)
|
||||
base_id = db.Column(db.Integer, db.ForeignKey('material_base.id'), nullable=True)
|
||||
|
||||
# SKU 保留
|
||||
sku = db.Column(db.String(100))
|
||||
|
||||
# 序列号SN (新增,用于单台追溯)
|
||||
serial_number = db.Column(db.String(100), nullable=True)
|
||||
|
||||
# 来源追溯 (兼容旧数据)
|
||||
source_table = db.Column(db.String(50))
|
||||
stock_id = db.Column(db.Integer)
|
||||
arrival_date = db.Column(db.Date)
|
||||
expected_repair_time = db.Column(db.String(100))
|
||||
shipping_date = db.Column(db.Date)
|
||||
is_self_made = db.Column(db.Boolean, default=False)
|
||||
related_product_id = db.Column(db.Integer)
|
||||
related_contract_id = db.Column(db.String(100))
|
||||
repair_manager = db.Column(db.String(100))
|
||||
|
||||
# 入库/接收时间
|
||||
arrival_date = db.Column(db.Date)
|
||||
|
||||
# 维修状态 (新增)
|
||||
repair_status = db.Column(db.String(50), default='待检测')
|
||||
|
||||
# 客户反馈
|
||||
fault_description = db.Column(db.Text)
|
||||
|
||||
# 预计修复时间
|
||||
expected_repair_time = db.Column(db.String(100))
|
||||
|
||||
# 维修日志/结果
|
||||
repair_result = db.Column(db.Text)
|
||||
|
||||
# 维修人
|
||||
repair_manager = db.Column(db.String(100))
|
||||
|
||||
# 出库交付时间
|
||||
shipping_date = db.Column(db.Date)
|
||||
|
||||
# 客户名/来源
|
||||
related_contract_id = db.Column(db.String(100))
|
||||
|
||||
# 成本与售价
|
||||
cost_price = db.Column(db.Numeric(19, 4))
|
||||
sale_price = db.Column(db.Numeric(19, 4))
|
||||
|
||||
# 数据隔离 (新增)
|
||||
company_id = db.Column(db.Integer, nullable=True)
|
||||
|
||||
# 关联关系
|
||||
base = db.relationship('MaterialBase', backref='repairs')
|
||||
|
||||
def to_dict(self):
|
||||
return {
|
||||
'id': self.id,
|
||||
'repair_no': self.repair_no,
|
||||
'base_id': self.base_id,
|
||||
'sku': self.sku,
|
||||
'serial_number': self.serial_number,
|
||||
'source_table': self.source_table,
|
||||
'stock_id': self.stock_id,
|
||||
'arrival_date': self.arrival_date.strftime('%Y-%m-%d') if self.arrival_date else None,
|
||||
'repair_status': self.repair_status,
|
||||
'expected_repair_time': self.expected_repair_time,
|
||||
'shipping_date': self.shipping_date.strftime('%Y-%m-%d') if self.shipping_date else None,
|
||||
'is_self_made': self.is_self_made,
|
||||
@ -103,6 +145,7 @@ class TransRepair(db.Model):
|
||||
'repair_result': self.repair_result,
|
||||
'cost_price': float(self.cost_price) if self.cost_price is not None else None,
|
||||
'sale_price': float(self.sale_price) if self.sale_price is not None else None,
|
||||
'company_id': self.company_id,
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user