钧发租赁

正在验证登录状态…

钧发租赁 {{ simpleGroup ? simpleGroup.label + ' / ' : '' }}{{ simplePageLabel }}
{{ todayDate }}
本页保留了未提交的{{ simpleEntryReturn.kind === 'rental' ? '出租' : '归还' }}草稿。
工作台

今天的租赁业务

待办处理、项目进度与经营数据

今日待办

需要关注的业务

{{ dashboardTodoLoading ? '正在更新…' : (dashboardTodoError || (dashboardTodoUpdatedAt ? `更新于 ${dashboardTodoUpdatedAt}` : '数据已就绪')) }}
今日出租
{{ todayRentals }}
单
今日归还
{{ todayReturns }}
单
当前日租金
¥{{ formatMoney(todayRentIncome) }}

项目经营明细

当前筛选: 项目:{{ dashboardFilter.name }} {{ dashboardFilter.year }}年 {{ dashboardFilter.status }} 租金:{{ dashboardFilter.rentMin || 0 }} - {{ dashboardFilter.rentMax || '∞' }}元 在租吨位:{{ dashboardFilter.weightMin || 0 }} - {{ dashboardFilter.weightMax || '∞' }}吨 仅显示超期预警项目
项目总数
{{ formatNum(filteredProjects.length) }}
在租吨位
{{ formatWeight(filteredTotalWeight) }}
每日租金
¥{{ formatMoney(filteredDailyRentTotal || 0) }}
总租金
¥{{ formatMoney(filteredTotalRent || 0) }}
已支付
¥{{ formatMoney(filteredProjects.reduce((sum, p) => sum + (p.total_paid || 0), 0)) }}
进行中
{{ filteredProjects.filter(p => p.status === '进行中').length }}
项目名称 需方单位 起租日期 每日租金 总租金 已支付 待归还 在租吨位 状态
{{ p.name }}
⏱ 已扣{{ p.total_pause_days }}天
{{ p.customer_unit || '-' }} {{ p.start_date || '-' }} ¥{{ formatMoney(p.daily_rent_total || 0) }} ¥{{ formatMoney(p.total_rent || 0) }} ¥{{ formatMoney(p.total_paid || 0) }} {{ formatNum(p.pending_qty || 0) }} {{ formatWeight(getProjectInRentWeight(p)) }} {{ p.status || '进行中' }}
暂无项目数据

项目列表

显示 {{ simpleProjects.length }} / {{ projects.length }} 个项目,仅影响本列表
项目名称 需方单位 价格表 负责人 电话 起租日期 现场吨位 总租金 操作
{{ p.name }} {{ p.customer_unit || '-' }} {{ p.rate_sheet_name || '默认' }} {{ p.contact_person || '-' }} {{ p.contact_phone || '-' }} {{ p.start_date || '-' }} {{ formatWeight(getProjectInRentWeight(p)) }} ¥{{ formatMoney(p.total_rent || 0) }}
暂无符合条件的项目,可调整状态或包含已完成项目。
客户协同

盘扣提料

审核客户提料需求,并直接生成现有出租单

待审核
{{ pickupStatusCount('待审核') + pickupStatusCount('变更待审核') }}
已审核
{{ pickupStatusCount('已审核') }}
部分出租
{{ pickupStatusCount('部分出租') }}
已完成
{{ pickupStatusCount('已完成') }}

客户提料单

共 {{ filteredPickupOrders.length }} 单
提料单号项目客户使用区域 计划日期申请数量 已出租本车申请状态操作
{{ order.pickup_no }}
{{ formatDateTime(order.submitted_at || order.created_at) }}
{{ order.project_name }} {{ order.requester_name }}
{{ order.requester_phone }}
{{ order.work_area || '-' }} {{ order.required_date || '-' }} {{ formatNum(order.requested_quantity) }} {{ formatNum(order.fulfilled_quantity) }} {{ formatNum(order.shipment_requested_quantity) }}- {{ order.status }}
暂无符合条件的提料单

提料客户授权

客户在小程序或电脑端使用手机号和授权码登录,只能查看已授权项目。

客户手机号授权项目微信绑定状态操作
{{ user.name }} {{ user.phone }} {{ project.name }}- {{ user.wechat_bound ? '已绑定' : '未绑定' }} {{ user.status }}
尚未创建提料客户

租赁记录

