pbom-版本处理
This commit is contained in:
parent
4f26f1425f
commit
f115ca8236
|
|
@ -116,6 +116,10 @@ public class BomNewEbomChildEntity implements Serializable {
|
||||||
@ApiModelProperty(value = "数量")
|
@ApiModelProperty(value = "数量")
|
||||||
private BigDecimal num;
|
private BigDecimal num;
|
||||||
|
|
||||||
|
public BigDecimal getNum() {
|
||||||
|
return num==null?null:num.stripTrailingZeros();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 总重
|
* 总重
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -374,6 +374,10 @@ public class BomNewPbomParentEntity implements Serializable {
|
||||||
@ApiModelProperty(value = "来源状态:1-EBOM导入、2-PBOM创建、3-E->P修改")
|
@ApiModelProperty(value = "来源状态:1-EBOM导入、2-PBOM创建、3-E->P修改")
|
||||||
private Integer sourceStatus;
|
private Integer sourceStatus;
|
||||||
|
|
||||||
|
@TableField(value = "ebom_version")
|
||||||
|
@ApiModelProperty(value = "ebom-发布后的版本")
|
||||||
|
private String ebomVersion;
|
||||||
|
|
||||||
private static final long serialVersionUID = -31999878274445137L;
|
private static final long serialVersionUID = -31999878274445137L;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -375,6 +375,9 @@ public class BomNewEbomParentVO extends BaseMaterialVO implements Serializable {
|
||||||
return MyStrUtil.joinStr(getMaterialNo(),getNum());
|
return MyStrUtil.joinStr(getMaterialNo(),getNum());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiModelProperty("ebom发布后的版本")
|
||||||
|
private String ebomVersion="";
|
||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -344,6 +344,9 @@ public class BomNewPbomParentVO extends BaseMaterialVO implements Serializable {
|
||||||
//发布PBOM 时 ,对比Pbom已发布版是否一致,一致则不转PBOM正式,直接删除PBOM 草稿数据
|
//发布PBOM 时 ,对比Pbom已发布版是否一致,一致则不转PBOM正式,直接删除PBOM 草稿数据
|
||||||
private Integer delIs=0;
|
private Integer delIs=0;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "ebom-发布后的版本")
|
||||||
|
private String ebomVersion;
|
||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -1197,7 +1197,7 @@ public class BomNewPbomParentService extends ServiceImpl<BomNewPbomParentMapper,
|
||||||
.ge(BomNewPbomParentEntity::getStatus,PBomStatusEnum.PUBLISH.getValue())
|
.ge(BomNewPbomParentEntity::getStatus,PBomStatusEnum.PUBLISH.getValue())
|
||||||
.eq(BomNewPbomParentEntity::getFacCode, newPBom.getFacCode()).last(" order by current_version desc limit 1").one();
|
.eq(BomNewPbomParentEntity::getFacCode, newPBom.getFacCode()).last(" order by current_version desc limit 1").one();
|
||||||
if(Objects.isNull(oldParent)){
|
if(Objects.isNull(oldParent)){
|
||||||
newPBom.setCurrentVersion(VersionUtil.getNextVersion(""));
|
// newPBom.setCurrentVersion(VersionUtil.getNextVersion(""));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
//旧bom除T项之外
|
//旧bom除T项之外
|
||||||
|
|
@ -1207,7 +1207,8 @@ public class BomNewPbomParentService extends ServiceImpl<BomNewPbomParentMapper,
|
||||||
List<BomNewPbomParentVO> newChildren = this.getBaseMapper().getParentChild(newPBom.getBomRowId());
|
List<BomNewPbomParentVO> newChildren = this.getBaseMapper().getParentChild(newPBom.getBomRowId());
|
||||||
List<BomNewPbomParentVO> newBomNoTChildren = newChildren.stream().filter(u -> !EBomConstant.PROJECT_TYPE_T.equalsIgnoreCase(u.getProjectType())).collect(Collectors.toList());
|
List<BomNewPbomParentVO> newBomNoTChildren = newChildren.stream().filter(u -> !EBomConstant.PROJECT_TYPE_T.equalsIgnoreCase(u.getProjectType())).collect(Collectors.toList());
|
||||||
if(oldBomNoTChildren.size()!=newBomNoTChildren.size()){
|
if(oldBomNoTChildren.size()!=newBomNoTChildren.size()){
|
||||||
newPBom.setCurrentVersion(VersionUtil.getNextVersion(oldParent.getCurrentVersion()));
|
// newPBom.setCurrentVersion(VersionUtil.getNextVersion(oldParent.getCurrentVersion()));
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
Set<String> oldChildSet = oldBomNoTChildren.stream().map(u -> u.getMaterialNoAndNum()).collect(Collectors.toSet());
|
Set<String> oldChildSet = oldBomNoTChildren.stream().map(u -> u.getMaterialNoAndNum()).collect(Collectors.toSet());
|
||||||
|
|
@ -1246,12 +1247,12 @@ public class BomNewPbomParentService extends ServiceImpl<BomNewPbomParentMapper,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(oldChildSet.equals(newChildSet)){
|
// else if(oldChildSet.equals(newChildSet)){
|
||||||
newPBom.setCurrentVersion( VersionUtil.getNextVersionForSmallVersion(oldParent.getCurrentVersion()));
|
// newPBom.setCurrentVersion( VersionUtil.getNextVersionForSmallVersion(oldParent.getCurrentVersion()));
|
||||||
}
|
// }
|
||||||
else {
|
// else {
|
||||||
newPBom.setCurrentVersion(VersionUtil.getNextVersion(oldParent.getCurrentVersion()));
|
// newPBom.setCurrentVersion(VersionUtil.getNextVersion(oldParent.getCurrentVersion()));
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,7 @@ import com.nflg.product.bomnew.pojo.vo.BaseMaterialVO;
|
||||||
import com.nflg.product.bomnew.pojo.vo.BomNewEbomParentVO;
|
import com.nflg.product.bomnew.pojo.vo.BomNewEbomParentVO;
|
||||||
import com.nflg.product.bomnew.pojo.vo.BomNewPbomParentVO;
|
import com.nflg.product.bomnew.pojo.vo.BomNewPbomParentVO;
|
||||||
import com.nflg.product.bomnew.service.*;
|
import com.nflg.product.bomnew.service.*;
|
||||||
|
import com.nflg.product.bomnew.util.MyStrUtil;
|
||||||
import com.nflg.product.bomnew.util.VUtils;
|
import com.nflg.product.bomnew.util.VUtils;
|
||||||
import com.nflg.product.bomnew.util.VersionUtil;
|
import com.nflg.product.bomnew.util.VersionUtil;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
|
@ -197,6 +198,10 @@ public abstract class EBomToPbomBase {
|
||||||
oldParent.setCreatedBy(SessionUtil.getUserCode());
|
oldParent.setCreatedBy(SessionUtil.getUserCode());
|
||||||
oldParent.setDeptName(SessionUtil.getDepartName());
|
oldParent.setDeptName(SessionUtil.getDepartName());
|
||||||
oldParent.setDeptRowId(SessionUtil.getDepartRowId());
|
oldParent.setDeptRowId(SessionUtil.getDepartRowId());
|
||||||
|
oldParent.setEbomVersion(parentVo.getEbomVersion());
|
||||||
|
if(StrUtil.isNotBlank(parentVo.getEbomVersion())){
|
||||||
|
oldParent.setCurrentVersion(parentVo.getEbomVersion());
|
||||||
|
}
|
||||||
this.pBomParentResult.add(oldParent);
|
this.pBomParentResult.add(oldParent);
|
||||||
return oldParent;
|
return oldParent;
|
||||||
}
|
}
|
||||||
|
|
@ -208,7 +213,7 @@ public abstract class EBomToPbomBase {
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
} else { //pbom-处于正式表
|
} else { //pbom-处于正式表
|
||||||
return buildParentEntity(parentVo, facCode, oldParent, VersionUtil.getNextVersionForSmallVersion(oldParent.getCurrentVersion()));
|
return buildParentEntity(parentVo, facCode, oldParent, VersionUtil.getPBomUpgradNextVersion(oldParent.getCurrentVersion()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -334,6 +339,11 @@ public abstract class EBomToPbomBase {
|
||||||
pBomParent.setCreatedBy(SessionUtil.getUserCode());
|
pBomParent.setCreatedBy(SessionUtil.getUserCode());
|
||||||
pBomParent.setSource(PbomSourceEnum.FROM_EBOM.getValue());
|
pBomParent.setSource(PbomSourceEnum.FROM_EBOM.getValue());
|
||||||
pBomParent.setSourceStatus(PbomSourceStatusEnum.EBOM.getValue());
|
pBomParent.setSourceStatus(PbomSourceStatusEnum.EBOM.getValue());
|
||||||
|
pBomParent.setEbomVersion(parentVo.getEbomVersion());
|
||||||
|
if(StrUtil.isNotBlank(parentVo.getEbomVersion()) ){
|
||||||
|
pBomParent.setCurrentVersion(parentVo.getEbomVersion());
|
||||||
|
}
|
||||||
|
|
||||||
if (Objects.nonNull(oldParent)) {
|
if (Objects.nonNull(oldParent)) {
|
||||||
oldParent.setExpireEndTime(LocalDateTime.now());
|
oldParent.setExpireEndTime(LocalDateTime.now());
|
||||||
oldParent.setLastVersionIs(0);
|
oldParent.setLastVersionIs(0);
|
||||||
|
|
@ -780,7 +790,7 @@ public abstract class EBomToPbomBase {
|
||||||
}
|
}
|
||||||
Map<String, List<BomNewEbomChildEntity>> oldChildMap = oldChildList.stream().collect(Collectors.groupingBy(u -> StrUtil.join("", u.getMaterialNo(), u.getProjectType(), u.getNum())));
|
Map<String, List<BomNewEbomChildEntity>> oldChildMap = oldChildList.stream().collect(Collectors.groupingBy(u -> StrUtil.join("", u.getMaterialNo(), u.getProjectType(), u.getNum())));
|
||||||
for (BomNewEbomParentVO newChild : newChildList) {
|
for (BomNewEbomParentVO newChild : newChildList) {
|
||||||
String key = StrUtil.join("", newChild.getMaterialNo(), newChild.getProjectType(), newChild.getNum());
|
String key = MyStrUtil.joinStr(newChild.getMaterialNo(), newChild.getProjectType(), newChild.getNum());
|
||||||
if (!oldChildMap.containsKey(key)) {
|
if (!oldChildMap.containsKey(key)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
@ -833,17 +843,20 @@ public abstract class EBomToPbomBase {
|
||||||
} else if (isSameEBomV2FormMaterialNoAndNum(oldParentChild, newParentChild)) {
|
} else if (isSameEBomV2FormMaterialNoAndNum(oldParentChild, newParentChild)) {
|
||||||
parentBom.setCurrentVersion(VersionUtil.getNextVersionForSmallVersion(oldEBom.getCurrentVersion()));
|
parentBom.setCurrentVersion(VersionUtil.getNextVersionForSmallVersion(oldEBom.getCurrentVersion()));
|
||||||
parentBom.setHasChangeState(2);
|
parentBom.setHasChangeState(2);
|
||||||
|
parentBom.setEbomVersion(parentBom.getCurrentVersion());
|
||||||
delOldEBom.add(oldEBom.getRowId());
|
delOldEBom.add(oldEBom.getRowId());
|
||||||
addEBomNew.add(parentBom.getBomRowId());
|
addEBomNew.add(parentBom.getBomRowId());
|
||||||
} else {
|
} else {
|
||||||
parentBom.setCurrentVersion(VersionUtil.getNextVersion(oldEBom.getCurrentVersion()));
|
parentBom.setCurrentVersion(VersionUtil.getNextVersion(oldEBom.getCurrentVersion()));
|
||||||
parentBom.setHasChangeState(2);
|
parentBom.setHasChangeState(2);
|
||||||
|
parentBom.setEbomVersion(parentBom.getCurrentVersion());
|
||||||
delOldEBom.add(oldEBom.getRowId());
|
delOldEBom.add(oldEBom.getRowId());
|
||||||
addEBomNew.add(parentBom.getBomRowId());
|
addEBomNew.add(parentBom.getBomRowId());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
parentBom.setEbomVersion(VersionUtil.getNextVersion(""));
|
||||||
addEBomNew.add(parentBom.getBomRowId());
|
addEBomNew.add(parentBom.getBomRowId());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -211,7 +211,7 @@ public abstract class FormalEBomToPbomBase {
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
} else { //pbom-处于正式表(全部生成小版本)
|
} else { //pbom-处于正式表(全部生成小版本)
|
||||||
return buildParentEntity(parentVo, facCode, oldParent, VersionUtil.getNextVersionForSmallVersion(oldParent.getCurrentVersion()));
|
return buildParentEntity(parentVo, facCode, oldParent, VersionUtil.getPBomUpgradNextVersion(oldParent.getCurrentVersion()));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -92,6 +92,7 @@ public class PBomDetailTask extends RecursiveTask<List<BomNewPbomParentVO>> {
|
||||||
detailVO.setBomExist(ebomParentEntity.getBomExist());
|
detailVO.setBomExist(ebomParentEntity.getBomExist());
|
||||||
detailVO.setShouldBomExist(ebomParentEntity.getShouldBomExist());
|
detailVO.setShouldBomExist(ebomParentEntity.getShouldBomExist());
|
||||||
detailVO.setVirtualPackageIs(ebomParentEntity.getVirtualPackageIs());
|
detailVO.setVirtualPackageIs(ebomParentEntity.getVirtualPackageIs());
|
||||||
|
detailVO.setEbomVersion(ebomParentEntity.getEbomVersion());
|
||||||
} else {
|
} else {
|
||||||
BomNewPbomParentEntity parent = SpringUtil.getBean(BomNewPbomParentService.class).lambdaQuery().eq(BomNewPbomParentEntity::getRowId, detailVO.getParentRowId()).one();
|
BomNewPbomParentEntity parent = SpringUtil.getBean(BomNewPbomParentService.class).lambdaQuery().eq(BomNewPbomParentEntity::getRowId, detailVO.getParentRowId()).one();
|
||||||
detailVO.setDeviseUserCode(parent.getDeviseUserCode());
|
detailVO.setDeviseUserCode(parent.getDeviseUserCode());
|
||||||
|
|
|
||||||
|
|
@ -175,7 +175,10 @@ public class VersionUtil {
|
||||||
char lastChar = version.charAt(version.length() - 1);
|
char lastChar = version.charAt(version.length() - 1);
|
||||||
boolean isLetter = Character.isLetter(lastChar);
|
boolean isLetter = Character.isLetter(lastChar);
|
||||||
if (!isLetter) {
|
if (!isLetter) {
|
||||||
return version + ".a";
|
if(version.contains(".")){
|
||||||
|
return version + "a";
|
||||||
|
}
|
||||||
|
return version + ".0a";
|
||||||
} else {
|
} else {
|
||||||
int lastCharIndex = version.length() - 1;
|
int lastCharIndex = version.length() - 1;
|
||||||
char newLastChar = (char) (lastChar + 1);
|
char newLastChar = (char) (lastChar + 1);
|
||||||
|
|
|
||||||
|
|
@ -48,6 +48,7 @@
|
||||||
<result column="notice_nums" property="noticeNums" jdbcType="VARCHAR"/>
|
<result column="notice_nums" property="noticeNums" jdbcType="VARCHAR"/>
|
||||||
<result column="order_no" property="orderNo" jdbcType="VARCHAR"/>
|
<result column="order_no" property="orderNo" jdbcType="VARCHAR"/>
|
||||||
<result column="modify_time" property="modifyTime" jdbcType="TIMESTAMP"/>
|
<result column="modify_time" property="modifyTime" jdbcType="TIMESTAMP"/>
|
||||||
|
<result column="ebom_version" property="ebomVersion" jdbcType="VARCHAR"/>
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
<sql id="Base_Column_List">
|
<sql id="Base_Column_List">
|
||||||
|
|
@ -57,7 +58,7 @@
|
||||||
should_bom_exist, super_material_status, bom_exist, last_version_is, edit_status, status, user_root_is,
|
should_bom_exist, super_material_status, bom_exist, last_version_is, edit_status, status, user_root_is,
|
||||||
virtual_package_is, source_row_id, devise_user_code, devise_name,technology_user_code,technology_user_name, created_by, created_time, created_job,
|
virtual_package_is, source_row_id, devise_user_code, devise_name,technology_user_code,technology_user_name, created_by, created_time, created_job,
|
||||||
release_time, release_user_name,last_convert_mbom_user_name,last_convert_mbom_time, expire_end_time, remark, dept_name, level_num, change_desc, notice_nums,
|
release_time, release_user_name,last_convert_mbom_user_name,last_convert_mbom_time, expire_end_time, remark, dept_name, level_num, change_desc, notice_nums,
|
||||||
order_no, modify_time
|
order_no, modify_time,ebom_version
|
||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
<sql id="whr">
|
<sql id="whr">
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue