完成排产(测试过了)

This commit is contained in:
2026-03-08 16:02:44 +08:00
parent b660ddcc3e
commit 7736ac3311
125 changed files with 10418 additions and 15 deletions

View File

@@ -0,0 +1,46 @@
package com.klp.aps.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;
/**
* 日历班次配置视图对象
*/
@Data
@ExcelIgnoreUnannotated
public class ApsCalendarShiftVo {
@ExcelProperty(value = "主键")
private Long configId;
@ExcelProperty(value = "日期")
private LocalDate calendarDate;
@ExcelProperty(value = "产线ID")
private Long lineId;
@ExcelProperty(value = "产线名称")
private String lineName;
@ExcelProperty(value = "班次ID")
private Long shiftId;
@ExcelProperty(value = "班次名称")
private String shiftName;
@ExcelProperty(value = "计划工时")
private BigDecimal plannedHours;
@ExcelProperty(value = "状态")
private Integer status;
@ExcelProperty(value = "状态名称")
private String statusName;
@ExcelProperty(value = "备注")
private String remark;
}

View File

@@ -0,0 +1,33 @@
package com.klp.aps.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import java.time.LocalDate;
/**
* 工厂日历视图对象
*/
@Data
@ExcelIgnoreUnannotated
public class ApsCalendarVo {
@ExcelProperty(value = "主键")
private Long calendarId;
@ExcelProperty(value = "日期")
private LocalDate calendarDate;
@ExcelProperty(value = "日历类型")
private Integer calendarType;
@ExcelProperty(value = "日历类型名称")
private String calendarTypeName;
@ExcelProperty(value = "工厂编码")
private String factoryCode;
@ExcelProperty(value = "备注")
private String remark;
}

View File

@@ -0,0 +1,16 @@
package com.klp.aps.domain.vo;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
@Data
public class ApsFactoryCalendarDayVo {
private Integer taskCount = 0;
private Integer shiftCount = 0;
private Integer lineCount = 0;
/** 1=工作日,0=休息日,null=未知 */
private Integer dayStatus;
private List<ApsFactoryCalendarTaskLiteVo> tasks = new ArrayList<>();
}

View File

@@ -0,0 +1,15 @@
package com.klp.aps.domain.vo;
import lombok.Data;
@Data
public class ApsFactoryCalendarOverviewVo {
private Integer taskCount;
private Integer activeLineCount;
private Integer totalLineCount;
private Integer shiftCount;
private String totalHours;
private String peakDayText;
private String busiestLineText;
private String busiestLineShiftText;
}

View File

@@ -0,0 +1,16 @@
package com.klp.aps.domain.vo;
import lombok.Data;
import java.util.List;
import java.util.Map;
@Data
public class ApsFactoryCalendarRespVo {
private ApsFactoryCalendarOverviewVo overview;
private List<String> dateList;
private Map<Long, String> lineNameMap;
private Map<Long, String> shiftNameMap;
private Map<String, ApsFactoryCalendarDayVo> lineDayMap;
private Map<String, ApsFactoryCalendarDayVo> lineShiftDayMap;
}

View File

@@ -0,0 +1,9 @@
package com.klp.aps.domain.vo;
import lombok.Data;
@Data
public class ApsFactoryCalendarTaskLiteVo {
private String label;
private String title;
}

View File

@@ -0,0 +1,33 @@
package com.klp.aps.domain.vo;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 甘特图条目返回
*/
@Data
public class ApsGanttItemVo {
private Long operationId;
private Long planId;
private String planCode;
private Long orderId;
private Long orderDetailId;
private Long productId;
private String productName;
private String material;
private String specification;
private Long processId;
private String processName;
private Long lineId;
private String lineName;
private Integer sequenceNo;
private BigDecimal planQty;
private LocalDateTime startTime;
private LocalDateTime endTime;
private Integer status;
private Integer lockedFlag;
}

View File

@@ -0,0 +1,54 @@
package com.klp.aps.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* 产线能力视图对象
*/
@Data
@ExcelIgnoreUnannotated
public class ApsLineCapabilityVo {
@ExcelProperty(value = "主键")
private Long capabilityId;
@ExcelProperty(value = "产线ID")
private Long lineId;
@ExcelProperty(value = "产线名称")
private String lineName;
@ExcelProperty(value = "产品ID")
private Long productId;
@ExcelProperty(value = "产品名称")
private String productName;
@ExcelProperty(value = "工序ID")
private Long processId;
@ExcelProperty(value = "工序名称")
private String processName;
@ExcelProperty(value = "每小时产能")
private BigDecimal capacityPerHour;
@ExcelProperty(value = "换产时间(分钟)")
private Integer setupMinutes;
@ExcelProperty(value = "优先级")
private Integer priority;
@ExcelProperty(value = "是否启用")
private Integer isEnabled;
@ExcelProperty(value = "是否启用名称")
private String isEnabledName;
@ExcelProperty(value = "备注")
private String remark;
}

View File

@@ -0,0 +1,30 @@
package com.klp.aps.domain.vo;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
/**
* 统一排产表返回
*/
@Data
public class ApsScheduleSheetResp {
/** 表头元信息(可扩展:计划号/日期/机组等) */
private Map<String, Object> header;
/** 明细行 */
private List<ApsScheduleSheetRowVo> rows;
/** 合计 */
private Summary summary;
@Data
public static class Summary {
private Integer totalCount;
private BigDecimal totalPlanQty;
private BigDecimal totalRawNetWeight;
}
}

View File

@@ -0,0 +1,53 @@
package com.klp.aps.domain.vo;
import lombok.Data;
import java.math.BigDecimal;
/**
* 统一排产表行(前端统一展示用)
*
* 说明:字段是“统一超集”,不同机组可只展示子集,但表头保持一致。
*/
@Data
public class ApsScheduleSheetRowVo {
/** 排程主键 */
private Long operationId;
/** 产线 */
private Long lineId;
private String lineName;
/** 计划/订单 */
private Long planId;
private String planCode;
private Long orderId;
private String orderCode;
/** 销售信息 */
private String salesman;
private String customerName;
/** 产品/工序 */
private Long productId;
private String productName;
private String material;
private String specification;
private Long processId;
private String processName;
/** 排程数量/时间 */
private BigDecimal planQty;
private String startTime;
private String endTime;
/** 原料钢卷(来自 wms_material_coil 的展示字段MVP按 productId 兜底关联) */
private Long rawMaterialId; // 回填钢卷ID
private String rawCoilNos; // current_coil_no 逗号分隔
private String rawLocation; // 实际库位名称
private BigDecimal rawNetWeight; // 合计净重(吨/或 kg按库表单位展示
private String rawPackaging; // packaging_requirement
private String rawEdgeReq; // trimming_requirement
private String rawCoatingType; // coating_type
}

View File

@@ -0,0 +1,43 @@
package com.klp.aps.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalTime;
/**
* 班次模板视图对象
*/
@Data
@ExcelIgnoreUnannotated
public class ApsShiftTemplateVo {
@ExcelProperty(value = "主键")
private Long shiftId;
@ExcelProperty(value = "班次编码")
private String shiftCode;
@ExcelProperty(value = "班次名称")
private String shiftName;
@ExcelProperty(value = "开始时间")
private LocalTime startTime;
@ExcelProperty(value = "结束时间")
private LocalTime endTime;
@ExcelProperty(value = "跨天标识")
private Integer crossDay;
@ExcelProperty(value = "跨天标识名称")
private String crossDayName;
@ExcelProperty(value = "效率系数")
private BigDecimal efficiencyRate;
@ExcelProperty(value = "备注")
private String remark;
}