gaoluyang
2 天以前 8c65f898ed6e5b0c7a94c792c4562f6ec831dccd
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/feedback/vo/MesProFeedbackRespVO.java
@@ -10,11 +10,15 @@
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
@Schema(description = "管理后台 - MES 生产报工 Response VO")
@Data
@ExcelIgnoreUnannotated
public class MesProFeedbackRespVO {
    @Schema(description = "首次提交时的关联设备编号快照,逗号分隔;旧历史记录可能为空")
    private String machineryIds;
    @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    @ExcelProperty("编号")
@@ -74,6 +78,10 @@
    @Schema(description = "工单编码", example = "MO202503120008")
    @ExcelProperty("工单编码")
    private String workOrderCode;
    @Schema(description = "销售明细盘号")
    @ExcelProperty("盘号")
    private String reelNo;
    @Schema(description = "工单名称", example = "博世螺丝刀")
    @ExcelProperty("工单名称")
@@ -142,6 +150,84 @@
    @Schema(description = "其他废品数量", example = "0")
    private BigDecimal otherScrapQuantity;
    @Schema(description = "计费类型:1-计时 2-计件", example = "2")
    @ExcelProperty("计费类型")
    private Integer billingType;
    @Schema(description = "工资定额:计时为元/小时,计件为元/件", example = "12.50")
    @ExcelProperty("工资定额")
    private BigDecimal wageRate;
    @Schema(description = "主计价设备编号", example = "8")
    private Long machineryId;
    @Schema(description = "主计价设备名称", example = "挤塑机-01")
    private String machineryName;
    @Schema(description = "命中的工序工资单价规则编号")
    private Long wageRuleId;
    @Schema(description = "本次报工工时(小时)", example = "8.00")
    @ExcelProperty("报工工时")
    private BigDecimal workHours;
    @Schema(description = "本次报工工资(含辅助工资与质量调整)", example = "100.00")
    @ExcelProperty("报工工资")
    private BigDecimal wageAmount;
    @Schema(description = "辅助计薪工时(小时)", example = "0.50")
    private BigDecimal auxPaidHours;
    @Schema(description = "本次辅助工资", example = "15.00")
    @ExcelProperty("辅助工资")
    private BigDecimal auxWageAmount;
    @Schema(description = "质量合格率(%)", example = "97.50")
    private BigDecimal qualityPassRate;
    @Schema(description = "质量系数", example = "0.9200")
    private BigDecimal qualityCoefficient;
    @Schema(description = "质量扣款", example = "0.00")
    private BigDecimal qualityDeduction;
    @Schema(description = "工资计算明细快照(JSON)")
    private String wageBreakdown;
    @Schema(description = "本次生产长度(米),仅用于计算标准工时", example = "1000.00")
    @ExcelProperty("生产长度(米)")
    private BigDecimal productionLength;
    @Schema(description = "标准工时(小时),只用于考核对比", example = "1.25")
    @ExcelProperty("标准工时")
    private BigDecimal standardWorkHours;
    @Schema(description = "标准工时-主工时(小时)", example = "1.00")
    private BigDecimal standardPrimaryHours;
    @Schema(description = "标准工时-辅助工时(小时)", example = "0.25")
    private BigDecimal standardAuxHours;
    @Schema(description = "标准工时计算依据", example = "线速度 45.60 米/分;生产长度 1000.00 米,主工时 0.37h;辅助工时 0.25h")
    private String stdCalcNote;
    @Schema(description = "工时差异(小时)= 实际工时 - 标准工时", example = "0.35")
    @ExcelProperty("工时差异")
    private BigDecimal workHoursDiff;
    @Schema(description = "工时差异率(%)= (实际 - 标准) ÷ 标准 × 100", example = "28.00")
    @ExcelProperty("工时差异率(%)")
    private BigDecimal workHoursDiffRate;
    @Schema(description = "是否超出工时考核阈值", example = "true")
    private Boolean standardWarnFlag;
    @Schema(description = "工时考核提示", example = "本次报工工时 1.60h 高于标准工时 1.25h 达 28.00%,超过 20% 阈值,请核对工时或辅助项次数")
    private String standardWarnMessage;
    @Schema(description = "辅助工时录入明细")
    private List<AuxResp> auxList;
    @Schema(description = "报工用户编号", example = "1")
    private Long feedbackUserId;
@@ -177,4 +263,64 @@
    @ExcelProperty("BPM 流程定义 Key")
    private String processDefinitionKey;
    @Schema(description = "本次报工对应的任务参数值(按任务参数记录快照展示)")
    private List<ParamValueResp> paramValues;
    @Data
    @Schema(description = "报工辅助工时明细")
    public static class AuxResp {
        @Schema(description = "辅助工时项目编号", example = "1024")
        private Long auxItemId;
        @Schema(description = "辅助项目名称", example = "上下放线盘")
        private String itemName;
        @Schema(description = "计量方式:1-按次 2-按个 3-按盘 4-按米折算", example = "2")
        private Integer measureType;
        @Schema(description = "次数/个数/盘数/米数", example = "2.00")
        private BigDecimal quantity;
        @Schema(description = "换色起始材料", example = "PVC")
        private String materialFrom;
        @Schema(description = "换色目标材料", example = "LSZH")
        private String materialTo;
        @Schema(description = "折算分钟数", example = "10.00")
        private BigDecimal minutes;
        @Schema(description = "备注")
        private String remark;
    }
    @Data
    @Schema(description = "报工参数值")
    public static class ParamValueResp {
        @Schema(description = "任务参数记录明细编号", example = "1")
        private Long detailId;
        @Schema(description = "参数编码", example = "PP2024001")
        private String paramCode;
        @Schema(description = "参数名称", example = "温度")
        private String paramName;
        @Schema(description = "参数类型", example = "2")
        private Integer paramType;
        @Schema(description = "计量单位名称", example = "℃")
        private String unitMeasureName;
        @Schema(description = "参数值", example = "200")
        private String paramValue;
        @Schema(description = "是否必填", example = "true")
        private Boolean required;
    }
}