diff --git a/inventory-backend/app/models/transaction.py b/inventory-backend/app/models/transaction.py index 2cc3bcb..d1cda8e 100644 --- a/inventory-backend/app/models/transaction.py +++ b/inventory-backend/app/models/transaction.py @@ -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, }