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

View File

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

View File

@ -216,8 +216,9 @@
<!--物料编码搜索-子级--> <!--物料编码搜索-子级-->
<select id="getChildForDrawingNoSeach" resultType="com.nflg.product.bomnew.pojo.vo.BomOriginalListVO"> <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 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 , ,IFNULL(c.devise_name,a.devise_name) as devise_name,IFNULL(c.devise_user_code,a.devise_user_code) AS devise_user_code
c.source, c.row_id as bomRowId, c.row_id as childBomRowId, b.* ,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 from t_bom_new_original_parent a
join t_bom_new_original_child b on a.row_id =b.parent_row_id 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 left join t_bom_new_original_parent c on b.drawing_no=c.drawing_no and c.last_version_is=1