l3能源成本分摊(部分完成留存)

This commit is contained in:
2025-12-07 17:23:47 +08:00
parent b6328a94da
commit 59951b77c3
100 changed files with 14350 additions and 847 deletions

View File

@@ -0,0 +1,22 @@
package com.klp.ems.domain;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDate;
/**
* 成本日表仅更新能源成本字段所需的参数。
*/
@Data
public class CostCoilDailyEnergy {
private Long coilId;
private LocalDate calcDate;
private BigDecimal energyCostAmount;
/** JSON 字符串(数组) */
private String energyCostBreakdown;
}

View File

@@ -47,11 +47,23 @@ public class EmsEnergyRate extends BaseEntity {
* 失效日期NULL表示长期有效
*/
private Date expiryDate;
/**
* 是否使用峰谷时段0=否1=是
*/
private Integer usePeakValley;
/**
* 是否使用梯度收费0=否1=是
*/
private Integer useTieredPricing;
/**
* 删除标志0=存在 2=删除)
*/
@TableLogic
private String delFlag;
/**
* 备注
*/

View File

@@ -0,0 +1,65 @@
package com.klp.ems.domain;
import com.baomidou.mybatisplus.annotation.*;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
/**
* 梯度费率对象 ems_rate_tier
* 用于支持用量梯度收费0-100度1元/度100-200度1.5元/度
*
* @author Joshi
* @date 2025-12-05
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("ems_rate_tier")
public class EmsRateTier extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* 梯度费率ID
*/
@TableId(value = "tier_id")
private Long tierId;
/**
* 关联费率ID
*/
private Long energyRateId;
/**
* 梯度等级1、2、3...
*/
private Integer tierLevel;
/**
* 最小用量(包含)
*/
private BigDecimal minUsage;
/**
* 最大用量不包含NULL表示无上限
*/
private BigDecimal maxUsage;
/**
* 该梯度的费率
*/
private BigDecimal rate;
/**
* 删除标志0=存在 2=删除)
*/
@TableLogic
private String delFlag;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,58 @@
package com.klp.ems.domain;
import com.baomidou.mybatisplus.annotation.*;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
/**
* 梯度与时段关联对象 ems_tier_period_link
* 用于支持梯度+峰谷组合计费,如:
* 第1梯度(0-100度) 的峰时段 1.5元/度
* 第1梯度(0-100度) 的谷时段 0.5元/度
* 第2梯度(100-200度) 的峰时段 1.8元/度
*
* @author Joshi
* @date 2025-12-05
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("ems_tier_period_link")
public class EmsRateTierPeriodLink extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* 关联ID
*/
@TableId(value = "link_id")
private Long linkId;
/**
* 梯度ID
*/
private Long tierId;
/**
* 时间段ID
*/
private Long periodId;
/**
* 该梯度+时段的费率
*/
private BigDecimal rate;
/**
* 删除标志0=存在 2=删除)
*/
@TableLogic
private String delFlag;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,55 @@
package com.klp.ems.domain;
import com.baomidou.mybatisplus.annotation.*;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
/**
* 费率与时间段关联对象 ems_rate_time_period_link
* 用于支持峰谷时段的不同费率峰时段费率1.5元/度谷时段费率0.8元/度
*
* @author Joshi
* @date 2025-12-05
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("ems_rate_time_period_link")
public class EmsRateTimePeriodLink extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* 关联ID
*/
@TableId(value = "link_id")
private Long linkId;
/**
* 费率ID
*/
private Long energyRateId;
/**
* 时间段ID
*/
private Long periodId;
/**
* 该时间段的费率
*/
private BigDecimal rate;
/**
* 删除标志0=存在 2=删除)
*/
@TableLogic
private String delFlag;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,62 @@
package com.klp.ems.domain;
import com.baomidou.mybatisplus.annotation.*;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 时间段(峰谷平)对象 ems_time_period
*
* @author Joshi
* @date 2025-12-05
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("ems_time_period")
public class EmsTimePeriod extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* 时间段ID
*/
@TableId(value = "period_id")
private Long periodId;
/**
* 时间段名称(峰、谷、平)
*/
private String periodName;
/**
* 时间段类型0=峰1=谷2=平
*/
private Integer periodType;
/**
* 开始时间HH:mm格式
*/
private String startTime;
/**
* 结束时间HH:mm格式
*/
private String endTime;
/**
* 是否跨天0=否1=是
*/
private Integer crossDay;
/**
* 删除标志0=存在 2=删除)
*/
@TableLogic
private String delFlag;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,51 @@
package com.klp.ems.domain;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDate;
/**
* 钢卷日能源成本分摊结果
*/
@Data
@TableName("wms_energy_coil_daily")
public class WmsEnergyCoilDaily {
private static final long serialVersionUID = 1L;
@TableId(value = "energy_cost_id")
private Long energyCostId;
private Long taskId;
private LocalDate calcDate;
private Long coilId;
private String enterCoilNo;
private String currentCoilNo;
private Long warehouseId;
private Long actualWarehouseId;
private Long energyTypeId;
private Long meterId;
private BigDecimal consumptionQty;
private BigDecimal costAmount;
private BigDecimal allocationBasisWeight;
private BigDecimal allocationBasisDays;
private BigDecimal allocationFactor;
private String remark;
}

View File

@@ -30,6 +30,11 @@ public class EmsEnergyConsumptionBo extends BaseEntity {
*/
private Long meterId;
/**
* 能源类型ID用于查询统计
*/
private Long energyTypeId;
/**
* 起始读数
*/

View File

@@ -50,6 +50,16 @@ public class EmsEnergyRateBo extends BaseEntity {
*/
private Date expiryDate;
/**
* 是否使用峰谷时段0=否1=是
*/
private Integer usePeakValley;
/**
* 是否使用梯度收费0=否1=是
*/
private Integer useTieredPricing;
/**
* 备注
*/

View File

@@ -0,0 +1,53 @@
package com.klp.ems.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
/**
* 梯度费率业务对象 ems_rate_tier
*
* @author Joshi
* @date 2025-12-05
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class EmsRateTierBo extends BaseEntity {
/**
* 梯度费率ID
*/
private Long tierId;
/**
* 关联费率ID
*/
private Long energyRateId;
/**
* 梯度等级1、2、3...
*/
private Integer tierLevel;
/**
* 最小用量(包含)
*/
private BigDecimal minUsage;
/**
* 最大用量不包含NULL表示无上限
*/
private BigDecimal maxUsage;
/**
* 该梯度的费率
*/
private BigDecimal rate;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,40 @@
package com.klp.ems.domain.bo;
import lombok.Data;
import java.math.BigDecimal;
/**
* 梯度与时段关联业务对象
*
* @author Joshi
* @date 2025-12-05
*/
@Data
public class EmsRateTierPeriodLinkBo {
/**
* 关联ID
*/
private Long linkId;
/**
* 梯度ID
*/
private Long tierId;
/**
* 时间段ID
*/
private Long periodId;
/**
* 该梯度+时段的费率
*/
private BigDecimal rate;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,68 @@
package com.klp.ems.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
/**
* 费率与时间段关联业务对象 ems_rate_time_period_link
*
* @author Joshi
* @date 2025-12-05
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class EmsRateTimePeriodLinkBo extends BaseEntity {
/**
* 关联ID
*/
private Long linkId;
/**
* 费率ID
*/
private Long energyRateId;
/**
* 时间段ID
*/
private Long periodId;
/**
* 时间段类型0=峰1=谷2=平
*/
private Integer periodType;
/**
* 时间段名称(峰、谷、平)
*/
private String periodName;
/**
* 开始时间HH:mm格式
*/
private String startTime;
/**
* 结束时间HH:mm格式
*/
private String endTime;
/**
* 是否跨天0=否1=是
*/
private Integer crossDay;
/**
* 该时间段的费率
*/
private BigDecimal rate;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,51 @@
package com.klp.ems.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 时间段业务对象 ems_time_period
*
* @author Joshi
* @date 2025-12-05
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class EmsTimePeriodBo extends BaseEntity {
/**
* 时间段ID
*/
private Long periodId;
/**
* 时间段名称(峰、谷、平)
*/
private String periodName;
/**
* 时间段类型0=峰1=谷2=平
*/
private Integer periodType;
/**
* 开始时间HH:mm格式
*/
private String startTime;
/**
* 结束时间HH:mm格式
*/
private String endTime;
/**
* 是否跨天0=否1=是
*/
private Integer crossDay;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,54 @@
package com.klp.ems.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.time.LocalDate;
/**
* 能源成本报表查询参数
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class EnergyCostReportBo extends BaseEntity {
/** 开始日期 */
private LocalDate startDate;
/** 结束日期 */
private LocalDate endDate;
/** 分摊任务 */
private Long taskId;
/** 能源类型 */
private Long energyTypeId;
/** 计量仪表 */
private Long meterId;
/** 逻辑库区 */
private Long warehouseId;
/** 实际库区 */
private Long actualWarehouseId;
/** 入场钢卷号 */
private String enterCoilNo;
/** 当前钢卷号 */
private String currentCoilNo;
/** 汇总维度energyType/warehouse/meter/task */
private String groupBy;
/** 是否返回明细 */
private Boolean includeDetail;
/** 页码 */
private Integer pageNum;
/** 每页大小 */
private Integer pageSize;
}

View File

@@ -0,0 +1,51 @@
package com.klp.ems.domain.bo;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDate;
/**
* 钢卷日能源成本分摊结果 BO
*/
@Data
public class WmsEnergyCoilDailyBo {
private Long energyCostId;
private Long taskId;
private LocalDate calcDate;
private Long coilId;
private String enterCoilNo;
private String currentCoilNo;
private Long warehouseId;
private Long actualWarehouseId;
private Long energyTypeId;
private Long meterId;
private BigDecimal consumptionQty;
private BigDecimal costAmount;
private BigDecimal allocationBasisWeight;
private BigDecimal allocationBasisDays;
private BigDecimal allocationFactor;
private String remark;
/** 起始日期(查询用) */
private LocalDate startDate;
/** 结束日期(查询用) */
private LocalDate endDate;
}

View File

@@ -0,0 +1,37 @@
package com.klp.ems.domain.dto;
import lombok.Data;
import java.math.BigDecimal;
/**
* 轻量化钢卷信息(仅供能源分摊引擎使用)
*/
@Data
public class AllocationCoilDto {
private Long coilId;
private String enterCoilNo;
private String currentCoilNo;
private Long warehouseId;
private Long actualWarehouseId;
/** 净重kg */
private BigDecimal netWeight;
/** 毛重kg */
private BigDecimal grossWeight;
/** 待操作累计分钟数(基于 pending action 计算) */
private BigDecimal pendingMinutes;
/** 物品类型 */
private String itemType;
/** 材料类型 */
private String materialType;
}

View File

@@ -0,0 +1,48 @@
package com.klp.ems.domain.dto;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import java.util.Date;
/**
* 设备导入模板 DTO
*
* @author Joshi
* @date 2025-12-05
*/
@Data
@ExcelIgnoreUnannotated
public class MeterTemplateDto {
/**
* 设备编号
*/
@ExcelProperty(value = "设备编号")
private String meterCode;
/**
* 能源类型(水、电、天然气)
*/
@ExcelProperty(value = "能源类型")
private String energyType;
/**
* 设备型号
*/
@ExcelProperty(value = "设备型号")
private String model;
/**
* 制造商
*/
@ExcelProperty(value = "制造商")
private String manufacturer;
/**
* 安装日期
*/
@ExcelProperty(value = "安装日期")
private Date installDate;
}

View File

@@ -71,6 +71,21 @@ public class EmsEnergyConsumptionVo {
@ExcelDictFormat(readConverterExp = "不=设外键")
private Long recordedBy;
/**
* 记录人名称
*/
private String recordedByName;
/**
* 设备编号
*/
private String meterCode;
/**
* 能源类型名称
*/
private String energyTypeName;
/**
* 备注
*/

View File

@@ -2,6 +2,7 @@ package com.klp.ems.domain.vo;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
@@ -58,11 +59,27 @@ public class EmsEnergyRateVo {
@ExcelProperty(value = "失效日期NULL表示长期有效")
private Date expiryDate;
/**
* 是否使用峰谷时段0=否1=是
*/
@ExcelProperty(value = "是否使用峰谷时段")
private Integer usePeakValley;
/**
* 是否使用梯度收费0=否1=是
*/
@ExcelProperty(value = "是否使用梯度收费")
private Integer useTieredPricing;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
/**
* 梯度费率列表(非数据库字段,用于前端展示)
*/
private List<EmsRateTierVo> tiers;
}

View File

@@ -5,6 +5,7 @@ import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.klp.common.annotation.ExcelDictFormat;
import com.klp.common.convert.ExcelDictConvert;
import lombok.Data;
@@ -43,7 +44,7 @@ public class EmsMeterVo {
/**
* 安装位置
*/
@ExcelProperty(value = "安装位置")
@ExcelIgnore
private Long locationId;
/**
@@ -73,14 +74,13 @@ public class EmsMeterVo {
/**
* 上次校准日期
*/
@ExcelProperty(value = "上次校准日期")
@ExcelIgnore
private Date lastCalibrationDate;
/**
* 阈值(按设备设置)
*/
@ExcelProperty(value = "阈值", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "按=设备设置")
@ExcelIgnore
private BigDecimal thresholdValue;
/**
@@ -89,5 +89,16 @@ public class EmsMeterVo {
@ExcelProperty(value = "备注")
private String remark;
/**
* 库区ID
*/
@ExcelIgnore
private Long warehouseId;
/**
* 库区名称
*/
@ExcelIgnore
private String warehouseName;
}

View File

@@ -0,0 +1,96 @@
package com.klp.ems.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* 梯度与时段关联视图对象
*
* @author Joshi
* @date 2025-12-05
*/
@Data
public class EmsRateTierPeriodLinkVo {
/**
* 关联ID
*/
@ExcelProperty(value = "关联ID", index = 0)
private Long linkId;
/**
* 梯度ID
*/
@ExcelIgnore
private Long tierId;
/**
* 梯度等级
*/
@ExcelProperty(value = "梯度等级", index = 1)
private Integer tierLevel;
/**
* 最小用量
*/
@ExcelProperty(value = "最小用量", index = 2)
private BigDecimal minUsage;
/**
* 最大用量
*/
@ExcelProperty(value = "最大用量", index = 3)
private BigDecimal maxUsage;
/**
* 时间段ID
*/
@ExcelIgnore
private Long periodId;
/**
* 时间段名称
*/
@ExcelProperty(value = "时段名称", index = 4)
private String periodName;
/**
* 时间段类型0=峰1=谷2=平
*/
@ExcelIgnore
private Integer periodType;
/**
* 开始时间HH:mm格式
*/
@ExcelProperty(value = "开始时间", index = 5)
private String startTime;
/**
* 结束时间HH:mm格式
*/
@ExcelProperty(value = "结束时间", index = 6)
private String endTime;
/**
* 该梯度+时段的费率
*/
@ExcelProperty(value = "费率", index = 7)
private BigDecimal rate;
/**
* 创建时间
*/
@ExcelProperty(value = "创建时间", index = 8)
private Date createTime;
/**
* 备注
*/
@ExcelProperty(value = "备注", index = 9)
private String remark;
}

View File

@@ -0,0 +1,69 @@
package com.klp.ems.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Map;
/**
* 梯度费率视图对象 ems_rate_tier
*
* @author Joshi
* @date 2025-12-05
*/
@Data
@ExcelIgnoreUnannotated
public class EmsRateTierVo {
private static final long serialVersionUID = 1L;
/**
* 梯度费率ID
*/
@ExcelProperty(value = "梯度费率ID")
private Long tierId;
/**
* 关联费率ID
*/
@ExcelProperty(value = "费率ID")
private Long energyRateId;
/**
* 梯度等级1、2、3...
*/
@ExcelProperty(value = "梯度等级")
private Integer tierLevel;
/**
* 最小用量(包含)
*/
@ExcelProperty(value = "最小用量")
private BigDecimal minUsage;
/**
* 最大用量不包含NULL表示无上限
*/
@ExcelProperty(value = "最大用量")
private BigDecimal maxUsage;
/**
* 该梯度的费率
*/
@ExcelProperty(value = "梯度费率")
private BigDecimal rate;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
/**
* 梯度-时段费率关联(非数据库字段,用于梯度+峰谷组合模式)
* key: periodId, value: rate
*/
private Map<Long, BigDecimal> tierPeriodRates;
}

View File

@@ -0,0 +1,75 @@
package com.klp.ems.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* 费率与时间段关联视图对象 ems_rate_time_period_link
*
* @author Joshi
* @date 2025-12-05
*/
@Data
@ExcelIgnoreUnannotated
public class EmsRateTimePeriodLinkVo {
private static final long serialVersionUID = 1L;
/**
* 关联ID
*/
@ExcelProperty(value = "关联ID")
private Long linkId;
/**
* 费率ID
*/
@ExcelProperty(value = "费率ID")
private Long energyRateId;
/**
* 时间段ID
*/
@ExcelProperty(value = "时间段ID")
private Long periodId;
/**
* 时间段名称(峰、谷、平)
*/
@ExcelIgnore
private String periodName;
/**
* 时间段类型0=峰1=谷2=平
*/
@ExcelIgnore
private Integer periodType;
/**
* 开始时间HH:mm格式
*/
@ExcelIgnore
private String startTime;
/**
* 结束时间HH:mm格式
*/
@ExcelIgnore
private String endTime;
/**
* 该时间段的费率
*/
@ExcelProperty(value = "时段费率")
private BigDecimal rate;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}

View File

@@ -0,0 +1,60 @@
package com.klp.ems.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
/**
* 时间段视图对象 ems_time_period
*
* @author Joshi
* @date 2025-12-05
*/
@Data
@ExcelIgnoreUnannotated
public class EmsTimePeriodVo {
private static final long serialVersionUID = 1L;
/**
* 时间段ID
*/
@ExcelProperty(value = "时间段ID")
private Long periodId;
/**
* 时间段名称(峰、谷、平)
*/
@ExcelProperty(value = "时间段名称")
private String periodName;
/**
* 时间段类型0=峰1=谷2=平
*/
@ExcelProperty(value = "时间段类型")
private Integer periodType;
/**
* 开始时间HH:mm格式
*/
@ExcelProperty(value = "开始时间")
private String startTime;
/**
* 结束时间HH:mm格式
*/
@ExcelProperty(value = "结束时间")
private String endTime;
/**
* 是否跨天0=否1=是
*/
@ExcelProperty(value = "是否跨天")
private Integer crossDay;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}

View File

@@ -0,0 +1,42 @@
package com.klp.ems.domain.vo;
import lombok.Data;
import java.math.BigDecimal;
/**
* 能源成本汇总视图
*/
@Data
public class EnergyCostSummaryVo {
/** 分组键ID 或名称) */
private String groupKey;
/** 展示名称 */
private String groupName;
/** 能源类型 ID可选 */
private Long energyTypeId;
/** 仓库 ID可选 */
private Long warehouseId;
/** 实际仓库 ID可选 */
private Long actualWarehouseId;
/** 计量表 ID可选 */
private Long meterId;
/** 任务 ID可选 */
private Long taskId;
/** 分摊能耗合计 */
private BigDecimal totalConsumption;
/** 分摊费用合计 */
private BigDecimal totalCost;
/** 钢卷数量 */
private Long coilCount;
}

View File

@@ -0,0 +1,39 @@
package com.klp.ems.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import lombok.Data;
import java.math.BigDecimal;
/**
* 钢卷能源成本统计 VO
*/
@Data
@ExcelIgnoreUnannotated
public class WmsEnergyCoilDailyStatisticsVo {
/**
* 钢卷总数
*/
private Long totalCoils;
/**
* 总消耗量
*/
private BigDecimal totalConsumption;
/**
* 总成本
*/
private BigDecimal totalCost;
/**
* 平均单位成本(¥/小时)
*/
private BigDecimal avgUnitCost;
/**
* 总生产时长(分钟)
*/
private Long totalProductionDuration;
}

View File

@@ -0,0 +1,84 @@
package com.klp.ems.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
* 钢卷日能源成本分摊结果 VO
*/
@Data
@ExcelIgnoreUnannotated
public class WmsEnergyCoilDailyVo {
@ExcelProperty("记录ID")
private Long energyCostId;
@ExcelProperty("任务ID")
private Long taskId;
@ExcelProperty("日期")
private LocalDate calcDate;
@ExcelProperty("钢卷ID")
private Long coilId;
@ExcelProperty("入场卷号")
private String enterCoilNo;
@ExcelProperty("当前卷号")
private String currentCoilNo;
@ExcelProperty("逻辑库区")
private Long warehouseId;
@ExcelProperty("实际库区")
private Long actualWarehouseId;
@ExcelProperty("能源类型")
private Long energyTypeId;
@ExcelProperty("仪表")
private Long meterId;
@ExcelProperty("分摊能耗")
private BigDecimal consumptionQty;
@ExcelProperty("分摊费用")
private BigDecimal costAmount;
@ExcelProperty("基数-重量")
private BigDecimal allocationBasisWeight;
@ExcelProperty("基数-生产时长")
private BigDecimal allocationBasisDays;
@ExcelProperty("分摊系数")
private BigDecimal allocationFactor;
@ExcelProperty("备注")
private String remark;
// 待操作相关字段
@ExcelProperty("开始时间")
private LocalDateTime scanTime;
@ExcelProperty("结束时间")
private LocalDateTime completeTime;
@ExcelProperty("生产时长(分钟)")
private Long productionDuration;
@ExcelProperty("能源费率")
private BigDecimal energyRate;
@ExcelProperty("区域名称")
private String warehouseName;
@ExcelProperty("能源类型名称")
private String energyTypeName;
}