Merge remote-tracking branch 'origin/feature/DM/nflg-bom-transition' into feature/DM/nflg-bom-transition
This commit is contained in:
commit
45df3ddcef
|
|
@ -22,305 +22,305 @@ import java.util.Objects;
|
|||
@Data
|
||||
@Accessors(chain = true)
|
||||
@ApiModel(value = "com-nflg-product-bomnew-pojo-new-vo-BomNewEbomParentFormalVO")
|
||||
public class BomNewEbomParentFormalVO extends BaseMaterialVO implements Serializable {
|
||||
|
||||
/**
|
||||
* 主键行ID-雪花
|
||||
*/
|
||||
@ApiModelProperty(value = "主键行ID-雪花")
|
||||
private Long rowId;
|
||||
|
||||
/**
|
||||
* 批号-来自plm-临时
|
||||
*/
|
||||
@ApiModelProperty(value = "批号-来自plm-临时")
|
||||
private String batchNo;
|
||||
|
||||
|
||||
|
||||
@ApiModelProperty("物料BOM版本ID")
|
||||
private Long bomRowId=0L;
|
||||
|
||||
@ApiModelProperty("父级行ID")
|
||||
private Long parentRowId=0L;
|
||||
|
||||
|
||||
@ApiModelProperty("物料bom行ID")
|
||||
private Long childBomRowId;
|
||||
|
||||
|
||||
/**
|
||||
* 排序号
|
||||
*/
|
||||
@ApiModelProperty(value = "排序号")
|
||||
private String orderNumber;
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 单重
|
||||
*/
|
||||
@ApiModelProperty(value = "单重")
|
||||
private BigDecimal unitWeight;
|
||||
|
||||
/**
|
||||
* 总重
|
||||
*/
|
||||
@ApiModelProperty(value = "总重")
|
||||
private BigDecimal totalWeight;
|
||||
|
||||
/**
|
||||
* 版本号
|
||||
*/
|
||||
@ApiModelProperty(value = "版本号")
|
||||
private String currentVersion;
|
||||
|
||||
/**
|
||||
* 数量
|
||||
*/
|
||||
@ApiModelProperty(value = "数量")
|
||||
private BigDecimal num;
|
||||
|
||||
/**
|
||||
* 来源1-原BOM转换 2-EXCE导入 3-MDM创建
|
||||
*/
|
||||
@ApiModelProperty(value = "来源1-原BOM转换 2-EXCE导入 3-MDM创建")
|
||||
private Integer source;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 项目类别输入方式: 0-自动匹配 1-手工录入 3-来自物料主数据 4-来自历史统计
|
||||
*/
|
||||
@ApiModelProperty(value = "项目类别输入方式: 0-自动匹配 1-手工录入 3-来自物料主数据 4-来自历史统计")
|
||||
private Integer projectTypeInputType;
|
||||
|
||||
/**
|
||||
* 是否跟节点 0-否 1-是
|
||||
*/
|
||||
@ApiModelProperty(value = "是否跟节点 0-否 1-是")
|
||||
private Integer rootIs;
|
||||
|
||||
/**
|
||||
* 是否应该有BOM 0-否 1-是
|
||||
*/
|
||||
@ApiModelProperty(value = "是否应该有BOM 0-否 1-是")
|
||||
private Integer shouldBomExist;
|
||||
|
||||
/**
|
||||
* 超级物料 0-否 1-是
|
||||
*/
|
||||
@ApiModelProperty(value = "超级物料 0-否 1-是")
|
||||
private Integer superMaterialStatus;
|
||||
|
||||
/**
|
||||
* 是否有BOM: 0-否 1-是
|
||||
*/
|
||||
@ApiModelProperty(value = "是否有BOM: 0-否 1-是")
|
||||
private Integer bomExist;
|
||||
|
||||
|
||||
public Integer getBomExist(){
|
||||
if(Objects.isNull(bomExist)){
|
||||
bomExist=0;
|
||||
}
|
||||
return bomExist;
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否最新版:0-否 1-是
|
||||
*/
|
||||
@ApiModelProperty(value = "是否最新版:0-否 1-是")
|
||||
private Integer lastVersionIs;
|
||||
|
||||
/**
|
||||
* 1=待处理、2=已处理
|
||||
*/
|
||||
@ApiModelProperty(value = "1=待处理、2=已处理")
|
||||
private Integer editStatus;
|
||||
|
||||
/**
|
||||
* 1=待复核、2=已复核、3=已退回、4=定版(已发布PBOM)
|
||||
*/
|
||||
@ApiModelProperty(value = "1=待复核、2=已复核、3=已退回、4=定版(已发布PBOM)99=借用件 100=引用件")
|
||||
private Integer status;
|
||||
|
||||
/**
|
||||
* 是否用户跟节点 0-否 1-是
|
||||
*/
|
||||
@ApiModelProperty(value = "是否用户跟节点 0-否 1-是")
|
||||
private Integer userRootIs;
|
||||
|
||||
/**
|
||||
* 异常状态:1=正常、2=冻结/完全弃用异常、3=递归异常、4=数据不完整异常、5=超级物料异常、6=重复异常
|
||||
*/
|
||||
@ApiModelProperty(value = "异常状态:1=正常、2=冻结/完全弃用异常、3=递归异常、4=数据不完整异常、5=超级物料异常、6=重复异常 7=物料主数据不存在 8=项目类别为空 9=项目赋值异常(父级物料的项目类型为Q时,子级中不能存在项目类别为Q的物料) 10=项目赋值异常(当父级物料的项目类型为F时,子级中不能存在项目类型为F的物料) 11=未填写变更原因和技术通知单 12=数量需要用户确认 13=项目类型需要用户确认")
|
||||
private Integer exceptionStatus;
|
||||
|
||||
/**
|
||||
* 来源行ID(原始BOM中的行ID)
|
||||
*/
|
||||
@ApiModelProperty(value = "来源行ID(原始BOM中的行ID)")
|
||||
private String sourceRowId;
|
||||
|
||||
/**
|
||||
* 设计人员编码
|
||||
*/
|
||||
@ApiModelProperty(value = "设计人员编码")
|
||||
private String deviseUserCode;
|
||||
|
||||
/**
|
||||
* 设计人员名称
|
||||
*/
|
||||
@ApiModelProperty(value = "设计人员名称")
|
||||
private String deviseName;
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 创建人编码
|
||||
*/
|
||||
@ApiModelProperty(value = "创建人编码")
|
||||
private String createdBy;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
private LocalDateTime createdTime;
|
||||
|
||||
/**
|
||||
* 创建人员所属岗位 0-设计人员 1-工艺人员 2-其他
|
||||
*/
|
||||
@ApiModelProperty(value = "创建人员所属岗位 0-设计人员 1-工艺人员 2-其他")
|
||||
private Integer createdJob;
|
||||
|
||||
/**
|
||||
* 复核时间
|
||||
*/
|
||||
@ApiModelProperty(value = "复核时间")
|
||||
private LocalDateTime auditTime;
|
||||
|
||||
/**
|
||||
* 复核人
|
||||
*/
|
||||
@ApiModelProperty(value = "复核人")
|
||||
private String auditUserName;
|
||||
|
||||
/**
|
||||
* 发布时间
|
||||
*/
|
||||
@ApiModelProperty(value = "发布时间")
|
||||
private LocalDateTime releaseTime;
|
||||
|
||||
/**
|
||||
* 发布人
|
||||
*/
|
||||
@ApiModelProperty(value = "发布人")
|
||||
private String releaseUserName;
|
||||
|
||||
/**
|
||||
* 退回时间
|
||||
*/
|
||||
@ApiModelProperty(value = "退回时间")
|
||||
private LocalDateTime revertTime;
|
||||
|
||||
/**
|
||||
* 退回人
|
||||
*/
|
||||
@ApiModelProperty(value = "退回人")
|
||||
private String revertUserName;
|
||||
|
||||
/**
|
||||
* 版本过期时间=下个版本的创建时间
|
||||
*/
|
||||
@ApiModelProperty(value = "版本过期时间=下个版本的创建时间")
|
||||
private LocalDateTime expireEndTime;
|
||||
|
||||
|
||||
public LocalDateTime getExpireEndTime(){
|
||||
// new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("9999-12-31 23:59:59");
|
||||
|
||||
return LocalDateTime.parse("9999-12-31 23:59:59", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 转换pbom时间
|
||||
*/
|
||||
@ApiModelProperty(value = "转换pbom时间")
|
||||
private LocalDateTime convertToEbomTime;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ApiModelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 设计维护部门名称
|
||||
*/
|
||||
@ApiModelProperty(value = "设计维护部门名称")
|
||||
private String deptName;
|
||||
|
||||
/**
|
||||
* bom树的高度
|
||||
*/
|
||||
@ApiModelProperty(value = "bom树的高度")
|
||||
private Integer levelNum;
|
||||
|
||||
/**
|
||||
* 升版说明
|
||||
*/
|
||||
@ApiModelProperty(value = "升版说明")
|
||||
private String changeDesc;
|
||||
|
||||
/**
|
||||
* 通知单号
|
||||
*/
|
||||
@ApiModelProperty(value = "通知单号")
|
||||
private String noticeNums;
|
||||
|
||||
/**
|
||||
* 修改时间
|
||||
*/
|
||||
@ApiModelProperty(value = "修改时间")
|
||||
private LocalDateTime modifyTime;
|
||||
|
||||
@ApiModelProperty("bom层级数")
|
||||
private BigDecimal levelNumber;
|
||||
|
||||
@ApiModelProperty("层级号如:1-1")
|
||||
private String levelNo;
|
||||
|
||||
@ApiModelProperty("来源行-父项物料编码")
|
||||
private String sourceParentMaterialNo;
|
||||
|
||||
@ApiModelProperty("是否虚拟包 0-否 1-是")
|
||||
private Integer virtualPackageIs;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ApiModelProperty("是否虚拟件")
|
||||
private Integer virtualPartIs;
|
||||
|
||||
@ApiModelProperty("0-非虚拟包 1-发货包 2-制作包 4-直发包 8-发货前装配包")
|
||||
private Integer virtualPartType=0;
|
||||
|
||||
@ApiModelProperty("生成虚拟包的跟节点物料编码")
|
||||
private String virtualPartRootMaterialNo;
|
||||
|
||||
|
||||
|
||||
|
||||
private List<BomNewEbomParentFormalVO> childNodes = Collections.emptyList();
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
public class BomNewEbomParentFormalVO extends BomNewEbomParentVO {
|
||||
//
|
||||
// /**
|
||||
// * 主键行ID-雪花
|
||||
// */
|
||||
// @ApiModelProperty(value = "主键行ID-雪花")
|
||||
// private Long rowId;
|
||||
//
|
||||
// /**
|
||||
// * 批号-来自plm-临时
|
||||
// */
|
||||
// @ApiModelProperty(value = "批号-来自plm-临时")
|
||||
// private String batchNo;
|
||||
//
|
||||
//
|
||||
//
|
||||
// @ApiModelProperty("物料BOM版本ID")
|
||||
// private Long bomRowId=0L;
|
||||
//
|
||||
// @ApiModelProperty("父级行ID")
|
||||
// private Long parentRowId=0L;
|
||||
//
|
||||
//
|
||||
// @ApiModelProperty("物料bom行ID")
|
||||
// private Long childBomRowId;
|
||||
//
|
||||
//
|
||||
// /**
|
||||
// * 排序号
|
||||
// */
|
||||
// @ApiModelProperty(value = "排序号")
|
||||
// private String orderNumber;
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
// /**
|
||||
// * 单重
|
||||
// */
|
||||
// @ApiModelProperty(value = "单重")
|
||||
// private BigDecimal unitWeight;
|
||||
//
|
||||
// /**
|
||||
// * 总重
|
||||
// */
|
||||
// @ApiModelProperty(value = "总重")
|
||||
// private BigDecimal totalWeight;
|
||||
//
|
||||
// /**
|
||||
// * 版本号
|
||||
// */
|
||||
// @ApiModelProperty(value = "版本号")
|
||||
// private String currentVersion;
|
||||
//
|
||||
// /**
|
||||
// * 数量
|
||||
// */
|
||||
// @ApiModelProperty(value = "数量")
|
||||
// private BigDecimal num;
|
||||
//
|
||||
// /**
|
||||
// * 来源1-原BOM转换 2-EXCE导入 3-MDM创建
|
||||
// */
|
||||
// @ApiModelProperty(value = "来源1-原BOM转换 2-EXCE导入 3-MDM创建")
|
||||
// private Integer source;
|
||||
//
|
||||
//
|
||||
//
|
||||
// /**
|
||||
// * 项目类别输入方式: 0-自动匹配 1-手工录入 3-来自物料主数据 4-来自历史统计
|
||||
// */
|
||||
// @ApiModelProperty(value = "项目类别输入方式: 0-自动匹配 1-手工录入 3-来自物料主数据 4-来自历史统计")
|
||||
// private Integer projectTypeInputType;
|
||||
//
|
||||
// /**
|
||||
// * 是否跟节点 0-否 1-是
|
||||
// */
|
||||
// @ApiModelProperty(value = "是否跟节点 0-否 1-是")
|
||||
// private Integer rootIs;
|
||||
//
|
||||
// /**
|
||||
// * 是否应该有BOM 0-否 1-是
|
||||
// */
|
||||
// @ApiModelProperty(value = "是否应该有BOM 0-否 1-是")
|
||||
// private Integer shouldBomExist;
|
||||
//
|
||||
// /**
|
||||
// * 超级物料 0-否 1-是
|
||||
// */
|
||||
// @ApiModelProperty(value = "超级物料 0-否 1-是")
|
||||
// private Integer superMaterialStatus;
|
||||
//
|
||||
// /**
|
||||
// * 是否有BOM: 0-否 1-是
|
||||
// */
|
||||
// @ApiModelProperty(value = "是否有BOM: 0-否 1-是")
|
||||
// private Integer bomExist;
|
||||
//
|
||||
//
|
||||
// public Integer getBomExist(){
|
||||
// if(Objects.isNull(bomExist)){
|
||||
// bomExist=0;
|
||||
// }
|
||||
// return bomExist;
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 是否最新版:0-否 1-是
|
||||
// */
|
||||
// @ApiModelProperty(value = "是否最新版:0-否 1-是")
|
||||
// private Integer lastVersionIs;
|
||||
//
|
||||
// /**
|
||||
// * 1=待处理、2=已处理
|
||||
// */
|
||||
// @ApiModelProperty(value = "1=待处理、2=已处理")
|
||||
// private Integer editStatus;
|
||||
//
|
||||
// /**
|
||||
// * 1=待复核、2=已复核、3=已退回、4=定版(已发布PBOM)
|
||||
// */
|
||||
// @ApiModelProperty(value = "1=待复核、2=已复核、3=已退回、4=定版(已发布PBOM)99=借用件 100=引用件")
|
||||
// private Integer status;
|
||||
//
|
||||
// /**
|
||||
// * 是否用户跟节点 0-否 1-是
|
||||
// */
|
||||
// @ApiModelProperty(value = "是否用户跟节点 0-否 1-是")
|
||||
// private Integer userRootIs;
|
||||
//
|
||||
// /**
|
||||
// * 异常状态:1=正常、2=冻结/完全弃用异常、3=递归异常、4=数据不完整异常、5=超级物料异常、6=重复异常
|
||||
// */
|
||||
// @ApiModelProperty(value = "异常状态:1=正常、2=冻结/完全弃用异常、3=递归异常、4=数据不完整异常、5=超级物料异常、6=重复异常 7=物料主数据不存在 8=项目类别为空 9=项目赋值异常(父级物料的项目类型为Q时,子级中不能存在项目类别为Q的物料) 10=项目赋值异常(当父级物料的项目类型为F时,子级中不能存在项目类型为F的物料) 11=未填写变更原因和技术通知单 12=数量需要用户确认 13=项目类型需要用户确认")
|
||||
// private Integer exceptionStatus;
|
||||
//
|
||||
// /**
|
||||
// * 来源行ID(原始BOM中的行ID)
|
||||
// */
|
||||
// @ApiModelProperty(value = "来源行ID(原始BOM中的行ID)")
|
||||
// private String sourceRowId;
|
||||
//
|
||||
// /**
|
||||
// * 设计人员编码
|
||||
// */
|
||||
// @ApiModelProperty(value = "设计人员编码")
|
||||
// private String deviseUserCode;
|
||||
//
|
||||
// /**
|
||||
// * 设计人员名称
|
||||
// */
|
||||
// @ApiModelProperty(value = "设计人员名称")
|
||||
// private String deviseName;
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
// /**
|
||||
// * 创建人编码
|
||||
// */
|
||||
// @ApiModelProperty(value = "创建人编码")
|
||||
// private String createdBy;
|
||||
//
|
||||
// /**
|
||||
// * 创建时间
|
||||
// */
|
||||
// @ApiModelProperty(value = "创建时间")
|
||||
// private LocalDateTime createdTime;
|
||||
//
|
||||
// /**
|
||||
// * 创建人员所属岗位 0-设计人员 1-工艺人员 2-其他
|
||||
// */
|
||||
// @ApiModelProperty(value = "创建人员所属岗位 0-设计人员 1-工艺人员 2-其他")
|
||||
// private Integer createdJob;
|
||||
//
|
||||
// /**
|
||||
// * 复核时间
|
||||
// */
|
||||
// @ApiModelProperty(value = "复核时间")
|
||||
// private LocalDateTime auditTime;
|
||||
//
|
||||
// /**
|
||||
// * 复核人
|
||||
// */
|
||||
// @ApiModelProperty(value = "复核人")
|
||||
// private String auditUserName;
|
||||
//
|
||||
// /**
|
||||
// * 发布时间
|
||||
// */
|
||||
// @ApiModelProperty(value = "发布时间")
|
||||
// private LocalDateTime releaseTime;
|
||||
//
|
||||
// /**
|
||||
// * 发布人
|
||||
// */
|
||||
// @ApiModelProperty(value = "发布人")
|
||||
// private String releaseUserName;
|
||||
//
|
||||
// /**
|
||||
// * 退回时间
|
||||
// */
|
||||
// @ApiModelProperty(value = "退回时间")
|
||||
// private LocalDateTime revertTime;
|
||||
//
|
||||
// /**
|
||||
// * 退回人
|
||||
// */
|
||||
// @ApiModelProperty(value = "退回人")
|
||||
// private String revertUserName;
|
||||
//
|
||||
// /**
|
||||
// * 版本过期时间=下个版本的创建时间
|
||||
// */
|
||||
// @ApiModelProperty(value = "版本过期时间=下个版本的创建时间")
|
||||
// private LocalDateTime expireEndTime;
|
||||
//
|
||||
//
|
||||
// public LocalDateTime getExpireEndTime(){
|
||||
// // new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("9999-12-31 23:59:59");
|
||||
//
|
||||
// return LocalDateTime.parse("9999-12-31 23:59:59", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
||||
//
|
||||
// }
|
||||
//
|
||||
//
|
||||
// /**
|
||||
// * 转换pbom时间
|
||||
// */
|
||||
// @ApiModelProperty(value = "转换pbom时间")
|
||||
// private LocalDateTime convertToEbomTime;
|
||||
//
|
||||
// /**
|
||||
// * 备注
|
||||
// */
|
||||
// @ApiModelProperty(value = "备注")
|
||||
// private String remark;
|
||||
//
|
||||
// /**
|
||||
// * 设计维护部门名称
|
||||
// */
|
||||
// @ApiModelProperty(value = "设计维护部门名称")
|
||||
// private String deptName;
|
||||
//
|
||||
// /**
|
||||
// * bom树的高度
|
||||
// */
|
||||
// @ApiModelProperty(value = "bom树的高度")
|
||||
// private Integer levelNum;
|
||||
//
|
||||
// /**
|
||||
// * 升版说明
|
||||
// */
|
||||
// @ApiModelProperty(value = "升版说明")
|
||||
// private String changeDesc;
|
||||
//
|
||||
// /**
|
||||
// * 通知单号
|
||||
// */
|
||||
// @ApiModelProperty(value = "通知单号")
|
||||
// private String noticeNums;
|
||||
//
|
||||
// /**
|
||||
// * 修改时间
|
||||
// */
|
||||
// @ApiModelProperty(value = "修改时间")
|
||||
// private LocalDateTime modifyTime;
|
||||
//
|
||||
// @ApiModelProperty("bom层级数")
|
||||
// private BigDecimal levelNumber;
|
||||
//
|
||||
// @ApiModelProperty("层级号如:1-1")
|
||||
// private String levelNo;
|
||||
//
|
||||
// @ApiModelProperty("来源行-父项物料编码")
|
||||
// private String sourceParentMaterialNo;
|
||||
//
|
||||
// @ApiModelProperty("是否虚拟包 0-否 1-是")
|
||||
// private Integer virtualPackageIs;
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
// @ApiModelProperty("是否虚拟件")
|
||||
// private Integer virtualPartIs;
|
||||
//
|
||||
// @ApiModelProperty("0-非虚拟包 1-发货包 2-制作包 4-直发包 8-发货前装配包")
|
||||
// private Integer virtualPartType=0;
|
||||
//
|
||||
// @ApiModelProperty("生成虚拟包的跟节点物料编码")
|
||||
// private String virtualPartRootMaterialNo;
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
// private List<BomNewEbomParentFormalVO> childNodes = Collections.emptyList();
|
||||
//
|
||||
// private static final long serialVersionUID = 1L;
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,11 @@
|
|||
package com.nflg.product.bomnew.pojo.vo;
|
||||
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.text.DecimalFormat;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.Collections;
|
||||
|
|
@ -54,6 +56,18 @@ public class ForwardReportVO extends BaseMaterialVO {
|
|||
@ApiModelProperty(value = "数量")
|
||||
private BigDecimal num;
|
||||
|
||||
public BigDecimal getNum(){
|
||||
|
||||
if(Objects.nonNull(num)) {
|
||||
DecimalFormat df2 = new DecimalFormat("#.####");
|
||||
|
||||
return new BigDecimal(df2.format(num));
|
||||
}
|
||||
return num;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 单重
|
||||
*/
|
||||
|
|
@ -70,7 +84,8 @@ public class ForwardReportVO extends BaseMaterialVO {
|
|||
private String createdBy;
|
||||
@ApiModelProperty(value = "设计人")
|
||||
private String deviseName;
|
||||
|
||||
@ApiModelProperty(value = "设计人员编码")
|
||||
private String deviseUserCode;
|
||||
|
||||
@ApiModelProperty(value = "创建时间-有效开始时间")
|
||||
private LocalDateTime createdTime;
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@ import lombok.extern.slf4j.Slf4j;
|
|||
import nflg.product.common.constant.STATE;
|
||||
import nflg.product.common.vo.ResultVO;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
|
@ -107,6 +108,24 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
|
|||
@Resource
|
||||
private BomNewSapErrorMsgService bomNewSapErrorMsgService;
|
||||
|
||||
|
||||
|
||||
public List<BomNewEbomParentVO> getParentChild( Long rowId) {
|
||||
|
||||
return this.getBaseMapper().getParentChild(rowId);
|
||||
}
|
||||
|
||||
public List<BomNewEbomParentVO> getParentChildBatch( List<Long> rowIds) {
|
||||
|
||||
return this.getBaseMapper().getParentChildBatch(rowIds);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 获取列表
|
||||
*
|
||||
|
|
|
|||
|
|
@ -325,6 +325,7 @@ public class CompareReportService {
|
|||
}
|
||||
ForwardReportVO fromParent = leftBomRowIdMap.get(from.getParentRowId()).get(0);
|
||||
ForwardReportVO toParent = rightBomRowIdMap.get(to.getParentRowId()).get(0);
|
||||
|
||||
if (!compareFunc.apply(fromParent).equals(compareFunc.apply(toParent))) {
|
||||
compareReportVO.setSymbol(ReportConstant.SymbolEnum.NON_EQ.getValue());
|
||||
continue;
|
||||
|
|
|
|||
|
|
@ -1,8 +1,11 @@
|
|||
package com.nflg.product.bomnew.service.domain;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.nflg.product.bomnew.constant.ReportConstant;
|
||||
import com.nflg.product.bomnew.pojo.query.ReverseReportQuery;
|
||||
import com.nflg.product.bomnew.pojo.vo.BomNewEbomParentVO;
|
||||
import com.nflg.product.bomnew.pojo.vo.ForwardReportVO;
|
||||
import com.nflg.product.bomnew.pojo.vo.ReportBomVO;
|
||||
|
||||
|
|
@ -28,7 +31,7 @@ public abstract class BaseForwardReport {
|
|||
protected void sumLevel(List<ForwardReportVO> bomList) {
|
||||
//分层统计,避免使用遍历树统计
|
||||
Map<Integer, List<ForwardReportVO>> listMap = bomList.stream().collect(Collectors.groupingBy(ForwardReportVO::getLevelNum));
|
||||
Map<Long, List<ForwardReportVO>> bomParentMap = bomList.stream().collect(Collectors.groupingBy(ForwardReportVO::getParentRowId));
|
||||
Map<Long, List<ForwardReportVO>> bomParentMap = bomList.stream().filter(u->Objects.nonNull(u.getParentRowId())&&u.getParentRowId()>0).collect(Collectors.groupingBy(ForwardReportVO::getParentRowId));
|
||||
listMap.forEach((key, value) -> {
|
||||
value.forEach(parent -> {
|
||||
List<ForwardReportVO> dataList = bomParentMap.get(parent.getBomRowId());
|
||||
|
|
@ -53,6 +56,20 @@ public abstract class BaseForwardReport {
|
|||
protected List<ForwardReportVO> leafMergeMaterialNo(List<ForwardReportVO> convertBomList) {
|
||||
//无子级的数据
|
||||
List<ForwardReportVO> leafList = convertBomList.stream().filter(item -> (item.getBomRowId() == null || item.getBomRowId().longValue() == 0)).collect(Collectors.toList());
|
||||
|
||||
List<ForwardReportVO> bomList = convertBomList.stream().filter(u -> ObjectUtil.isNotNull(u.getBomRowId()) && u.getBomRowId() > 0)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
bomList.forEach(item->{
|
||||
|
||||
List<ForwardReportVO> tmpList= convertBomList.stream().filter(u -> Objects.equals(u.getParentRowId(),item.getBomRowId()) )
|
||||
.collect(Collectors.toList());
|
||||
if(CollUtil.isEmpty(tmpList)){
|
||||
leafList.add(item);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
//相同物料合并统计
|
||||
Map<String, List<ForwardReportVO>> materialNoListMap = leafList.stream().collect(Collectors.groupingBy(ForwardReportVO::getMaterialNo));
|
||||
List<ForwardReportVO> sumList = new ArrayList<>();
|
||||
|
|
@ -116,11 +133,11 @@ public abstract class BaseForwardReport {
|
|||
*/
|
||||
protected List<ForwardReportVO> listToList(List<ForwardReportVO> bomList, Long parentRowId) {
|
||||
|
||||
Map<Long, List<ForwardReportVO>> listMap = bomList.stream().collect(Collectors.groupingBy(ForwardReportVO::getParentRowId));
|
||||
Map<Long, List<ForwardReportVO>> listMap = bomList.stream().filter(item ->Objects.nonNull(item.getParentRowId())&&item.getParentRowId()>0).collect(Collectors.groupingBy(ForwardReportVO::getParentRowId));
|
||||
//第一层数据
|
||||
List<ForwardReportVO> parentChildList = bomList.stream().filter(item -> Objects.equals(parentRowId, item.getParentRowId())).collect(Collectors.toList());
|
||||
List<ForwardReportVO> parentChildList = bomList.stream().filter(item -> Objects.equals(parentRowId, item.getRowId())).collect(Collectors.toList());
|
||||
//无bom数据直接展示
|
||||
List<ForwardReportVO> rootList = parentChildList.stream().filter(item -> item.getBomRowId() == null || item.getBomRowId().longValue() == 0).collect(Collectors.toList());
|
||||
List<ForwardReportVO> rootList = parentChildList.stream().filter(item -> Objects.isNull(item.getBomRowId()) || item.getBomRowId().longValue() == 0).collect(Collectors.toList());
|
||||
//第一层数据有bom
|
||||
List<ForwardReportVO> moreBomList = parentChildList.stream().filter(item -> item.getBomRowId() != null && item.getBomRowId().longValue() > 0).collect(Collectors.toList());
|
||||
//采用前序遍历 前->左->右 输出
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ public class EBomFormalTreeTask extends RecursiveTask<List<BomNewEbomParentForma
|
|||
|
||||
private List<BomNewEbomParentFormalVO> bomDetail;
|
||||
|
||||
|
||||
private boolean isNewVersion;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
|
|
|
|||
|
|
@ -4,29 +4,28 @@ import cn.hutool.core.collection.CollUtil;
|
|||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.lang.TypeReference;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.extra.spring.SpringUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.nflg.product.bomnew.constant.EBomConstant;
|
||||
import com.nflg.product.bomnew.constant.OriginalConstant;
|
||||
import com.nflg.product.bomnew.constant.ReportConstant;
|
||||
import com.nflg.product.bomnew.pojo.entity.BomNewEbomParentEntity;
|
||||
import com.nflg.product.bomnew.pojo.entity.BomNewEbomParentFormalEntity;
|
||||
import com.nflg.product.bomnew.pojo.query.ReverseReportQuery;
|
||||
import com.nflg.product.bomnew.pojo.vo.BomNewEbomParentFormalVO;
|
||||
import com.nflg.product.bomnew.pojo.vo.ForwardReportVO;
|
||||
import com.nflg.product.bomnew.pojo.vo.ReportBomVO;
|
||||
import com.nflg.product.bomnew.pojo.vo.ReportBomVersionVO;
|
||||
import com.nflg.product.bomnew.pojo.vo.*;
|
||||
import com.nflg.product.bomnew.service.BomNewEbomParentFormalService;
|
||||
import com.nflg.product.bomnew.service.BomNewEbomParentService;
|
||||
import com.nflg.product.bomnew.service.MaterialMainService;
|
||||
import com.nflg.product.bomnew.service.domain.BaseForwardReport;
|
||||
import com.nflg.product.bomnew.util.FieldGetterUtil;
|
||||
import com.nflg.product.bomnew.util.ListCommonUtil;
|
||||
import com.nflg.product.bomnew.util.MaterialshouldBomExistUtil;
|
||||
import com.nflg.product.bomnew.util.VersionUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.ForkJoinPool;
|
||||
import java.util.concurrent.ForkJoinTask;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
|
@ -43,6 +42,12 @@ public class EBomForwardReport extends BaseForwardReport {
|
|||
super(query);
|
||||
}
|
||||
|
||||
boolean isNewVersion(){
|
||||
if (query.getVersionStrategy().compareTo(ReportConstant.VersionStrategyEnum.NEW.getValue()) == 0) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
QueryWrapper<BomNewEbomParentFormalEntity> buildQuery() {
|
||||
QueryWrapper<BomNewEbomParentFormalEntity> queryWrapper = new QueryWrapper<>();
|
||||
|
|
@ -62,10 +67,41 @@ public class EBomForwardReport extends BaseForwardReport {
|
|||
|
||||
|
||||
}
|
||||
|
||||
return queryWrapper;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public void buildQueryParam( QueryWrapper<? extends BomNewEbomParentEntity> queryWrapper) {
|
||||
|
||||
queryWrapper .eq(FieldGetterUtil.getFieldInfo(BomNewEbomParentEntity::getMaterialNo), query.getMaterialNo());
|
||||
if (StrUtil.isNotBlank(query.getDrawingNo())) {
|
||||
queryWrapper .eq(FieldGetterUtil.getFieldInfo(BomNewEbomParentEntity::getDrawingNo), query.getDrawingNo());
|
||||
}
|
||||
if (query.getVersionStrategy().compareTo(ReportConstant.VersionStrategyEnum.DEFINE.getValue()) == 0) {
|
||||
queryWrapper .eq(FieldGetterUtil.getFieldInfo(BomNewEbomParentEntity::getCurrentVersion), query.getBomVersion());
|
||||
}else if(query.getVersionStrategy().compareTo(ReportConstant.VersionStrategyEnum.ALL.getValue()) == 0
|
||||
&& StrUtil.isNotEmpty(query.getBomVersion())){
|
||||
queryWrapper .eq(FieldGetterUtil.getFieldInfo(BomNewEbomParentEntity::getCurrentVersion), query.getBomVersion());
|
||||
}
|
||||
|
||||
if (StrUtil.isNotBlank(query.getStartDate()) && StrUtil.isNotBlank(query.getEndDate())) {
|
||||
queryWrapper .ge(FieldGetterUtil.getFieldInfo(BomNewEbomParentEntity::getCreatedTime), query.getStartDate())
|
||||
.le(FieldGetterUtil.getFieldInfo(BomNewEbomParentEntity::getConvertToEbomTime), query.getEndDate());
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
List<BomNewEbomParentFormalEntity> getParent() {
|
||||
QueryWrapper<BomNewEbomParentFormalEntity> queryWrapper = buildQuery();
|
||||
List<BomNewEbomParentFormalEntity> list = SpringUtil.getBean(BomNewEbomParentFormalService.class).list(queryWrapper);
|
||||
|
|
@ -75,6 +111,139 @@ public class EBomForwardReport extends BaseForwardReport {
|
|||
return list;
|
||||
}
|
||||
|
||||
List<BomNewEbomParentVO> getParentV2() {
|
||||
|
||||
List<BomNewEbomParentVO> rlist=null;
|
||||
|
||||
if(isNewVersion()){
|
||||
QueryWrapper<BomNewEbomParentEntity> queryWrapper = new QueryWrapper<>();
|
||||
buildQueryParam(queryWrapper);
|
||||
List<BomNewEbomParentEntity> list = SpringUtil.getBean(BomNewEbomParentService.class).list(queryWrapper);
|
||||
rlist=Convert.convert(new TypeReference<List<BomNewEbomParentVO>>() {
|
||||
}, list);
|
||||
}else{
|
||||
QueryWrapper<BomNewEbomParentFormalEntity > queryWrapper = new QueryWrapper<>();
|
||||
buildQueryParam(queryWrapper);
|
||||
List<BomNewEbomParentFormalEntity> list = SpringUtil.getBean(BomNewEbomParentFormalService.class).list(queryWrapper);
|
||||
rlist=Convert.convert(new TypeReference<List<BomNewEbomParentVO>>() {
|
||||
}, list);
|
||||
}
|
||||
|
||||
if(CollUtil.isNotEmpty(rlist)){
|
||||
rlist.forEach(item->{
|
||||
item.setBomRowId(item.getRowId());
|
||||
});
|
||||
}
|
||||
|
||||
return rlist;
|
||||
}
|
||||
|
||||
|
||||
|
||||
List< BomNewEbomParentVO> getParentChildList(List<Long> bomRowId){
|
||||
List< BomNewEbomParentVO> parentChildList=null;
|
||||
if(isNewVersion()){
|
||||
parentChildList = SpringUtil.getBean(BomNewEbomParentService.class).getParentChildBatch(bomRowId);
|
||||
}else{
|
||||
List< BomNewEbomParentFormalVO > childList= SpringUtil.getBean(BomNewEbomParentFormalService.class).getParentChildBatch(bomRowId);
|
||||
if(CollUtil.isNotEmpty(childList)){
|
||||
parentChildList =(List< BomNewEbomParentVO>)(List)childList;
|
||||
|
||||
// parentChildList= Collections.unmodifiableList(childList );
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
return parentChildList;
|
||||
}
|
||||
|
||||
List< BomNewEbomParentVO> getParentList(List<Long> bomRowId){
|
||||
List< BomNewEbomParentVO> parentList=null;
|
||||
if(isNewVersion()){
|
||||
List<BomNewEbomParentEntity> bomlist = SpringUtil.getBean(BomNewEbomParentService.class).lambdaQuery().in(BomNewEbomParentEntity::getRowId, bomRowId).list();
|
||||
parentList=Convert.convert(new TypeReference<List< BomNewEbomParentVO>>() {
|
||||
},bomlist);
|
||||
}else{
|
||||
|
||||
List<BomNewEbomParentFormalEntity> bomlist = SpringUtil.getBean(BomNewEbomParentFormalService.class).lambdaQuery().in(BomNewEbomParentFormalEntity::getRowId, bomRowId).list();
|
||||
|
||||
parentList=Convert.convert(new TypeReference<List< BomNewEbomParentVO >>() {
|
||||
},bomlist);
|
||||
|
||||
}
|
||||
return parentList;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
bom 子级同步有bom版本号
|
||||
*/
|
||||
|
||||
void bomUpAndLowLevel( List<BomNewEbomParentVO> parent,List< BomNewEbomParentVO> parentChildList,int levelNum,AtomicInteger orderNum){
|
||||
|
||||
if (CollectionUtil.isNotEmpty(parentChildList)) {
|
||||
|
||||
List<Long> bomRowIds = parentChildList.stream().filter(u -> Objects.nonNull(u.getBomRowId()) && u.getBomRowId() > 0).map(BomNewEbomParentVO::getBomRowId).collect(Collectors.toList());
|
||||
Map<Long, BomNewEbomParentVO> parentEntityMap=null;
|
||||
if(CollUtil.isNotEmpty(bomRowIds)) {
|
||||
List< BomNewEbomParentVO> bomlist = getParentList(bomRowIds);
|
||||
|
||||
parentEntityMap = ListCommonUtil.listToMap(bomlist, BomNewEbomParentVO::getRowId);
|
||||
}
|
||||
|
||||
Map<Long, BomNewEbomParentVO> noBomParentEntityMap=ListCommonUtil.listToMap(parent, BomNewEbomParentVO::getRowId);
|
||||
|
||||
|
||||
for (BomNewEbomParentVO vo :
|
||||
parentChildList) {
|
||||
|
||||
if (Objects.nonNull(parentEntityMap) && parentEntityMap.containsKey(vo.getBomRowId())) {
|
||||
// vo.setCreatedTime(forwardReportVO.getCreatedTime());
|
||||
// vo.setExpireEndTime(parentFormal.getConvertToEbomTime());
|
||||
|
||||
BomNewEbomParentVO ebomParentEntity = parentEntityMap.get(vo.getBomRowId());
|
||||
vo.setLevelNum(levelNum);
|
||||
vo.setOrderNumber(orderNum.getAndIncrement() + "");
|
||||
vo.setDeviseName(ebomParentEntity.getDeviseName());
|
||||
vo.setDeviseUserCode(ebomParentEntity.getDeviseUserCode());
|
||||
vo.setCurrentVersion(ebomParentEntity.getCurrentVersion());
|
||||
|
||||
} else {
|
||||
vo.setLevelNum(levelNum);
|
||||
vo.setOrderNumber(orderNum.getAndIncrement() + "");
|
||||
|
||||
if(Objects.nonNull(noBomParentEntityMap) && noBomParentEntityMap.containsKey(vo.getParentRowId())){
|
||||
BomNewEbomParentVO parentVO=noBomParentEntityMap.get(vo.getParentRowId());
|
||||
vo.setDeviseName(parentVO.getDeviseName());
|
||||
vo.setDeviseUserCode(parentVO.getDeviseUserCode());
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (MaterialshouldBomExistUtil.checkShouldBomExist(vo)) {
|
||||
vo.setCurrentVersion(OriginalConstant.NO_BOM_VERSION);
|
||||
} else {
|
||||
vo.setCurrentVersion(OriginalConstant.DEFAULT_BOM_VERSION);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Collections.sort(nodeList, (option0, option1) -> option0.getOrderNumber().compareTo(option1.getOrderNumber()));
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 最大的版本号
|
||||
*
|
||||
|
|
@ -107,68 +276,73 @@ public class EBomForwardReport extends BaseForwardReport {
|
|||
*/
|
||||
ReportBomVO singleReport() {
|
||||
|
||||
List<BomNewEbomParentFormalEntity> listParent = getParent();
|
||||
List< BomNewEbomParentVO> listParent = getParentV2();
|
||||
if (CollUtil.isEmpty(listParent)) {
|
||||
return null;
|
||||
}
|
||||
BomNewEbomParentFormalEntity parentFormal0 = listParent.get(0);
|
||||
ForwardReportVO forwardReportVO = Convert.convert(ForwardReportVO.class, parentFormal0);
|
||||
|
||||
ForwardReportVO forwardReportVO =Convert.convert( ForwardReportVO.class,listParent.get(0));
|
||||
|
||||
|
||||
List<ForwardReportVO> nodesList = new ArrayList<>();
|
||||
for (BomNewEbomParentFormalEntity parentFormal : listParent) {
|
||||
for (BomNewEbomParentVO parentFormal : listParent) {
|
||||
|
||||
List< BomNewEbomParentVO> parentChildList = getParentChildList(ImmutableList.of(parentFormal.getRowId()));
|
||||
|
||||
List<BomNewEbomParentFormalVO> parentChildList = SpringUtil.getBean(BomNewEbomParentFormalService.class).getParentChild(parentFormal.getRowId());
|
||||
initMaterialInfo(parentChildList);
|
||||
AtomicInteger orderNum = new AtomicInteger(1);
|
||||
parentFormal.setLevelNum(1);
|
||||
parentFormal.setOrderNumber(orderNum.getAndIncrement()+"");
|
||||
nodesList.add(Convert.convert(ForwardReportVO.class,parentFormal));
|
||||
|
||||
// if (CollectionUtil.isNotEmpty(parentChildList)) {
|
||||
//
|
||||
// List<Long> bomRowIds = parentChildList.stream().filter(u -> Objects.nonNull(u.getBomRowId()) && u.getBomRowId() > 0).map(BomNewEbomParentVO::getBomRowId).collect(Collectors.toList());
|
||||
// Map<Long, BomNewEbomParentVO> parentEntityMap=null;
|
||||
// if(CollUtil.isNotEmpty(bomRowIds)) {
|
||||
// List< BomNewEbomParentVO> bomlist = getParentList(bomRowIds);
|
||||
//
|
||||
// parentEntityMap = ListCommonUtil.listToMap(bomlist, BomNewEbomParentVO::getRowId);
|
||||
// }
|
||||
//
|
||||
// for (BomNewEbomParentVO vo :
|
||||
// parentChildList) {
|
||||
//
|
||||
// if (Objects.nonNull(parentEntityMap) && parentEntityMap.containsKey(vo.getBomRowId())) {
|
||||
// // vo.setCreatedTime(forwardReportVO.getCreatedTime());
|
||||
// // vo.setExpireEndTime(parentFormal.getConvertToEbomTime());
|
||||
//
|
||||
// BomNewEbomParentVO ebomParentEntity = parentEntityMap.get(vo.getBomRowId());
|
||||
// vo.setLevelNum(2);
|
||||
// vo.setOrderNumber(orderNum.incrementAndGet() + "");
|
||||
// vo.setDeviseName(ebomParentEntity.getDeviseName());
|
||||
// vo.setDeviseUserCode(ebomParentEntity.getDeviseUserCode());
|
||||
// vo.setCurrentVersion(ebomParentEntity.getCurrentVersion());
|
||||
//
|
||||
//
|
||||
// } else {
|
||||
// vo.setLevelNum(2);
|
||||
// vo.setOrderNumber(orderNum.incrementAndGet() + "");
|
||||
// vo.setDeviseName(parentFormal.getDeviseName());
|
||||
// vo.setDeviseUserCode(parentFormal.getDeviseUserCode());
|
||||
// if (MaterialshouldBomExistUtil.checkShouldBomExist(vo)) {
|
||||
// vo.setCurrentVersion(OriginalConstant.NO_BOM_VERSION);
|
||||
// } else {
|
||||
// vo.setCurrentVersion(OriginalConstant.DEFAULT_BOM_VERSION);
|
||||
// }
|
||||
//
|
||||
//
|
||||
// }
|
||||
//
|
||||
// }
|
||||
//
|
||||
//
|
||||
//
|
||||
// // Collections.sort(nodeList, (option0, option1) -> option0.getOrderNumber().compareTo(option1.getOrderNumber()));
|
||||
//
|
||||
// }
|
||||
|
||||
if (CollectionUtil.isNotEmpty(parentChildList)) {
|
||||
|
||||
List<Long> bomRowIds = parentChildList.stream().filter(u -> Objects.nonNull(u.getBomRowId()) && u.getBomRowId() > 0).map(BomNewEbomParentFormalVO::getBomRowId).collect(Collectors.toList());
|
||||
Map<Long, BomNewEbomParentFormalEntity> parentEntityMap=null;
|
||||
if(CollUtil.isNotEmpty(bomRowIds)) {
|
||||
List<BomNewEbomParentFormalEntity> bomlist = SpringUtil.getBean(BomNewEbomParentFormalService.class).lambdaQuery().in(BomNewEbomParentFormalEntity::getRowId, bomRowIds).list();
|
||||
|
||||
parentEntityMap = ListCommonUtil.listToMap(bomlist, BomNewEbomParentFormalEntity::getRowId);
|
||||
}
|
||||
AtomicInteger orderNum = new AtomicInteger();
|
||||
for (BomNewEbomParentFormalVO vo :
|
||||
parentChildList) {
|
||||
|
||||
if (Objects.nonNull(parentEntityMap) && parentEntityMap.containsKey(vo.getBomRowId())) {
|
||||
// vo.setCreatedTime(forwardReportVO.getCreatedTime());
|
||||
// vo.setExpireEndTime(parentFormal.getConvertToEbomTime());
|
||||
|
||||
BomNewEbomParentFormalEntity ebomParentEntity = parentEntityMap.get(vo.getBomRowId());
|
||||
vo.setLevelNum(1);
|
||||
vo.setOrderNumber(orderNum.incrementAndGet() + "");
|
||||
vo.setDeviseName(ebomParentEntity.getDeviseName());
|
||||
vo.setDeviseUserCode(ebomParentEntity.getDeviseUserCode());
|
||||
vo.setCurrentVersion(ebomParentEntity.getCurrentVersion());
|
||||
|
||||
|
||||
} else {
|
||||
vo.setLevelNum(1);
|
||||
vo.setOrderNumber(orderNum.incrementAndGet() + "");
|
||||
vo.setDeviseName(parentFormal.getDeviseName());
|
||||
vo.setDeviseName(parentFormal.getDeviseUserCode());
|
||||
if (MaterialshouldBomExistUtil.checkShouldBomExist(vo)) {
|
||||
vo.setCurrentVersion(OriginalConstant.NO_BOM_VERSION);
|
||||
} else {
|
||||
vo.setCurrentVersion(OriginalConstant.DEFAULT_BOM_VERSION);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Collections.sort(nodeList, (option0, option1) -> option0.getOrderNumber().compareTo(option1.getOrderNumber()));
|
||||
|
||||
}
|
||||
bomUpAndLowLevel(ImmutableList.of(parentFormal),parentChildList,2,orderNum);
|
||||
|
||||
List<ForwardReportVO> nodeList = Convert.convert(new TypeReference<List<ForwardReportVO>>() {
|
||||
}, parentChildList);
|
||||
|
|
@ -236,8 +410,65 @@ public class EBomForwardReport extends BaseForwardReport {
|
|||
return null;
|
||||
}
|
||||
|
||||
void initMaterialInfo(List<BomNewEbomParentFormalVO> list) {
|
||||
SpringUtil.getBean(MaterialMainService.class).intiMaterialInfo(list, BomNewEbomParentFormalVO::getMaterialNo, EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT2);
|
||||
|
||||
/**
|
||||
* 迭代查询整颗树
|
||||
|
||||
* @return
|
||||
*/
|
||||
List<BomNewEbomParentVO> bomDetailTreeList(BomNewEbomParentVO parentBomRow) {
|
||||
|
||||
int levelNum = 1;
|
||||
AtomicInteger orderNum = new AtomicInteger(1);
|
||||
if(ObjectUtil.isNull( parentBomRow)){
|
||||
return null;
|
||||
}
|
||||
List<BomNewEbomParentVO> voList = new ArrayList<>();
|
||||
parentBomRow.setLevelNum(levelNum);
|
||||
parentBomRow.setOrderNumber(orderNum.getAndIncrement()+"");
|
||||
|
||||
voList.add( parentBomRow );
|
||||
|
||||
|
||||
levelNum++;
|
||||
List<Long> rowIdList = new ArrayList<>( Arrays.asList(parentBomRow.getRowId()) );
|
||||
|
||||
List<BomNewEbomParentVO> parentVOList=new ArrayList<>(Arrays.asList(parentBomRow));
|
||||
|
||||
while (!rowIdList.isEmpty()) {
|
||||
List< BomNewEbomParentVO> parentChildList= getParentChildList(rowIdList);
|
||||
rowIdList.clear();
|
||||
if (CollUtil.isNotEmpty(parentChildList)) {
|
||||
bomUpAndLowLevel(parentVOList,parentChildList,levelNum,orderNum);
|
||||
|
||||
voList.addAll(parentChildList);
|
||||
levelNum++;
|
||||
List<Long> nextBomId = parentChildList.stream().filter(u -> ObjectUtil.isNotNull(u.getBomRowId()) && u.getBomRowId() > 0)
|
||||
.map(BomNewEbomParentVO::getBomRowId).collect(Collectors.toList());
|
||||
parentVOList.clear();
|
||||
parentVOList.addAll(parentChildList.stream().filter(u -> ObjectUtil.isNotNull(u.getBomRowId()) && u.getBomRowId() > 0)
|
||||
.collect(Collectors.toList()));
|
||||
|
||||
if (CollUtil.isNotEmpty(nextBomId)) {
|
||||
rowIdList.addAll(nextBomId);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
return voList;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
void initMaterialInfo(List<? extends BomNewEbomParentVO> list) {
|
||||
SpringUtil.getBean(MaterialMainService.class).intiMaterialInfo(list, BomNewEbomParentVO::getMaterialNo, EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT2);
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -249,18 +480,18 @@ public class EBomForwardReport extends BaseForwardReport {
|
|||
ReportBomVO multiReport() {
|
||||
|
||||
|
||||
List<BomNewEbomParentFormalEntity> listParent = getParent();
|
||||
List<BomNewEbomParentVO> listParent = getParentV2();
|
||||
if (CollUtil.isEmpty(listParent)) {
|
||||
return null;
|
||||
}
|
||||
BomNewEbomParentFormalEntity parentFormal0 = listParent.get(0);
|
||||
BomNewEbomParentVO parentFormal0 = listParent.get(0);
|
||||
ForwardReportVO forwardReportVO = Convert.convert(ForwardReportVO.class, parentFormal0);
|
||||
|
||||
List<ForwardReportVO> nodesList = new ArrayList<>();
|
||||
for (BomNewEbomParentFormalEntity parentFormal : listParent) {
|
||||
for (BomNewEbomParentVO parentFormal : listParent) {
|
||||
|
||||
|
||||
List<BomNewEbomParentFormalVO> bomList = bomDetailList(parentFormal.getRowId());
|
||||
List<BomNewEbomParentVO> bomList = bomDetailTreeList(parentFormal);
|
||||
if(CollUtil.isEmpty(bomList)){
|
||||
continue;
|
||||
}
|
||||
|
|
@ -294,37 +525,36 @@ public class EBomForwardReport extends BaseForwardReport {
|
|||
* @return
|
||||
*/
|
||||
ReportBomVO sumReport() {
|
||||
List<BomNewEbomParentFormalEntity> listParent = getParent();
|
||||
List<BomNewEbomParentVO> listParent = getParentV2();
|
||||
if (CollUtil.isEmpty(listParent)) {
|
||||
return null;
|
||||
}
|
||||
BomNewEbomParentFormalEntity parentFormal0 = listParent.get(0);
|
||||
BomNewEbomParentVO parentFormal0 = listParent.get(0);
|
||||
ForwardReportVO forwardReportVO = Convert.convert(ForwardReportVO.class, parentFormal0);
|
||||
|
||||
List<ForwardReportVO> nodesList = new ArrayList<>();
|
||||
for (BomNewEbomParentFormalEntity parentFormal : listParent) {
|
||||
for (BomNewEbomParentVO parentFormal : listParent) {
|
||||
|
||||
List<BomNewEbomParentFormalVO> bomList = bomDetailList(parentFormal.getRowId());
|
||||
List<BomNewEbomParentVO> bomList = bomDetailTreeList(parentFormal );
|
||||
if(CollUtil.isEmpty(bomList)){
|
||||
continue;
|
||||
}
|
||||
List<ForwardReportVO> convertBomList = Convert.convert(new TypeReference<List<ForwardReportVO>>() {
|
||||
}, bomList);
|
||||
|
||||
sumLevel(convertBomList);
|
||||
|
||||
//无子级的数据
|
||||
List<ForwardReportVO> nodeList = leafMergeMaterialNo(convertBomList);
|
||||
|
||||
nodesList.addAll(nodeList);
|
||||
AtomicInteger orderNum = new AtomicInteger();
|
||||
AtomicInteger orderNum = new AtomicInteger(1);
|
||||
for (ForwardReportVO vo :
|
||||
nodeList) {
|
||||
|
||||
vo.setLevelNum(1);
|
||||
vo.setOrderNumber(orderNum.incrementAndGet() + "");
|
||||
vo.setExpireEndTime(parentFormal.getConvertToEbomTime());
|
||||
vo.setDeviseName(forwardReportVO.getDeviseName());
|
||||
// vo.setDeviseName(forwardReportVO.getDeviseName());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -223,14 +223,14 @@
|
|||
|
||||
<!--获取子级-->
|
||||
<select id="getParentChild" resultType="com.nflg.product.bomnew.pojo.vo.BomNewEbomParentVO">
|
||||
select *
|
||||
select *,bom_version_row_id as bom_row_id
|
||||
from t_bom_new_ebom_child
|
||||
where parent_row_id = #{rowId}
|
||||
order by order_number
|
||||
</select>
|
||||
|
||||
<select id="getParentChildBatch" resultType="com.nflg.product.bomnew.pojo.vo.BomNewEbomParentVO">
|
||||
select *
|
||||
select *,bom_version_row_id as bom_row_id
|
||||
from t_bom_new_ebom_child
|
||||
where parent_row_id in
|
||||
<foreach collection="rowIds" item="rowId" open="(" separator="," close=")">
|
||||
|
|
|
|||
Loading…
Reference in New Issue