feat: 数字员工财务报告体系与定时提醒及看板快照调度
- 新增数字员工财务报告生成、邮件投递与渲染调度器 - 引入员工画像扫描调度与定时提醒任务 - 完善财务看板快照、排行口径与部门人员占比计算 - 优化数字员工工作看板仪表盘与技能目录 - 增强前端总览页图表、工作台摘要与顶部导航栏交互 - 新增差旅申请规划推动提醒与报销创建会话状态管理 - 补充财务报告、看板调度、数字员工工作记录测试覆盖
This commit is contained in:
@@ -20,7 +20,7 @@ if str(SRC_DIR) not in sys.path:
|
||||
|
||||
from app.db.session import get_session_factory # noqa: E402
|
||||
from app.models.financial_record import ExpenseClaim, ExpenseClaimItem # noqa: E402
|
||||
from app.services.demo_company_simulation_catalog import SIM_CLAIM_PREFIX # noqa: E402
|
||||
from app.services.demo_company_simulation_catalog import SIM_PROJECT_CODE # noqa: E402
|
||||
from app.services.expense_claim_attachment_storage import ( # noqa: E402
|
||||
ExpenseClaimAttachmentStorage,
|
||||
)
|
||||
@@ -135,8 +135,8 @@ def _sim_claims(db) -> list[ExpenseClaim]:
|
||||
db.scalars(
|
||||
select(ExpenseClaim)
|
||||
.options(selectinload(ExpenseClaim.items))
|
||||
.where(ExpenseClaim.claim_no.like(f"{SIM_CLAIM_PREFIX}%"))
|
||||
.order_by(ExpenseClaim.claim_no.asc())
|
||||
.where(ExpenseClaim.project_code == SIM_PROJECT_CODE)
|
||||
.order_by(ExpenseClaim.created_at.asc(), ExpenseClaim.claim_no.asc())
|
||||
).all()
|
||||
)
|
||||
|
||||
@@ -184,7 +184,7 @@ def _write_mock_attachment(
|
||||
violated=violated,
|
||||
)
|
||||
file_path.write_text(ocr_text, encoding="utf-8")
|
||||
item.invoice_id = storage.to_storage_key(file_path)
|
||||
item.invoice_id = filename
|
||||
storage.write_meta(
|
||||
file_path,
|
||||
_meta_payload(
|
||||
|
||||
Reference in New Issue
Block a user