feat(aps): 新增排产单明细合并功能及优化界面展示
- 在排产单明细表格中添加多选合并功能 - 实现排产单明细合并对话框及合并逻辑 - 优化排产单明细表格列配置和表单布局 - 添加合并校验和接收产需单API接口 - 重构订单绑定解绑逻辑提升用户体验 - 添加ScheduleDetailCoilBind组件引入
This commit is contained in:
@@ -128,13 +128,9 @@ public class SchProdScheduleItem extends BaseEntity {
|
||||
*/
|
||||
private String returnReason;
|
||||
/**
|
||||
* 排产单主表ID
|
||||
* 排产明细关联主表ID(逗号分隔,未合并存单值,合并后存多个)
|
||||
*/
|
||||
private String scheduleIds;
|
||||
/**
|
||||
* 来源销售订单明细ID(溯源原始订单规格)
|
||||
*/
|
||||
private String orderDetailIds;
|
||||
private String scheduleDetailIds;
|
||||
/**
|
||||
* 规格 例:1.0X1250
|
||||
*/
|
||||
|
||||
@@ -154,14 +154,9 @@ public class SchProdScheduleItemBo extends BaseEntity {
|
||||
private String returnReason;
|
||||
|
||||
/**
|
||||
* 排产单主表ID
|
||||
* 排产明细关联主表ID(逗号分隔,未合并存单值,合并后存多个)
|
||||
*/
|
||||
private String scheduleIds;
|
||||
|
||||
/**
|
||||
* 来源销售订单明细ID(溯源原始订单规格)
|
||||
*/
|
||||
private String orderDetailIds;
|
||||
private String scheduleDetailIds;
|
||||
|
||||
/**
|
||||
* 规格 例:1.0X1250
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.klp.flow.domain.bo;
|
||||
|
||||
import lombok.Data;
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 排产单合并校验请求对象
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-29
|
||||
*/
|
||||
@Data
|
||||
public class SchProdScheduleItemMergeValidateBo {
|
||||
|
||||
/**
|
||||
* 待合并记录ID列表
|
||||
*/
|
||||
@NotEmpty(message = "待合并记录ID不能为空")
|
||||
private List<Long> ids;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.klp.flow.domain.bo;
|
||||
|
||||
import lombok.Data;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* 产需单接收请求对象
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-29
|
||||
*/
|
||||
@Data
|
||||
public class SchProdScheduleItemReceiveBo {
|
||||
|
||||
/**
|
||||
* 排产单主表ID(产需单ID)
|
||||
*/
|
||||
@NotNull(message = "排产单主表ID不能为空")
|
||||
private Long scheduleId;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,115 @@
|
||||
package com.klp.flow.domain.vo;
|
||||
|
||||
import lombok.Data;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 排产单合并校验视图对象
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-29
|
||||
*/
|
||||
@Data
|
||||
public class SchProdScheduleItemMergeValidateVo {
|
||||
|
||||
/** 是否所有 header 字段一致 */
|
||||
private Boolean consistent;
|
||||
|
||||
/** 有差异的字段列表 */
|
||||
private List<FieldDiff> diffs;
|
||||
|
||||
/** 被合并记录快照 */
|
||||
private List<ItemInfo> items;
|
||||
|
||||
/** 汇总信息 */
|
||||
private MergedSummary summary;
|
||||
|
||||
/**
|
||||
* 字段差异
|
||||
*/
|
||||
@Data
|
||||
public static class FieldDiff {
|
||||
/** 字段名(Java属性名) */
|
||||
private String fieldName;
|
||||
/** 字段中文标签 */
|
||||
private String fieldLabel;
|
||||
/** scheduleId → 值 */
|
||||
private Map<String, Object> values;
|
||||
}
|
||||
|
||||
/**
|
||||
* 被合并记录快照
|
||||
*/
|
||||
@Data
|
||||
public static class ItemInfo {
|
||||
/** sch_prod_schedule_item 主键 */
|
||||
private Long itemId;
|
||||
/** 第一个源 schedule_id(从 scheduleIds 解析) */
|
||||
private Long sourceScheduleId;
|
||||
/** 排产单号 */
|
||||
private String scheduleNo;
|
||||
/** 订货单位 */
|
||||
private String customerName;
|
||||
/** 品名 */
|
||||
private String productType;
|
||||
/** 规格 */
|
||||
private String spec;
|
||||
/** 材质 */
|
||||
private String material;
|
||||
/** 排产吨数 */
|
||||
private BigDecimal scheduleWeight;
|
||||
/** 来源排产明细ID串 */
|
||||
private String scheduleDetailIds;
|
||||
/** 业务员 */
|
||||
private String businessUser;
|
||||
/** 联系电话 */
|
||||
private String businessPhone;
|
||||
/** 交货期(天) */
|
||||
private Long deliveryCycle;
|
||||
/** 产品用途 */
|
||||
private String usePurpose;
|
||||
/** 厚度公差 */
|
||||
private String thicknessTolerance;
|
||||
/** 宽度公差 */
|
||||
private String widthTolerance;
|
||||
/** 表面质量 */
|
||||
private String surfaceQuality;
|
||||
/** 表面处理 */
|
||||
private String surfaceTreatment;
|
||||
/** 内径尺寸 */
|
||||
private String innerDiameter;
|
||||
/** 外径要求 */
|
||||
private String outerDiameter;
|
||||
/** 包装要求 */
|
||||
private String packReq;
|
||||
/** 切边要求 */
|
||||
private String cutEdgeReq;
|
||||
/** 单件重量 */
|
||||
private String singleCoilWeight;
|
||||
/** 交货重量偏差 */
|
||||
private String weightDeviation;
|
||||
/** 其他技术要求 */
|
||||
private String otherTechReq;
|
||||
/** 付款情况说明 */
|
||||
private String paymentDesc;
|
||||
/** 关联销售合同号 */
|
||||
private String relContractNo;
|
||||
/** 排产总计划吨数 */
|
||||
private BigDecimal totalPlanWeight;
|
||||
/** 订单日期 */
|
||||
private java.util.Date orderDate;
|
||||
}
|
||||
|
||||
/**
|
||||
* 合并汇总
|
||||
*/
|
||||
@Data
|
||||
public static class MergedSummary {
|
||||
/** 明细条数 */
|
||||
private int itemCount;
|
||||
/** 合计排产吨数 */
|
||||
private BigDecimal totalScheduleWeight;
|
||||
}
|
||||
}
|
||||
@@ -8,6 +8,7 @@ import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.klp.common.annotation.ExcelDictFormat;
|
||||
import com.klp.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
|
||||
/**
|
||||
@@ -40,6 +41,8 @@ public class SchProdScheduleItemVo {
|
||||
*/
|
||||
@ExcelProperty(value = "生产日期", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "和=合同号组成业务关联键")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
private Date prodDate;
|
||||
|
||||
/**
|
||||
@@ -181,17 +184,10 @@ public class SchProdScheduleItemVo {
|
||||
private String returnReason;
|
||||
|
||||
/**
|
||||
* 排产单主表ID
|
||||
* 排产明细关联主表ID(逗号分隔)
|
||||
*/
|
||||
@ExcelProperty(value = "排产单主表ID")
|
||||
private String scheduleIds;
|
||||
|
||||
/**
|
||||
* 来源销售订单明细ID(溯源原始订单规格)
|
||||
*/
|
||||
@ExcelProperty(value = "来源销售订单明细ID", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "溯=源原始订单规格")
|
||||
private String orderDetailIds;
|
||||
@ExcelProperty(value = "排产明细关联主表ID")
|
||||
private String scheduleDetailIds;
|
||||
|
||||
/**
|
||||
* 规格 例:1.0X1250
|
||||
|
||||
Reference in New Issue
Block a user