共 {{ filteredRentals.length }} 条租赁记录
请先选择项目查看租赁记录

租金结算

默认截至北京时间今天;已完成项目按结算日期截断
正在读取结算数据…

结算确认与历史版本

未归还只列为待还;人工确认丢失后才计赔偿。确认结算会保存结果,修改历史单据前须先撤销确认。

本项目 V{{ activeSettlementVersion.version_no }} 已确认,截至 {{ activeSettlementVersion.end_date }}。该期间及以前的业务单据受到保护。

历史版本为确认时的快照,不随后续数据变化。{{ settlement.saved_version?.revoke_reason ? '撤销原因:' + settlement.saved_version.revoke_reason : '' }}

确认或更正丢失赔偿 · {{ settlementLossDraft.material_code }} {{ settlementLossDraft.name }}

填写该型号截至生效日期的累计确认丢失量,不是本次增量。设为 0 可更正为无丢失。本操作不自动停租、不调整库存。

{{ settlement.saved_version ? (settlement.saved_version.revoked_at ? '已撤销历史结算' : '已确认结算') : '结算试算' }} #{{ settlement.settlement_no }}

盘扣式脚手架租赁结算单

结算单号: {{ settlement.settlement_no }}
项目名称: {{ settlement.project.name }}
项目地址: {{ settlement.project.address }}
联系人: {{ settlement.project.contact_person }} {{ settlement.project.contact_phone }}
结算期间: {{ settlement.period.start_date }} 至 {{ settlement.period.end_date }}
材料名称规格出租归还多还待还损坏损坏赔偿确认丢失赔偿日租金天数租金
{{ item.material_name }} {{ item.spec }} {{ formatNum(item.rented_qty) }} {{ formatNum(item.returned_qty) }} {{ formatNum(item.over_returned_qty || 0) }} {{ formatNum(item.pending_qty) }} {{ formatNum(item.damaged_qty || 0) }} ¥{{ formatMoney(item.damage_fee) }} - ¥{{ formatMoney(item.lost_fee) }}({{ item.confirmed_lost_qty }} 件) 未计赔偿
¥{{ item.daily_rate }} {{ formatNum(item.days) }} ¥{{ formatMoney(item.rent_amount || 0) }}
超还待核对(不抵扣后续发货):{{ formatNum(settlement.summary.total_over_returned) }}
应收租金:¥{{ formatMoney(settlement.summary?.total_rent || 0) }}
损坏赔偿:¥{{ formatMoney(settlement.summary?.total_damage_fee || 0) }}
确认丢失赔偿:¥{{ formatMoney(settlement.summary?.total_lost_fee || 0) }}
应收合计:¥{{ formatMoney(settlement.summary?.total_amount || 0) }}
截至该日已收:¥{{ formatMoney(settlement.summary?.paid || 0) }}
{{ settlementVersionId ? '确认时项目累计已收:' : '项目累计已收:' }}¥{{ formatMoney(settlement.summary?.paid_all_time || 0) }}
预计待确认赔偿(不计应收):¥{{ formatMoney(settlement.summary?.estimated_lost_fee || 0) }}
未结金额:¥{{ formatMoney(settlement.summary?.balance || 0) }}
{{ settlement.saved_version ? ('确认时间: ' + settlement.saved_version.confirmed_at) : '未确认试算;请核对后确认留存' }}

赔偿确认记录

型号生效日累计确认量单价原因操作人
{{ record.material_code }}{{ record.effective_date }}{{ record.quantity }}{{ Number(record.unit_price).toFixed(2) }}{{ record.reason }}{{ record.actor }}

收款记录

项目 金额 日期 类型 备注
{{ p.project_name }} ¥{{ formatMoney(p.amount) }} {{ p.payment_date }} {{ p.payment_type }} {{ p.remark || '-' }}

归还记录

共 {{ filteredReturns.length }} 条归还记录
请先选择项目查看归还记录

💲 租赁价格表

{{ sheet.name }} 🔒
默认
{{ sheet.description || '暂无描述' }}
{{ sheet.material_count }} 种材料

📊 {{ currentYear }}年度租金总览

年租金总额
¥{{ formatMoney(yearlyTotalRent) }}
月均租金
¥{{ formatMoney(yearlyTotalRent / 12) }}
活跃项目
{{ activeProjectCount }}
峰值月租金
¥{{ formatMoney(peakMonthlyRent) }}
年同比
{{ yearGrowth >= 0 ? '+' : '' }}{{ yearGrowth.toFixed(1) }}%
📈 月度走势
¥{{ formatMoneyShort(getMonthRent(idx)) }}
{{ idx + 1 }}月

