fix: 原始bom列表支持查询最后一级数据

This commit is contained in:
曹鹏飞 2024-03-29 16:07:15 +08:00
parent 0b0368993d
commit 55db281e14
4 changed files with 34 additions and 25 deletions

View File

@ -11,4 +11,6 @@ public class OriginalConstant {
public static final String COMMON_MATERIAL_CATEGORY_CODE = "200901";
public static final String NO_BOM_VERSION="A-1";
public static final String DEFAULT_BOM_VERSION="A00";
}

View File

@ -153,20 +153,29 @@ public class BomNewOriginalParentService extends ServiceImpl<BomNewOriginalParen
}
}
if (CollUtil.isNotEmpty(queryDrawingNos)) {
List<BomNewOriginalParentEntity> materialBoms = this.lambdaQuery().in(BomNewOriginalParentEntity::getDrawingNo, queryDrawingNos).eq(BomNewOriginalParentEntity::getLastVersionIs, 1)
.eq(BomNewOriginalParentEntity::getStatus, OriginalStatusEnum.UN_CONVERT.getValue()).list();
if(query.getStatus().equals(1) && CollUtil.isEmpty(materialBoms)){
return result;
}
// List<BomNewOriginalParentEntity> materialBoms = this.lambdaQuery().in(BomNewOriginalParentEntity::getDrawingNo, queryDrawingNos).eq(BomNewOriginalParentEntity::getLastVersionIs, 1)
// .eq(BomNewOriginalParentEntity::getStatus, OriginalStatusEnum.UN_CONVERT.getValue()).list();
// if(query.getStatus().equals(1) && CollUtil.isEmpty(materialBoms)){
// return result;
// }
List<String> parentDrawingNos = new ArrayList<>(getParentDrawingNoByMaterialNo(queryDrawingNos));
parentDrawingNos.addAll(queryDrawingNos);
if (CollUtil.isNotEmpty(parentDrawingNos)) {
List<BomOriginalListVO> parents = this.getBaseMapper().getParentForDrawingNoSeach(parentDrawingNos, query.getStatus());
materialMainService.intiMaterialInfo(parents, EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT);
List<BomOriginalListVO> childs = this.getBaseMapper().getChildForDrawingNoSeach(parentDrawingNos,query.getStatus());
List<BomOriginalListVO> data = new ArrayList<>();
data.addAll(parents);
data.addAll(childs);
materialMainService.intiMaterialInfo(data, EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT);
materialMainService.intiMaterialInfo(childs, EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT);
childs.stream().filter(f -> StrUtil.isBlank(f.getCurrentVersion())).forEach(f -> {
if (MaterialshouldBomExistUtil.checkShouldBomExist(f.getMaterialCategoryCode(), f.getMaterialGetType())) {
f.setCurrentVersion(OriginalConstant.NO_BOM_VERSION);
} else {
f.setCurrentVersion(OriginalConstant.DEFAULT_BOM_VERSION);
}
});
// List<BomOriginalListVO> data = new ArrayList<>();
// data.addAll(parents);
// data.addAll(childs);
// materialMainService.intiMaterialInfo(data, EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT);
result = handSeachToTree(parents, childs);
}
}
@ -486,11 +495,11 @@ public class BomNewOriginalParentService extends ServiceImpl<BomNewOriginalParen
//开始转换
for (BomNewOriginalParentEntity parent : bomNewOriginalParentEntities) {
if (!Objects.equals(parent.getCreatedBy(), SessionUtil.getUserCode())){
importOriginalBomVOList.add(new ImportOriginalBomVO(parent.getDrawingNo(),"非本人创建"));
log.warn(SessionUtil.getRealName()+"("+SessionUtil.getUserCode()+")转换原始bom("+parent.getRowId().toString()+")到ebom的操作被阻止");
continue;
}
// if (!Objects.equals(parent.getCreatedBy(), SessionUtil.getUserCode())){
// importOriginalBomVOList.add(new ImportOriginalBomVO(parent.getDrawingNo(),"非本人创建"));
// log.warn(SessionUtil.getRealName()+"("+SessionUtil.getUserCode()+")转换原始bom("+parent.getRowId().toString()+")到ebom的操作被阻止");
// continue;
// }
LogRecordContext.putVariable("bom",parent);
Long ebomRowId = IdWorker.getId();

View File

@ -28,15 +28,12 @@ public class MaterialshouldBomExistUtil {
}
public static boolean checkShouldBomExist(BaseMaterialVO material){
if(StrUtil.isNotBlank(material.getMaterialCategoryCode()) &&
(material.getMaterialCategoryCode().startsWith("30") || material.getMaterialCategoryCode().equals(OriginalConstant.COMMON_MATERIAL_CATEGORY_CODE) ||
( material.getMaterialCategoryCode().startsWith("20") && MaterialGetEnum.developing.equalsValue(material.getMaterialGetType()) ))){
return true;
}
return false;
return checkShouldBomExist(material.getMaterialCategoryCode(), material.getMaterialGetType());
}
public static boolean checkShouldBomExist(String materialCategoryCode, Integer materialGetType){
return StrUtil.isNotBlank(materialCategoryCode) &&
(materialCategoryCode.startsWith("30") || materialCategoryCode.equals(OriginalConstant.COMMON_MATERIAL_CATEGORY_CODE) ||
(materialCategoryCode.startsWith("20") && MaterialGetEnum.developing.equalsValue(materialGetType)));
}
}

View File

@ -216,8 +216,9 @@
<!--物料编码搜索-子级-->
<select id="getChildForDrawingNoSeach" resultType="com.nflg.product.bomnew.pojo.vo.BomOriginalListVO">
select if(#{state}=1 and c.status=2,3,c.status) as status ,c.current_version , c.created_by as bomCreatedBy
,c.devise_name,c.devise_user_code,c.dept_name ,
c.source, c.row_id as bomRowId, c.row_id as childBomRowId, b.*
,IFNULL(c.devise_name,a.devise_name) as devise_name,IFNULL(c.devise_user_code,a.devise_user_code) AS devise_user_code
,IFNULL(c.dept_name,a.dept_name) AS dept_name,IFNULL(c.source,a.source) AS source,IFNULL(c.row_id,"0") as bomRowId
,IFNULL(c.row_id,"0") as childBomRowId, b.*
from t_bom_new_original_parent a
join t_bom_new_original_child b on a.row_id =b.parent_row_id
left join t_bom_new_original_parent c on b.drawing_no=c.drawing_no and c.last_version_is=1