feat: 税务合规智能体—税负监控+发票校验+社保比对

This commit is contained in:
Hermes CI Fix
2026-08-04 15:04:39 +08:00
parent 8e277de3de
commit 38b603f263
7 changed files with 1770 additions and 5 deletions
+63
View File
@@ -592,3 +592,66 @@ class ExpenseReimbursement(Base):
created_by = Column(String(100), nullable=True, comment="提交人")
created_at = Column(DateTime, server_default=func.now())
updated_at = Column(DateTime, server_default=func.now(), onupdate=func.now())
# ============================================================
# 税务合规智能体 (2026-08)
# ① 税负监控 ② 发票校验 ③ 社保比对
# ============================================================
class TaxRecord(Base):
"""税务记录 — 税负监控:应纳税额/实缴额/税负率 vs 行业基准"""
__tablename__ = "tax_records"
id = Column(Integer, primary_key=True, index=True)
entity_id = Column(Integer, default=1, comment="企业ID")
period = Column(String(20), nullable=False, comment="期间 YYYY-MM")
tax_type = Column(String(30), nullable=False, comment="税种: vat增值税/income所得税/surtax附加税")
tax_payable = Column(Float, default=0, comment="应纳税额")
tax_paid = Column(Float, default=0, comment="实缴税额")
tax_rate = Column(Float, nullable=True, comment="适用税率 %")
income = Column(Float, default=0, comment="当期收入/计税收入(税负率分母)")
tax_burden_rate = Column(Float, nullable=True, comment="税负率 % = 实缴税额/收入×100")
burden_status = Column(String(20), default="normal", comment="normal正常/warning超基准±20%内/alert超基准±20%")
warning_msg = Column(String(500), nullable=True, comment="预警信息")
remark = Column(String(500), nullable=True, comment="备注")
created_at = Column(DateTime, server_default=func.now())
updated_at = Column(DateTime, server_default=func.now(), onupdate=func.now())
class InvoiceCheck(Base):
"""发票校验 — 录入后按规则自动校验:号码格式/金额匹配报销单/供应商匹配合同"""
__tablename__ = "invoice_check"
id = Column(Integer, primary_key=True, index=True)
entity_id = Column(Integer, default=1, comment="企业ID")
invoice_no = Column(String(50), nullable=False, comment="发票号码")
amount = Column(Float, nullable=False, comment="发票金额")
invoice_type = Column(String(30), default="vat", comment="发票类型: vat专用/vat普通/electronic电子/other其他")
invoice_date = Column(DateTime, nullable=True, comment="开票日期")
supplier = Column(String(200), nullable=True, comment="供应商名称")
reimb_no = Column(String(50), nullable=True, comment="关联报销单号")
contract_no = Column(String(50), nullable=True, comment="关联合同编号")
check_status = Column(String(20), default="pending", comment="校验状态: pending待校验/valid通过/invalid异常/warning提醒")
check_result = Column(JSON, nullable=True, comment="校验明细: [{rule, passed, message}]")
check_reason = Column(String(1000), nullable=True, comment="异常原因汇总")
checked_at = Column(DateTime, nullable=True, comment="校验时间")
created_at = Column(DateTime, server_default=func.now())
updated_at = Column(DateTime, server_default=func.now(), onupdate=func.now())
class SocialSecurity(Base):
"""社保缴费记录 — 社保比对:基数与工资匹配/单位缴纳比例/漏缴提醒"""
__tablename__ = "social_security"
id = Column(Integer, primary_key=True, index=True)
entity_id = Column(Integer, default=1, comment="企业ID")
employee = Column(String(100), nullable=False, comment="人员姓名")
period = Column(String(20), nullable=False, comment="期间 YYYY-MM")
base_amount = Column(Float, default=0, comment="缴费基数")
salary = Column(Float, nullable=True, comment="申报工资")
company_amount = Column(Float, default=0, comment="单位缴纳金额")
personal_amount = Column(Float, default=0, comment="个人缴纳金额")
company_rate = Column(Float, nullable=True, comment="单位缴纳比例 % (养老16%+医疗8%+失业0.5%≈24.5%)")
check_status = Column(String(20), default="normal", comment="normal正常/warning基数或比例异常/alert漏缴")
warning_msg = Column(String(500), nullable=True, comment="异常提醒: 漏缴/基数不符/比例异常")
remark = Column(String(500), nullable=True, comment="备注")
created_at = Column(DateTime, server_default=func.now())
updated_at = Column(DateTime, server_default=func.now(), onupdate=func.now())