加入辅料备件
This commit is contained in:
@@ -104,6 +104,8 @@ public class EnergyCostReportController extends BaseController {
|
|||||||
vo.setCurrentCoilNo(item.getCurrentCoilNo());
|
vo.setCurrentCoilNo(item.getCurrentCoilNo());
|
||||||
vo.setEnergyCost(item.getTotalEnergyCost());
|
vo.setEnergyCost(item.getTotalEnergyCost());
|
||||||
vo.setStockCost(item.getStockCost());
|
vo.setStockCost(item.getStockCost());
|
||||||
|
vo.setAuxCost(item.getAuxCost());
|
||||||
|
vo.setSpareCost(item.getSpareCost());
|
||||||
vo.setTotalCost(item.getTotalCost());
|
vo.setTotalCost(item.getTotalCost());
|
||||||
return vo;
|
return vo;
|
||||||
}).collect(Collectors.toList());
|
}).collect(Collectors.toList());
|
||||||
|
|||||||
@@ -25,10 +25,17 @@ public class CoilTotalCostVo implements Serializable {
|
|||||||
private Double totalEnergyCost;
|
private Double totalEnergyCost;
|
||||||
/** 囤积成本(当日/按 stock 计算) */
|
/** 囤积成本(当日/按 stock 计算) */
|
||||||
private Double stockCost;
|
private Double stockCost;
|
||||||
|
|
||||||
|
/** 辅料成本 */
|
||||||
|
private Double auxCost;
|
||||||
|
|
||||||
|
/** 备件成本 */
|
||||||
|
private Double spareCost;
|
||||||
|
|
||||||
/** 净重 */
|
/** 净重 */
|
||||||
private Double totalNetWeight;
|
private Double totalNetWeight;
|
||||||
/** 毛重 */
|
/** 毛重 */
|
||||||
private Double totalGrossWeight;
|
private Double totalGrossWeight;
|
||||||
/** 总成本(能源+囤积) */
|
/** 总成本(能源+囤积+辅料+备件) */
|
||||||
private Double totalCost;
|
private Double totalCost;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,6 +23,12 @@ public class CoilTotalMergedExportVo implements Serializable {
|
|||||||
@ExcelProperty("囤积成本")
|
@ExcelProperty("囤积成本")
|
||||||
private Double stockCost;
|
private Double stockCost;
|
||||||
|
|
||||||
|
@ExcelProperty("辅料成本")
|
||||||
|
private Double auxCost;
|
||||||
|
|
||||||
|
@ExcelProperty("备件成本")
|
||||||
|
private Double spareCost;
|
||||||
|
|
||||||
@ExcelProperty("总成本")
|
@ExcelProperty("总成本")
|
||||||
private Double totalCost;
|
private Double totalCost;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,9 +40,11 @@
|
|||||||
e.total_consumption AS totalConsumption,
|
e.total_consumption AS totalConsumption,
|
||||||
e.energy_cost AS totalEnergyCost,
|
e.energy_cost AS totalEnergyCost,
|
||||||
IFNULL(s.stock_cost, 0) AS stockCost,
|
IFNULL(s.stock_cost, 0) AS stockCost,
|
||||||
|
IFNULL(x.aux_cost, 0) AS auxCost,
|
||||||
|
IFNULL(x.spare_cost, 0) AS spareCost,
|
||||||
IFNULL(s.total_net_weight, 0) AS totalNetWeight,
|
IFNULL(s.total_net_weight, 0) AS totalNetWeight,
|
||||||
IFNULL(s.total_gross_weight, 0) AS totalGrossWeight,
|
IFNULL(s.total_gross_weight, 0) AS totalGrossWeight,
|
||||||
(IFNULL(e.energy_cost, 0) + IFNULL(s.stock_cost, 0)) AS totalCost
|
(IFNULL(e.energy_cost, 0) + IFNULL(s.stock_cost, 0) + IFNULL(x.aux_cost, 0) + IFNULL(x.spare_cost, 0)) AS totalCost
|
||||||
FROM (
|
FROM (
|
||||||
SELECT enter_coil_no FROM (
|
SELECT enter_coil_no FROM (
|
||||||
SELECT DISTINCT c.enter_coil_no
|
SELECT DISTINCT c.enter_coil_no
|
||||||
@@ -222,6 +224,82 @@
|
|||||||
</if>
|
</if>
|
||||||
GROUP BY m.enter_coil_no
|
GROUP BY m.enter_coil_no
|
||||||
) s ON aid.enter_coil_no = s.enter_coil_no
|
) s ON aid.enter_coil_no = s.enter_coil_no
|
||||||
|
LEFT JOIN (
|
||||||
|
SELECT
|
||||||
|
dm.enter_coil_no,
|
||||||
|
SUM(
|
||||||
|
CASE
|
||||||
|
WHEN dm.total_minutes > 0
|
||||||
|
THEN IFNULL(a.aux_amount, 0) * (dm.coil_minutes / dm.total_minutes)
|
||||||
|
ELSE 0
|
||||||
|
END
|
||||||
|
) AS aux_cost,
|
||||||
|
SUM(
|
||||||
|
CASE
|
||||||
|
WHEN dm.total_minutes > 0
|
||||||
|
THEN IFNULL(p.spare_amount, 0) * (dm.coil_minutes / dm.total_minutes)
|
||||||
|
ELSE 0
|
||||||
|
END
|
||||||
|
) AS spare_cost
|
||||||
|
FROM (
|
||||||
|
SELECT
|
||||||
|
DATE(pa.create_time) AS day_key,
|
||||||
|
c.enter_coil_no,
|
||||||
|
SUM(
|
||||||
|
CASE
|
||||||
|
WHEN pa.create_time < COALESCE(pa.complete_time, NOW())
|
||||||
|
THEN TIMESTAMPDIFF(MINUTE, pa.create_time, COALESCE(pa.complete_time, NOW()))
|
||||||
|
ELSE 0
|
||||||
|
END
|
||||||
|
) AS coil_minutes,
|
||||||
|
td.total_minutes
|
||||||
|
FROM wms_coil_pending_action pa
|
||||||
|
LEFT JOIN wms_material_coil c ON pa.coil_id = c.coil_id
|
||||||
|
LEFT JOIN (
|
||||||
|
SELECT
|
||||||
|
DATE(pa_all.create_time) AS day_key,
|
||||||
|
SUM(
|
||||||
|
CASE
|
||||||
|
WHEN pa_all.create_time < COALESCE(pa_all.complete_time, NOW())
|
||||||
|
THEN TIMESTAMPDIFF(MINUTE, pa_all.create_time, COALESCE(pa_all.complete_time, NOW()))
|
||||||
|
ELSE 0
|
||||||
|
END
|
||||||
|
) AS total_minutes
|
||||||
|
FROM wms_coil_pending_action pa_all
|
||||||
|
WHERE pa_all.action_status IN (0,1,2)
|
||||||
|
AND pa_all.create_time >= CONCAT(#{bo.startDate}, ' 00:00:00')
|
||||||
|
AND pa_all.create_time <= CONCAT(#{bo.endDate}, ' 23:59:59')
|
||||||
|
GROUP BY DATE(pa_all.create_time)
|
||||||
|
) td ON td.day_key = DATE(pa.create_time)
|
||||||
|
WHERE pa.action_status IN (0,1,2)
|
||||||
|
AND pa.create_time >= CONCAT(#{bo.startDate}, ' 00:00:00')
|
||||||
|
AND pa.create_time <= CONCAT(#{bo.endDate}, ' 23:59:59')
|
||||||
|
GROUP BY DATE(pa.create_time), c.enter_coil_no, td.total_minutes
|
||||||
|
) dm
|
||||||
|
LEFT JOIN (
|
||||||
|
SELECT
|
||||||
|
DATE(change_time) AS day_key,
|
||||||
|
SUM(IFNULL(amount, 0)) AS aux_amount
|
||||||
|
FROM eqp_auxiliary_material_change
|
||||||
|
WHERE del_flag = '0'
|
||||||
|
AND change_type = '减少'
|
||||||
|
AND change_time >= CONCAT(#{bo.startDate}, ' 00:00:00')
|
||||||
|
AND change_time <= CONCAT(#{bo.endDate}, ' 23:59:59')
|
||||||
|
GROUP BY DATE(change_time)
|
||||||
|
) a ON dm.day_key = a.day_key
|
||||||
|
LEFT JOIN (
|
||||||
|
SELECT
|
||||||
|
DATE(change_time) AS day_key,
|
||||||
|
SUM(IFNULL(amount, 0)) AS spare_amount
|
||||||
|
FROM eqp_spare_parts_change
|
||||||
|
WHERE del_flag = '0'
|
||||||
|
AND change_type = '减少'
|
||||||
|
AND change_time >= CONCAT(#{bo.startDate}, ' 00:00:00')
|
||||||
|
AND change_time <= CONCAT(#{bo.endDate}, ' 23:59:59')
|
||||||
|
GROUP BY DATE(change_time)
|
||||||
|
) p ON dm.day_key = p.day_key
|
||||||
|
GROUP BY dm.enter_coil_no
|
||||||
|
) x ON aid.enter_coil_no = x.enter_coil_no
|
||||||
ORDER BY totalCost DESC
|
ORDER BY totalCost DESC
|
||||||
LIMIT #{offset}, #{pageSize}
|
LIMIT #{offset}, #{pageSize}
|
||||||
</select>
|
</select>
|
||||||
@@ -278,9 +356,11 @@
|
|||||||
e.total_consumption AS totalConsumption,
|
e.total_consumption AS totalConsumption,
|
||||||
e.energy_cost AS totalEnergyCost,
|
e.energy_cost AS totalEnergyCost,
|
||||||
IFNULL(s.stock_cost, 0) AS stockCost,
|
IFNULL(s.stock_cost, 0) AS stockCost,
|
||||||
|
IFNULL(x.aux_cost, 0) AS auxCost,
|
||||||
|
IFNULL(x.spare_cost, 0) AS spareCost,
|
||||||
IFNULL(s.total_net_weight, 0) AS totalNetWeight,
|
IFNULL(s.total_net_weight, 0) AS totalNetWeight,
|
||||||
IFNULL(s.total_gross_weight, 0) AS totalGrossWeight,
|
IFNULL(s.total_gross_weight, 0) AS totalGrossWeight,
|
||||||
(IFNULL(e.energy_cost, 0) + IFNULL(s.stock_cost, 0)) AS totalCost
|
(IFNULL(e.energy_cost, 0) + IFNULL(s.stock_cost, 0) + IFNULL(x.aux_cost, 0) + IFNULL(x.spare_cost, 0)) AS totalCost
|
||||||
FROM (
|
FROM (
|
||||||
SELECT enter_coil_no FROM (
|
SELECT enter_coil_no FROM (
|
||||||
SELECT DISTINCT c.enter_coil_no
|
SELECT DISTINCT c.enter_coil_no
|
||||||
@@ -412,6 +492,82 @@
|
|||||||
AND m.del_flag = 0
|
AND m.del_flag = 0
|
||||||
GROUP BY m.enter_coil_no
|
GROUP BY m.enter_coil_no
|
||||||
) s ON aid.enter_coil_no = s.enter_coil_no
|
) s ON aid.enter_coil_no = s.enter_coil_no
|
||||||
|
LEFT JOIN (
|
||||||
|
SELECT
|
||||||
|
dm.enter_coil_no,
|
||||||
|
SUM(
|
||||||
|
CASE
|
||||||
|
WHEN dm.total_minutes > 0
|
||||||
|
THEN IFNULL(a.aux_amount, 0) * (dm.coil_minutes / dm.total_minutes)
|
||||||
|
ELSE 0
|
||||||
|
END
|
||||||
|
) AS aux_cost,
|
||||||
|
SUM(
|
||||||
|
CASE
|
||||||
|
WHEN dm.total_minutes > 0
|
||||||
|
THEN IFNULL(p.spare_amount, 0) * (dm.coil_minutes / dm.total_minutes)
|
||||||
|
ELSE 0
|
||||||
|
END
|
||||||
|
) AS spare_cost
|
||||||
|
FROM (
|
||||||
|
SELECT
|
||||||
|
DATE(pa.create_time) AS day_key,
|
||||||
|
c.enter_coil_no,
|
||||||
|
SUM(
|
||||||
|
CASE
|
||||||
|
WHEN pa.create_time < COALESCE(pa.complete_time, NOW())
|
||||||
|
THEN TIMESTAMPDIFF(MINUTE, pa.create_time, COALESCE(pa.complete_time, NOW()))
|
||||||
|
ELSE 0
|
||||||
|
END
|
||||||
|
) AS coil_minutes,
|
||||||
|
td.total_minutes
|
||||||
|
FROM wms_coil_pending_action pa
|
||||||
|
LEFT JOIN wms_material_coil c ON pa.coil_id = c.coil_id
|
||||||
|
LEFT JOIN (
|
||||||
|
SELECT
|
||||||
|
DATE(pa_all.create_time) AS day_key,
|
||||||
|
SUM(
|
||||||
|
CASE
|
||||||
|
WHEN pa_all.create_time < COALESCE(pa_all.complete_time, NOW())
|
||||||
|
THEN TIMESTAMPDIFF(MINUTE, pa_all.create_time, COALESCE(pa_all.complete_time, NOW()))
|
||||||
|
ELSE 0
|
||||||
|
END
|
||||||
|
) AS total_minutes
|
||||||
|
FROM wms_coil_pending_action pa_all
|
||||||
|
WHERE pa_all.action_status IN (0,1,2)
|
||||||
|
AND pa_all.create_time >= CONCAT(#{bo.startDate}, ' 00:00:00')
|
||||||
|
AND pa_all.create_time <= CONCAT(#{bo.endDate}, ' 23:59:59')
|
||||||
|
GROUP BY DATE(pa_all.create_time)
|
||||||
|
) td ON td.day_key = DATE(pa.create_time)
|
||||||
|
WHERE pa.action_status IN (0,1,2)
|
||||||
|
AND pa.create_time >= CONCAT(#{bo.startDate}, ' 00:00:00')
|
||||||
|
AND pa.create_time <= CONCAT(#{bo.endDate}, ' 23:59:59')
|
||||||
|
GROUP BY DATE(pa.create_time), c.enter_coil_no, td.total_minutes
|
||||||
|
) dm
|
||||||
|
LEFT JOIN (
|
||||||
|
SELECT
|
||||||
|
DATE(change_time) AS day_key,
|
||||||
|
SUM(IFNULL(amount, 0)) AS aux_amount
|
||||||
|
FROM eqp_auxiliary_material_change
|
||||||
|
WHERE del_flag = '0'
|
||||||
|
AND change_type = '减少'
|
||||||
|
AND change_time >= CONCAT(#{bo.startDate}, ' 00:00:00')
|
||||||
|
AND change_time <= CONCAT(#{bo.endDate}, ' 23:59:59')
|
||||||
|
GROUP BY DATE(change_time)
|
||||||
|
) a ON dm.day_key = a.day_key
|
||||||
|
LEFT JOIN (
|
||||||
|
SELECT
|
||||||
|
DATE(change_time) AS day_key,
|
||||||
|
SUM(IFNULL(amount, 0)) AS spare_amount
|
||||||
|
FROM eqp_spare_parts_change
|
||||||
|
WHERE del_flag = '0'
|
||||||
|
AND change_type = '减少'
|
||||||
|
AND change_time >= CONCAT(#{bo.startDate}, ' 00:00:00')
|
||||||
|
AND change_time <= CONCAT(#{bo.endDate}, ' 23:59:59')
|
||||||
|
GROUP BY DATE(change_time)
|
||||||
|
) p ON dm.day_key = p.day_key
|
||||||
|
GROUP BY dm.enter_coil_no
|
||||||
|
) x ON aid.enter_coil_no = x.enter_coil_no
|
||||||
ORDER BY totalCost DESC
|
ORDER BY totalCost DESC
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|||||||
@@ -39,15 +39,15 @@
|
|||||||
<el-col :xs="24" :md="6">
|
<el-col :xs="24" :md="6">
|
||||||
<div class="summary-card">
|
<div class="summary-card">
|
||||||
<div class="label">辅料成本</div>
|
<div class="label">辅料成本</div>
|
||||||
<div class="value">¥ 0.00</div>
|
<div class="value">¥ {{ formatNumber(materialSummary.auxCost, 2) }}</div>
|
||||||
<div class="desc">暂不计</div>
|
<div class="desc">备件 ¥ {{ formatNumber(materialSummary.spareCost, 2) }}</div>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :xs="24" :md="6">
|
<el-col :xs="24" :md="6">
|
||||||
<div class="summary-card highlight">
|
<div class="summary-card highlight">
|
||||||
<div class="label">总成本</div>
|
<div class="label">总成本</div>
|
||||||
<div class="value">¥ {{ formatNumber(totalCost, 2) }}</div>
|
<div class="value">¥ {{ formatNumber(totalCost, 2) }}</div>
|
||||||
<div class="desc">能源 + 囤积 + 辅料</div>
|
<div class="desc">能源 + 囤积 + 辅料 + 备件</div>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
@@ -65,6 +65,12 @@
|
|||||||
<el-table-column prop="stockCost" label="囤积成本(当日)">
|
<el-table-column prop="stockCost" label="囤积成本(当日)">
|
||||||
<template slot-scope="scope">¥ {{ formatNumber(scope.row.stockCost, 2) }}</template>
|
<template slot-scope="scope">¥ {{ formatNumber(scope.row.stockCost, 2) }}</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<el-table-column prop="auxCost" label="辅料成本">
|
||||||
|
<template slot-scope="scope">¥ {{ formatNumber(scope.row.auxCost, 2) }}</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="spareCost" label="备件成本">
|
||||||
|
<template slot-scope="scope">¥ {{ formatNumber(scope.row.spareCost, 2) }}</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column prop="totalCost" label="总成本">
|
<el-table-column prop="totalCost" label="总成本">
|
||||||
<template slot-scope="scope">¥ {{ formatNumber(scope.row.totalCost, 2) }}</template>
|
<template slot-scope="scope">¥ {{ formatNumber(scope.row.totalCost, 2) }}</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@@ -192,6 +198,10 @@ export default {
|
|||||||
totalNetWeight: 0,
|
totalNetWeight: 0,
|
||||||
totalGrossWeight: 0
|
totalGrossWeight: 0
|
||||||
},
|
},
|
||||||
|
materialSummary: {
|
||||||
|
auxCost: 0,
|
||||||
|
spareCost: 0
|
||||||
|
},
|
||||||
energyLoading: false,
|
energyLoading: false,
|
||||||
stockLoading: false,
|
stockLoading: false,
|
||||||
detailVisible: false,
|
detailVisible: false,
|
||||||
@@ -204,7 +214,9 @@ export default {
|
|||||||
totalCost() {
|
totalCost() {
|
||||||
const energy = Number(this.energySummary.totalEnergyCost) || 0
|
const energy = Number(this.energySummary.totalEnergyCost) || 0
|
||||||
const stock = Number(this.stockSummary.todayCost ?? this.stockSummary.totalCost) || 0
|
const stock = Number(this.stockSummary.todayCost ?? this.stockSummary.totalCost) || 0
|
||||||
return energy + stock
|
const aux = Number(this.materialSummary.auxCost) || 0
|
||||||
|
const spare = Number(this.materialSummary.spareCost) || 0
|
||||||
|
return energy + stock + aux + spare
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
@@ -246,6 +258,12 @@ export default {
|
|||||||
fetchCoilTotalMerged(params).then(res => {
|
fetchCoilTotalMerged(params).then(res => {
|
||||||
this.mergedRows = res.rows || []
|
this.mergedRows = res.rows || []
|
||||||
this.mergedTotal = res.total || 0
|
this.mergedTotal = res.total || 0
|
||||||
|
|
||||||
|
const rows = this.mergedRows || []
|
||||||
|
this.materialSummary = {
|
||||||
|
auxCost: rows.reduce((sum, r) => sum + (Number(r.auxCost) || 0), 0),
|
||||||
|
spareCost: rows.reduce((sum, r) => sum + (Number(r.spareCost) || 0), 0)
|
||||||
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
loadEnergy() {
|
loadEnergy() {
|
||||||
|
|||||||
@@ -11,6 +11,8 @@ CREATE TABLE `eqp_auxiliary_material` (
|
|||||||
`unit` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '计量单位',
|
`unit` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '计量单位',
|
||||||
`equipment_id` bigint NULL DEFAULT NULL COMMENT '关联设备ID(可为空,通用辅料)',
|
`equipment_id` bigint NULL DEFAULT NULL COMMENT '关联设备ID(可为空,通用辅料)',
|
||||||
`quantity` int NULL DEFAULT 0 COMMENT '当前库存数量',
|
`quantity` int NULL DEFAULT 0 COMMENT '当前库存数量',
|
||||||
|
`unit_price` decimal(18, 6) NULL DEFAULT 0 COMMENT '当前移动加权平均单价',
|
||||||
|
`total_amount` decimal(18, 2) NULL DEFAULT 0 COMMENT '当前库存总金额(可冗余,= quantity * unit_price)',
|
||||||
`create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '创建者',
|
`create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '创建者',
|
||||||
`update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '更新者',
|
`update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '更新者',
|
||||||
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
@@ -30,6 +32,9 @@ CREATE TABLE `eqp_auxiliary_material_change` (
|
|||||||
`auxiliary_id` bigint NOT NULL COMMENT '关联辅料ID',
|
`auxiliary_id` bigint NOT NULL COMMENT '关联辅料ID',
|
||||||
`change_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '变动类型(增加/减少)',
|
`change_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '变动类型(增加/减少)',
|
||||||
`change_quantity` int NOT NULL COMMENT '变动数量',
|
`change_quantity` int NOT NULL COMMENT '变动数量',
|
||||||
|
`in_unit_price` decimal(18, 6) NULL DEFAULT NULL COMMENT '入库单价(仅增加时有意义)',
|
||||||
|
`unit_price_snapshot` decimal(18, 6) NULL DEFAULT NULL COMMENT '单价快照(减少时必填,增加时可记录入库后单价)',
|
||||||
|
`amount` decimal(18, 2) NULL DEFAULT NULL COMMENT '本次变动金额(建议减少时=unit_price_snapshot*change_quantity)',
|
||||||
`reason` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '变动原因',
|
`reason` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '变动原因',
|
||||||
`change_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '变动时间',
|
`change_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '变动时间',
|
||||||
`create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '创建者',
|
`create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '创建者',
|
||||||
@@ -53,6 +58,8 @@ CREATE TABLE `eqp_spare_part` (
|
|||||||
`unit` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '计量单位',
|
`unit` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '计量单位',
|
||||||
`equipment_id` bigint DEFAULT NULL COMMENT '关联设备ID(可为空,通用备件)',
|
`equipment_id` bigint DEFAULT NULL COMMENT '关联设备ID(可为空,通用备件)',
|
||||||
`quantity` int DEFAULT '0' COMMENT '当前库存数量',
|
`quantity` int DEFAULT '0' COMMENT '当前库存数量',
|
||||||
|
`unit_price` decimal(18, 6) NULL DEFAULT 0 COMMENT '当前移动加权平均单价',
|
||||||
|
`total_amount` decimal(18, 2) NULL DEFAULT 0 COMMENT '当前库存总金额(可冗余,= quantity * unit_price)',
|
||||||
`create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '创建者',
|
`create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '创建者',
|
||||||
`update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '更新者',
|
`update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '更新者',
|
||||||
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
@@ -70,6 +77,9 @@ CREATE TABLE `eqp_spare_parts_change` (
|
|||||||
`part_id` bigint NOT NULL COMMENT '关联备件ID',
|
`part_id` bigint NOT NULL COMMENT '关联备件ID',
|
||||||
`change_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '变动类型(增加/减少)',
|
`change_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '变动类型(增加/减少)',
|
||||||
`change_quantity` int NOT NULL COMMENT '变动数量',
|
`change_quantity` int NOT NULL COMMENT '变动数量',
|
||||||
|
`in_unit_price` decimal(18, 6) NULL DEFAULT NULL COMMENT '入库单价(仅增加时有意义)',
|
||||||
|
`unit_price_snapshot` decimal(18, 6) NULL DEFAULT NULL COMMENT '单价快照(减少时必填,增加时可记录入库后单价)',
|
||||||
|
`amount` decimal(18, 2) NULL DEFAULT NULL COMMENT '本次变动金额(建议减少时=unit_price_snapshot*change_quantity)',
|
||||||
`reason` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '变动原因',
|
`reason` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '变动原因',
|
||||||
`change_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '变动时间',
|
`change_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '变动时间',
|
||||||
`create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '创建者',
|
`create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '创建者',
|
||||||
@@ -80,4 +90,5 @@ CREATE TABLE `eqp_spare_parts_change` (
|
|||||||
`remark` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci COMMENT '备注',
|
`remark` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci COMMENT '备注',
|
||||||
PRIMARY KEY (`change_id`) USING BTREE,
|
PRIMARY KEY (`change_id`) USING BTREE,
|
||||||
KEY `fk_change_part` (`part_id`) USING BTREE
|
KEY `fk_change_part` (`part_id`) USING BTREE
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=1980201774324969474 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='备品备件变动记录表';
|
) ENGINE=InnoDB AUTO_INCREMENT=1980201774324969474 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='备品备件变动记录表';
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user