📋 项目月度明细

项目名称 年月 月度租金 环比
{{ item.project_name }} {{ item.year }}年{{ item.month }}月 ¥{{ formatMoney(item.rent || 0) }} 无可比数据
暂无月度租金数据,请先创建项目和租赁记录
该项目暂无月度租金记录

🏆 项目租金排行榜

排名 项目名称 总租金 已收款 待收款 占用吨位 状态
{{ idx + 1 }} {{ p.name }} ¥{{ formatMoney(p.total_rent || 0) }} ¥{{ formatMoney(p.total_paid || 0) }} ¥{{ formatMoney((p.total_rent || 0) - (p.total_paid || 0)) }} {{ formatWeight(getProjectInRentWeight(p)) }} {{ p.status || '进行中' }}

📦 材料周转分析

{{ m.code }}
{{ m.category }}
{{ m.name }}
出租: {{ m.rent_times || 0 }} 在租: {{ m.rented || 0 }}
DATA IMPORT

数据导入

上传 Excel / CSV,自动识别业务类型并写入当前库;下方展示当前库规模概览。

当前库规模

内存已加载数据
{{ b.label }}
{{ b.value }}
暂无概览数据,点击刷新或先加载主数据

统计口径

/api/statistics
项目数{{ stats.projectCount ?? projects.length }}
进行中{{ stats.activeProjects ?? '—' }}
在租重量(kg){{ stats.totalWeight ?? '—' }}
累计租金{{ stats.totalRent != null ? ('¥' + formatMoney(stats.totalRent)) : '—' }}

上传导入

上传仅预检。核对新增、更正、保持和系统独有记录后,点击确认才保存。错误会阻止整批导入。

不同业务使用不同固定记录编号。关联旧账请填写系统明细编号;遇到同日未关联旧记录但确为新业务,在“导入处理”列填写“新增”。系统不会按同量、同额自动合并。

📂
点击或拖拽文件到此处上传
支持 Excel (.xlsx, .xls) 和 CSV · 上传到本系统预检,最多10MB / 5000行
正在处理,请勿重复上传…
{{ safeImport.message }}

{{ safeImport.warning }}

本批已保存,不会重复导入。

新增 {{ safeImport.added || 0 }} · 更正 {{ safeImport.updated || 0 }} · 保持 {{ safeImport.unchanged || 0 }} · 系统独有保留 {{ safeImport.system_only?.length || 0 }}

来源行 / 记录编号处理类型 / 日期 / 型号原数量 → 新数量原损坏 → 新损坏 / 单价
{{ r.project_name }} · {{ r.where }}
{{ r.source_id }}
{{ ({add:'新增',update:'更正',unchanged:'保持'})[r.action] }}{{ ({rentals:'出租',returns:'归还',payments:'收款'})[r.kind] }} / {{ r.date }} / {{ r.code || '收款' }}{{ r.before?.quantity ?? '无' }} → {{ r.quantity }}
文件缺少、仍保留的系统记录(可复制系统明细编号建立关联)
{{ r.kind }} / {{ r.date }} / {{ r.code }}{{ r.quantity }}{{ r.id }}
{{ importResult.message }}

本次导入结果

{{ importResult.type || 'result' }}
{{ b.label }}
{{ b.value }}
错误信息:
{{ err }}

导入说明

出租表与归还表分别使用明确的出租日期、归还日期;收款使用付款日期。型号、单位、项目须准确匹配,不猜测、不自动新建项目或材料。

建议每条明细固定填写「记录编号」,每车填写「车次编号」,后续更正沿用原编号。首次与历史记录对比有歧义时,填写「系统明细编号」明确对应;不要改编号重复新增。

数量最多3位小数,不会自动取整。同项目同型号租金沿用项目统一历史价;文件中的租金不覆盖。旧损坏价保留;新损坏带入当前项目维修价,免收填0。

归还纠错修改原单并从原日期重算;不接受负数归还。文件缺行不会删除系统单据。运输信息修改请编辑原单,不用数量导入覆盖司机、车牌和运费。

