外观
生产费用表
约 1791 字大约 6 分钟
2026-07-28
功能概述
生产费用表用于归集车间实际发生的生产费用明细,包括直接材料费用、直接人工费用、燃料动力费用、固定资产折旧费用等。生产费用表支持按车间、按费用项目进行明细展示,并按产品产量进行费用分摊,是车间成本核算的核心报表之一。
业务对象
| 业务对象 | 说明 |
|---|---|
| 生产费用归集 | 按车间归集生产费用的核心业务对象 |
| 生产费用分摊 | 按产品分摊生产费用的计算对象 |
业务场景描述: 每月末,系统从材料领用、工资分配、电费/燃气费登记、折旧计算等多个数据源汇总各车间的生产费用,再按各产品的实际产量进行分摊,计算出各产品应承担的生产费用。
实体设计
生产费用表实体 (RP_ProductionCostLine)
| 字段名称 | 字段编码 | 数据类型 | 必填 | 是否隐藏 | 说明 |
|---|---|---|---|---|---|
| 主键ID | id | 整数 | 自动 | 系统自带 | |
| 会计期间 | period | 文本 | 是 | 否 | 会计月份 |
| 车间ID | workshopId | 参照/外键 | 是 | 是 | 关联车间档案ID |
| 产品编码 | productCode | 文本 | 是 | 否 | 产品料号编码 |
| 产品名称 | productName | 文本 | 是 | 否 | 产品名称 |
| 产量 | outputQty | 数值 | 是 | 否 | 产品入库数量(2位小数) |
| 直接材料费用 | directMaterialCost | 数值 | 是 | 否 | 直接材料消耗费用(元)(2位小数) |
| 直接人工费用 | directLaborCost | 数值 | 是 | 否 | 直接人工费用(元)(2位小数) |
| 燃料动力费用 | fuelPowerCost | 数值 | 是 | 否 | 燃料动力费用(元)(2位小数) |
| 折旧费用 | depreciationCost | 数值 | 是 | 否 | 固定资产折旧费用(元)(2位小数) |
| 其他生产费用 | otherProductionCost | 数值 | 是 | 否 | 其他生产费用(元)(2位小数) |
| 生产费用合计 | totalProductionCost | 数值 | 是 | 否 | 生产费用合计(2位小数) |
| 分摊单价 | allocationRate | 数值 | 是 | 否 | 单件产品分摊费用(2位小数) |
| 计算状态 | calcStatus | 枚举 | 是 | 否 | 0-未计算/1-已计算 |
| 备注 | remark | 文本 | 否 | 否 | 备注说明 |
| 创建人 | createBy | 文本 | 自动 | 是 | 创建人 |
| 创建时间 | createTime | 日期时间 | 自动 | 是 | 创建时间 |
| 更新人 | updateBy | 文本 | 自动 | 是 | 更新人 |
| 更新时间 | updateTime | 日期时间 | 自动 | 是 | 更新时间 |
| 组织ID | orgId | 参照/外键 | 是 | 是 | 所属组织ID |
页面设计
页面布局
生产费用表页面采用分层报表布局,由筛选区、费用明细区和分摊汇总区组成。
顶部筛选区:
- 会计期间选择器
- 车间多选下拉框
- 费用项目筛选
- "执行归集"按钮
- 费用分摊分析按钮
- 导出功能
中间费用明细区:
- 按车间分组展示各项生产费用
- 费用项目用不同颜色标识(材料费绿色、人工费蓝色、动力费橙色、折旧费紫色)
- 支持展开查看各费用分摊明细
- 费用合计行高亮显示
分摊汇总区:
- 按产品展示分摊后的生产费用
- 分摊单价排名
- 费用构成饼图
- 车间对比柱状图
核心组件
- 报表设计器: 配置费用列展示、多级汇总和条件格式
- 智能分析: 基于语义模型自动分析费用构成,识别分摊异常
- 费用分摊引擎: 按产量比例自动分摊各项生产费用
- 数据可视化: 集成饼图和柱状图组件,多维度展示费用结构
交互规则
- 页面加载时自动加载当前期间的生产费用数据
- 点击"执行归集"按钮从各数据源汇总生产费用
- 点击"费用分摊分析"按钮查看按产品分摊明细
- 支持按车间对比费用结构
- 分摊单价异常的产品自动高亮标注
前端脚本
// 执行生产费用归集
async function onClickCollect() {
const period = getFilterValue('period');
showLoading('正在归集生产费用...');
try {
const result = await collectProductionCost(period);
renderCostTable(result.data);
renderAllocationSummary(result.allocation);
showToast('生产费用归集完成');
} catch (e) {
showError('归集失败:' + e.message);
} finally {
hideLoading();
}
}
// 车间切换事件
async function onWorkshopChange() {
const period = getFilterValue('period');
const workshop = getFilterValue('workshop');
const data = await loadProductionCostData(period, workshop);
renderCostTable(data);
}
// 费用分摊分析
async function onAllocationAnalysis() {
const period = getFilterValue('period');
const data = await loadAllocationData(period);
setChartData('costStructurePie', data.structure);
setChartData('workshopBar', data.comparison);
showAnalysisPanel();
}
// 表格渲染
function renderCostTable(data) {
const grouped = groupByWorkshop(data);
setTableData(grouped);
}计算触发时机:
- 页面加载时自动加载已有归集数据
- 用户点击"执行归集"手动触发
- 支持费用分摊实时分析和可视化
后端脚本
YonQL 查询
-- 查询直接材料费用
SELECT
Workshop,
SUM(Amount) AS DirectMaterialCost
FROM MaterialUse
WHERE Period = #{period}
GROUP BY Workshop
-- 查询直接人工费用
SELECT
Workshop,
SUM(Amount) AS DirectLaborCost
FROM SalaryAllocation
WHERE Period = #{period}
AND CostType = '生产费用'
GROUP BY Workshop
-- 查询燃料动力费用
SELECT
Workshop,
SUM(Electricity + GasFee) AS FuelPowerCost
FROM WorkshopEnergy
WHERE Period = #{period}
GROUP BY Workshop
-- 查询折旧费用
SELECT
Workshop,
SUM(Depreciation) AS DepreciationCost
FROM FixedAssetDepreciation
WHERE Period = #{period}
GROUP BY Workshop报表计算逻辑
async function collectProductionCost(period) {
// 1. 获取各数据源费用
const materialCosts = await queryMaterialCost(period);
const laborCosts = await queryLaborCost(period);
const energyCosts = await queryEnergyCost(period);
const depreciationCosts = await queryDepreciationCost(period);
// 2. 按车间汇总各项费用
const workshopCosts = aggregateByWorkshop(
materialCosts, laborCosts, energyCosts, depreciationCosts
);
// 3. 获取各车间产量数据用于分摊
const productionData = await queryProductionByWorkshop(period);
// 4. 按产品分摊费用
for (const workshop of workshopCosts) {
const products = productionData.filter(p => p.Workshop === workshop.Workshop);
const totalOutput = products.reduce((sum, p) => sum + p.OutputQty, 0);
for (const product of products) {
const ratio = product.OutputQty / totalOutput;
const totalCost = workshop.DirectMaterialCost
+ workshop.DirectLaborCost
+ workshop.FuelPowerCost
+ workshop.DepreciationCost
+ workshop.OtherProductionCost;
await saveProductionCost({
Period: period,
Workshop: workshop.Workshop,
ProductCode: product.ProductCode,
OutputQty: product.OutputQty,
DirectMaterialCost: workshop.DirectMaterialCost * ratio,
DirectLaborCost: workshop.DirectLaborCost * ratio,
FuelPowerCost: workshop.FuelPowerCost * ratio,
DepreciationCost: workshop.DepreciationCost * ratio,
TotalProductionCost: totalCost * ratio,
AllocationRate: totalCost / product.OutputQty,
CalcStatus: '已计算'
});
}
}
}数据汇总
生产费用表按车间汇总各项费用,并按产品分摊生成产品成本数据。汇总数据传递给标准费用表用于差异分析,同时提供给利润分析模块计算产品利润率。
报表配置
报表数据源配置
| 配置项 | 说明 |
|---|---|
| 主数据源 | 生产费用表实体 (RP_ProductionCostLine) |
| 关联数据源 | 材料领用单、工资分摊表、电费/燃气费登记、固定资产折旧表 |
| 数据类型 | 费用归集与分摊类报表 |
| 语义模型 | 基于"车间-费用项目-产品"三维生产费用语义模型 |
过滤条件
- 会计期间:必选
- 车间:可选,多选
- 费用项目:可选
- 产品编码:可选
分组统计
- 一级分组: 车间
- 二级分组: 费用项目
- 汇总指标: 各项生产费用合计、费用合计、分摊单价
数据权限
功能权限
| 角色 | 查看 | 归集 | 分摊分析 | 导出 |
|---|---|---|---|---|
| 车间主任 | ✅ | ✅ | ✅ | ✅ |
| 财务人员 | ✅ | ❌ | ✅ | ✅ |
| 系统管理员 | ✅ | ✅ | ✅ | ✅ |
| 普通用户 | ✅ | ❌ | ❌ | ❌ |
数据权限规则
- 车间主任可查看本车间费用并执行归集操作
- 财务人员可查看全公司费用数据和分摊分析结果
- 系统管理员拥有全部权限
- 所有归集和分摊操作需记录操作日志
更新日志
2026/8/19 10:57
查看所有更新日志
74d2f-chore(dev): 清理不再使用的模块文档并统一字段表格式于b745d-规范开发文档 修改基础资料部分的开发文档于800c8-重新整理目录结构 修改主题为plume 适配主题plume 增加部署功能于4c42c-first Commit于