fix: 修复原始bom精确搜索问题

This commit is contained in:
曹鹏飞 2024-04-12 14:41:37 +08:00
parent efd58784e7
commit 376bf37de1
3 changed files with 17 additions and 38 deletions

View File

@ -8,6 +8,7 @@ import com.nflg.product.bomnew.pojo.vo.BomOriginalListVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Set;
/**
* t_bom_new_original_parent 表数据库访问层
@ -57,9 +58,9 @@ public interface BomNewOriginalParentMapper extends BaseMapper<BomNewOriginalPar
* @param InHasConvertBomIs
* @return
*/
List<BomOriginalListVO> getParentForDrawingNoSeach(@Param("drawingNos") List<String> drawingNos ,@Param("state") Integer state);
List<BomOriginalListVO> getParentForDrawingNoSeach(@Param("drawingNos") Set<String> drawingNos, @Param("state") Integer state);
List<BomOriginalListVO> getChildForDrawingNoSeach(@Param("drawingNos") List<String> drawingNos,@Param("state") Integer state);
List<BomOriginalListVO> getChildForDrawingNoSeach(@Param("drawingNos") Set<String> drawingNos, @Param("state") Integer state);
void resetBomExist(Long rowId);

View File

@ -157,18 +157,13 @@ 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<String> parentDrawingNos = new ArrayList<>(getParentDrawingNoByMaterialNo(queryDrawingNos));
Set<String> parentDrawingNos = new HashSet<>(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);
materialMainService.intiMaterialInfo(parents, EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT2);
List<BomOriginalListVO> childs = this.getBaseMapper().getChildForDrawingNoSeach(parentDrawingNos,query.getStatus());
materialMainService.intiMaterialInfo(childs, EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT);
materialMainService.intiMaterialInfo(childs, EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT2);
childs.stream().filter(f -> StrUtil.isBlank(f.getCurrentVersion())).forEach(f -> {
if (MaterialshouldBomExistUtil.checkShouldBomExist(f.getMaterialCategoryCode(), f.getMaterialGetType())) {
f.setCurrentVersion(OriginalConstant.NO_BOM_VERSION);
@ -176,10 +171,6 @@ public class BomNewOriginalParentService extends ServiceImpl<BomNewOriginalParen
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);
}
}
@ -194,7 +185,6 @@ public class BomNewOriginalParentService extends ServiceImpl<BomNewOriginalParen
return result;
}
/**
* 编辑时-暂存
*
@ -274,7 +264,6 @@ public class BomNewOriginalParentService extends ServiceImpl<BomNewOriginalParen
} else {
child.setCurrentVersion(parentEntity.getCurrentVersion());
}
child.setStatus(parentEntity.getStatus());
child.setDeviseName(parentEntity.getDeviseName());
child.setDeviseUserCode(parentEntity.getDeviseUserCode());
// child.setCreatedBy(parentEntity.getCreatedBy());
@ -285,7 +274,8 @@ public class BomNewOriginalParentService extends ServiceImpl<BomNewOriginalParen
child.setLevelNum(parentEntity.getLevelNum());
child.setDeptName(parentEntity.getDeptName());
child.setSource(parentEntity.getSource());
if (parentEntity.getStatus().equals(OriginalStatusEnum.OVER_CONVERT.getValue())) {
if (Objects.equals(parent.getStatus(), OriginalStatusEnum.UN_CONVERT.getValue())
&& !parentEntity.getStatus().equals(OriginalStatusEnum.UN_CONVERT.getValue())) {
child.setStatus(OriginalStatusEnum.BORROWED_PARTS.getValue());
}
//非本人则为借用件

View File

@ -182,7 +182,7 @@
<foreach collection="materialNos" item="materialNo" open="(" separator="," close=")">
#{materialNo}
</foreach>
union all
union
select drawing_no from t_bom_new_original_parent where material_no in
<foreach collection="materialNos" item="materialNo" open="(" separator="," close=")">
#{materialNo}
@ -192,37 +192,25 @@
<!--物料编码搜索-父级-->
<select id="getParentForDrawingNoSeach" resultType="com.nflg.product.bomnew.pojo.vo.BomOriginalListVO">
SELECT if(#{state}=1 and status=2,3,status) as status, created_by as bomCreatedBy , row_id as bomRowId, row_id as childBomRowId, a.*
FROM t_bom_new_original_parent a where 1=1
<!-- <if test="state==1">-->
<!-- and a.last_version_is=1-->
<!-- <if test="InHasConvertBomIs">-->
<!-- and a.status=1-->
<!-- </if>-->
<!-- </if>-->
<if test="state==2">
and current_version in ( select current_version from t_bom_new_original_parent where status &gt;1 and drawing_no in
<foreach collection="drawingNos" item="item" open="(" separator="," close=")">
#{item}
</foreach>
)
</if>
and drawing_no in
SELECT status,row_id as bomRowId, row_id as childBomRowId, a.*
FROM t_bom_new_original_parent a
where status=#{state}
and drawing_no in
<foreach collection="drawingNos" item="item" open="(" separator="," close=")">
#{item}
</foreach>
order by created_time desc
order by row_id desc
</select>
<!--物料编码搜索-子级-->
<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 IFNULL(IF(a.`status`=1 and c.`status`!=1,3,c.`status`),a.`status`) `status`,c.current_version
,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
where a.last_version_is=1 and b.drawing_no in
left join t_bom_new_original_parent c on b.drawing_no=c.drawing_no
where b.`status` = #{state} and b.drawing_no in
<foreach collection="drawingNos" item="item" open="(" separator="," close=")">
#{item}
</foreach>