项目、材料及价格表在对应管理页面维护;直接通过AI或SSH导入也应使用相同预检接口,避免删除后重建。

审计日志

操作记录与筛选(下方表格为主)

SYSTEM CENTER

系统安全与运行中心

集中查看数据同步、备份、安全状态与删除留痕;操作追溯请用审计日志

打开运费通

租赁与物流互联异常

传输失败可重试;待人工确认表示来源单据已变更,但物流端已确认的数据未覆盖,请核对后处理。以下显示最近20条。

{{ issue.document_type }} · {{ issue.document_no }} — {{ issue.status }} · {{ issue.updated_at }}
打开物流系统核对
服务与备份巡检
{{ systemStatus.business_health?.stale ? '状态待更新' : systemStatus.business_health?.ok ? '正常' : '需要检查' }}
{{ systemStatus.business_health?.checked_at || '尚无巡检结果' }}
{{ check.ok ? '正常' : '异常' }} · {{ check.name }}:{{ check.detail }}
数据库状态
{{ systemStatus.database_integrity === 'ok' ? '正常' : '需检查' }}
物流同步成功
{{ systemStatus.freight_sync?.synced || 0 }}
待传输 {{ systemStatus.freight_sync?.pending || 0 }} · 待人工确认 {{ systemStatus.freight_sync?.conflicts || 0 }}
来源单据发生变更,物流端数据未覆盖,请到物流系统核对。
同步失败
{{ systemStatus.freight_sync?.failed || 0 }}
删除留痕
{{ systemStatus.recycle_count || 0 }}
最近数据库备份
{{ systemStatus.database_backup?.available ? formatDateTime(systemStatus.database_backup.created_at) : '尚未检测到' }}
运费通 · freight_sync
已同步 {{ systemStatus.freight_sync?.synced || 0 }} · 待传输 {{ systemStatus.freight_sync?.pending || 0 }} · 待人工确认 {{ systemStatus.freight_sync?.conflicts || 0 }} · 失败 {{ systemStatus.freight_sync?.failed || 0 }}
打开运费通

物流同步概况

freight_sync
已同步 {{ systemStatus.freight_sync?.synced || 0 }}
待处理 {{ (systemStatus.freight_sync?.pending || 0) + (systemStatus.freight_sync?.conflicts || 0) }}(含待人工确认 {{ systemStatus.freight_sync?.conflicts || 0 }})
失败 {{ systemStatus.freight_sync?.failed || 0 }}
暂无同步数据

登录安全

login_security
{{ b.label }}
{{ b.value }}
暂无登录安全数据

客户连续输错 5 次将锁定 15 分钟;旧授权码成功登录后自动升级加密。

删除留痕与恢复

删除的项目、出租单和归还单会保存完整快照;数据冲突时系统会拒绝恢复。

删除时间类型单号/名称操作人状态操作
{{ formatDateTime(item.deleted_at) }} {{ systemEntityLabel(item.entity_type) }} {{ item.reference_no || item.entity_id }} {{ item.deleted_by }} {{ item.restored_at ? '已恢复' : '已删除' }} {{ formatDateTime(item.restored_at) }}
暂无删除留痕

厂内库存盘点表

日期:{{ todayDate }} 盘点人:____________ 复核人:____________

当前筛选 {{ stockFilteredItems.length }} 个型号;账面数量按已保存库存打印,实盘数量由现场填写。

型号材料账面数量(按型号单位)实盘数量(按型号单位)差额(按型号单位)备注
{{ r.code }}{{ r.name }}{{ formatNum(stockSavedQuantity(r)) }}

厂内库存

2026标准价格表范围 · 最近库存调整:{{ stockUpdateTime || '暂无记录' }}

页面可见时每30秒核对 · 最近核对 {{ stockCheckedAt || '尚未读取' }} · 当前显示 {{ stockSyncedAt || '尚未读取' }}{{ stockBackgroundError }}
库存数据已变化正在编辑的输入未覆盖;汇总暂保留编辑前快照。完成或撤销编辑后会同步最新数据,冲突型号需重新核对。
{{ stockDirtyCount }} 个型号有未保存修改汇总仍按当前已保存快照计算;切换页面保留修改,自动核对不会覆盖输入。
总库存吨位{{ stockTons(stockMetrics.total) }}吨其中在租 {{ stockTons(stockMetrics.rented) }} 吨 · 损坏隔离 {{ stockTons(stockMetrics.damaged) }} 吨
厂内库存吨位{{ stockTons(stockMetrics.onsite) }}吨已保存的场内实物库存
提料预占吨位{{ stockTons(stockMetrics.reserved) }}吨来自现有提料预占规则
新提料可申请吨位{{ stockTons(stockMetrics.available) }}吨按各型号场内减预占,最低为零
{{ stockMetrics.missingWeight }} 个型号未配置有效单重,吨位汇总暂不包含这些型号;数量照常显示。
{{ simpleStockCode }} · 型号详情

{{ stockHistoryCode || '全部型号' }} · 库存调整记录

记录当前登录账号、数量变化及原因;记录只读,不补造历史。

正在读取调整记录…

{{ stockMovementCode }} · 近期收发

正在读取收发记录…

{{ stockImpactCode }} · 关联项目与待发车次

预占与车次申请可能指向同一批材料,不能相加作为总需求;不自动分配项目优先级。

正在核对相关项目与待处理车次…

库存明细 {{ stockFilteredItems.length }} / {{ stockList.length }} 个型号数量按各型号单位显示;不同单位合计仅为数量参考 · 无厂内库存 {{ stockMetrics.empty }} 个型号 · 顶部汇总不随筛选变化
正在读取库存明细…
库存尚未加载请刷新或重试,未读取的数据不会显示为零。
{{ stockList.length ? '没有符合条件的材料' : '暂无库存材料' }}

{{ stockList.length ? '试试其他型号,或重置筛选条件。' : '请检查2026标准价格表是否配置了有效材料。' }}

库存状态操作
{{ item.code }}{{ item.name }}{{ item.category || '未分类' }} · 单位:{{ item.unit }} {{ formatNum(item.total_stock) }}{{ stockRowTons(item, item.total_stock) }}
{{ item._editMode === 'count' ? '填写实际盘点数量' : '调整厂内库存数量' }} 已保存 {{ formatNum(item._original_onsite_stock) }} {{ item.unit }} → {{ item.onsite_stock === '' ? '待填写' : formatNum(item.onsite_stock) + ' ' + item.unit }} 差额 {{ stockSigned(item.onsite_stock - stockSavedQuantity(item)) }} {{ item.unit }} · {{ stockRowTons(item, item.onsite_stock - stockSavedQuantity(item)) }} {{ stockReasonError(item) }} {{ stockInputError(item) || item._saveError }}
{{ formatNum(item.reserved_quantity) }}{{ stockRowTons(item, item.reserved_quantity) }} {{ formatNum(item.available_stock) }}{{ stockRowTons(item, item.available_stock) }} {{ formatNum(item.rented) }}{{ stockRowTons(item, item.rented) }}损坏隔离 {{ formatNum(item.damaged_stock) }} {{ item.unit }}超还待核对 {{ formatNum(item.over_returned_stock) }} {{ item.unit }} {{ stockSavedQuantity(item) > 0 ? '有厂内库存' : '无厂内库存' }}预占超过场内账面基数不足 {{ formatNum(item.stock_shortfall) }},请盘点核对可申请低于下限下限 {{ item.stock_alert_min == null ? '未设置' : formatNum(item.stock_alert_min) + ' ' + item.unit }}
{{ item._alertError }}
库存口径与操作说明

库存调整差额达到50吨(含)时,增加一次大额确认;预警下限仍由你按型号设置。点击表头可升序、降序或恢复默认顺序。

当前筛选合计:总库存 {{ stockTons(stockFilteredMetrics.total) }} 吨 · 场内 {{ stockTons(stockFilteredMetrics.onsite) }} 吨 · 预占 {{ stockTons(stockFilteredMetrics.reserved) }} 吨 · 可申请 {{ stockTons(stockFilteredMetrics.available) }} 吨 · 在租 {{ stockTons(stockFilteredMetrics.rented) }} 吨

账面总库存=场内可出租+项目独立在租+损坏隔离;若账面基数不足会单独提示。超还独立待核对,不抵扣其他项目或后续出租,也不自动计入可发库存。可申请数量按各型号 max(场内实物库存-提料预占,0)计算,不同型号之间不互相抵扣;预占来源可展开查看。

吨位=数量×材料单重÷1000,保留两位小数;沿用2026标准价格表的材料范围及现有单重,排除名称或型号含“坏”“弯”的材料。

{{ toast }}