pbom-版本处理
This commit is contained in:
parent
4f26f1425f
commit
f115ca8236
|
|
@ -116,6 +116,10 @@ public class BomNewEbomChildEntity implements Serializable {
|
|||
@ApiModelProperty(value = "数量")
|
||||
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修改")
|
||||
private Integer sourceStatus;
|
||||
|
||||
@TableField(value = "ebom_version")
|
||||
@ApiModelProperty(value = "ebom-发布后的版本")
|
||||
private String ebomVersion;
|
||||
|
||||
private static final long serialVersionUID = -31999878274445137L;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -375,6 +375,9 @@ public class BomNewEbomParentVO extends BaseMaterialVO implements Serializable {
|
|||
return MyStrUtil.joinStr(getMaterialNo(),getNum());
|
||||
}
|
||||
|
||||
@ApiModelProperty("ebom发布后的版本")
|
||||
private String ebomVersion="";
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -344,6 +344,9 @@ public class BomNewPbomParentVO extends BaseMaterialVO implements Serializable {
|
|||
//发布PBOM 时 ,对比Pbom已发布版是否一致,一致则不转PBOM正式,直接删除PBOM 草稿数据
|
||||
private Integer delIs=0;
|
||||
|
||||
@ApiModelProperty(value = "ebom-发布后的版本")
|
||||
private String ebomVersion;
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -1197,7 +1197,7 @@ public class BomNewPbomParentService extends ServiceImpl<BomNewPbomParentMapper,
|
|||
.ge(BomNewPbomParentEntity::getStatus,PBomStatusEnum.PUBLISH.getValue())
|
||||
.eq(BomNewPbomParentEntity::getFacCode, newPBom.getFacCode()).last(" order by current_version desc limit 1").one();
|
||||
if(Objects.isNull(oldParent)){
|
||||
newPBom.setCurrentVersion(VersionUtil.getNextVersion(""));
|
||||
// newPBom.setCurrentVersion(VersionUtil.getNextVersion(""));
|
||||
continue;
|
||||
}
|
||||
//旧bom除T项之外
|
||||
|
|
@ -1207,7 +1207,8 @@ public class BomNewPbomParentService extends ServiceImpl<BomNewPbomParentMapper,
|
|||
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());
|
||||
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());
|
||||
|
|
@ -1246,12 +1247,12 @@ public class BomNewPbomParentService extends ServiceImpl<BomNewPbomParentMapper,
|
|||
}
|
||||
}
|
||||
}
|
||||
else if(oldChildSet.equals(newChildSet)){
|
||||
newPBom.setCurrentVersion( VersionUtil.getNextVersionForSmallVersion(oldParent.getCurrentVersion()));
|
||||
}
|
||||
else {
|
||||
newPBom.setCurrentVersion(VersionUtil.getNextVersion(oldParent.getCurrentVersion()));
|
||||
}
|
||||
// else if(oldChildSet.equals(newChildSet)){
|
||||
// newPBom.setCurrentVersion( VersionUtil.getNextVersionForSmallVersion(oldParent.getCurrentVersion()));
|
||||
// }
|
||||
// else {
|
||||
// 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.BomNewPbomParentVO;
|
||||
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.VersionUtil;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
|
|
@ -197,6 +198,10 @@ public abstract class EBomToPbomBase {
|
|||
oldParent.setCreatedBy(SessionUtil.getUserCode());
|
||||
oldParent.setDeptName(SessionUtil.getDepartName());
|
||||
oldParent.setDeptRowId(SessionUtil.getDepartRowId());
|
||||
oldParent.setEbomVersion(parentVo.getEbomVersion());
|
||||
if(StrUtil.isNotBlank(parentVo.getEbomVersion())){
|
||||
oldParent.setCurrentVersion(parentVo.getEbomVersion());
|
||||
}
|
||||
this.pBomParentResult.add(oldParent);
|
||||
return oldParent;
|
||||
}
|
||||
|
|
@ -208,7 +213,7 @@ public abstract class EBomToPbomBase {
|
|||
return null;
|
||||
|
||||
} 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.setSource(PbomSourceEnum.FROM_EBOM.getValue());
|
||||
pBomParent.setSourceStatus(PbomSourceStatusEnum.EBOM.getValue());
|
||||
pBomParent.setEbomVersion(parentVo.getEbomVersion());
|
||||
if(StrUtil.isNotBlank(parentVo.getEbomVersion()) ){
|
||||
pBomParent.setCurrentVersion(parentVo.getEbomVersion());
|
||||
}
|
||||
|
||||
if (Objects.nonNull(oldParent)) {
|
||||
oldParent.setExpireEndTime(LocalDateTime.now());
|
||||
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())));
|
||||
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)) {
|
||||
return false;
|
||||
}
|
||||
|
|
@ -833,17 +843,20 @@ public abstract class EBomToPbomBase {
|
|||
} else if (isSameEBomV2FormMaterialNoAndNum(oldParentChild, newParentChild)) {
|
||||
parentBom.setCurrentVersion(VersionUtil.getNextVersionForSmallVersion(oldEBom.getCurrentVersion()));
|
||||
parentBom.setHasChangeState(2);
|
||||
parentBom.setEbomVersion(parentBom.getCurrentVersion());
|
||||
delOldEBom.add(oldEBom.getRowId());
|
||||
addEBomNew.add(parentBom.getBomRowId());
|
||||
} else {
|
||||
parentBom.setCurrentVersion(VersionUtil.getNextVersion(oldEBom.getCurrentVersion()));
|
||||
parentBom.setHasChangeState(2);
|
||||
parentBom.setEbomVersion(parentBom.getCurrentVersion());
|
||||
delOldEBom.add(oldEBom.getRowId());
|
||||
addEBomNew.add(parentBom.getBomRowId());
|
||||
}
|
||||
|
||||
}
|
||||
else {
|
||||
parentBom.setEbomVersion(VersionUtil.getNextVersion(""));
|
||||
addEBomNew.add(parentBom.getBomRowId());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -211,7 +211,7 @@ public abstract class FormalEBomToPbomBase {
|
|||
return null;
|
||||
|
||||
} 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.setShouldBomExist(ebomParentEntity.getShouldBomExist());
|
||||
detailVO.setVirtualPackageIs(ebomParentEntity.getVirtualPackageIs());
|
||||
detailVO.setEbomVersion(ebomParentEntity.getEbomVersion());
|
||||
} else {
|
||||
BomNewPbomParentEntity parent = SpringUtil.getBean(BomNewPbomParentService.class).lambdaQuery().eq(BomNewPbomParentEntity::getRowId, detailVO.getParentRowId()).one();
|
||||
detailVO.setDeviseUserCode(parent.getDeviseUserCode());
|
||||
|
|
|
|||
|
|
@ -175,7 +175,10 @@ public class VersionUtil {
|
|||
char lastChar = version.charAt(version.length() - 1);
|
||||
boolean isLetter = Character.isLetter(lastChar);
|
||||
if (!isLetter) {
|
||||
return version + ".a";
|
||||
if(version.contains(".")){
|
||||
return version + "a";
|
||||
}
|
||||
return version + ".0a";
|
||||
} else {
|
||||
int lastCharIndex = version.length() - 1;
|
||||
char newLastChar = (char) (lastChar + 1);
|
||||
|
|
|
|||
|
|
@ -48,6 +48,7 @@
|
|||
<result column="notice_nums" property="noticeNums" jdbcType="VARCHAR"/>
|
||||
<result column="order_no" property="orderNo" jdbcType="VARCHAR"/>
|
||||
<result column="modify_time" property="modifyTime" jdbcType="TIMESTAMP"/>
|
||||
<result column="ebom_version" property="ebomVersion" jdbcType="VARCHAR"/>
|
||||
</resultMap>
|
||||
|
||||
<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,
|
||||
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,
|
||||
order_no, modify_time
|
||||
order_no, modify_time,ebom_version
|
||||
</sql>
|
||||
|
||||
<sql id="whr">
|
||||
|
|
|
|||
Loading…
Reference in New Issue