fix: 修复原始bom转ebom时,会将子节点为引用件也转走的问题

This commit is contained in:
曹鹏飞 2024-04-01 21:39:39 +08:00
parent 20913fd684
commit f0b0edf6bf
2 changed files with 13 additions and 6 deletions

View File

@ -78,8 +78,8 @@ public class BomNewOriginalParentService extends ServiceImpl<BomNewOriginalParen
@Resource
MaterialMainService materialMainService;
@Resource
BomNewOriginalParentService parentService;
// @Resource
// BomNewOriginalParentService parentService;
@Resource
BomNewOriginalMaterialUseService originalMaterialUseService;
@ -246,7 +246,7 @@ public class BomNewOriginalParentService extends ServiceImpl<BomNewOriginalParen
* @return
*/
public List<BomOriginalListVO> getChild(Long rowId) {
BomNewOriginalParentEntity parent = parentService.getBaseMapper().selectById(rowId);
BomNewOriginalParentEntity parent = this.getBaseMapper().selectById(rowId);
List<BomOriginalListVO> parentChild = this.getBaseMapper().getParentChild(rowId);
materialMainService.intiMaterialInfo(parentChild);
if (CollUtil.isNotEmpty(parentChild)) {
@ -289,6 +289,13 @@ public class BomNewOriginalParentService extends ServiceImpl<BomNewOriginalParen
child.setDeviseUserCode(parent.getDeviseUserCode());
child.setDeviseName(parent.getDeviseName());
child.setDeptName(parent.getDeptName());
if (child.getBomRowId() > 0) {
// 子级节点状态与父级节点状态不一致时子级节点重置为0
BomNewOriginalParentEntity p = this.getBaseMapper().selectById(child.getBomRowId());
if (!p.getStatus().equals(child.getStatus())) {
child.setBomRowId(0L);
}
}
try {
if (MaterialshouldBomExistUtil.checkShouldBomExist(child)) {
child.setCurrentVersion(OriginalConstant.NO_BOM_VERSION);
@ -503,7 +510,7 @@ public class BomNewOriginalParentService extends ServiceImpl<BomNewOriginalParen
for (BomNewOriginalParentEntity parent : bomNewOriginalParentEntities) {
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的操作被阻止");
continue;
}

View File

@ -18,7 +18,6 @@ import com.nflg.product.bomnew.pojo.entity.BomNewEbomParentEntity;
import com.nflg.product.bomnew.pojo.entity.BomNewOriginalParentEntity;
import com.nflg.product.bomnew.pojo.vo.BaseMaterialVO;
import com.nflg.product.bomnew.pojo.vo.BomOriginalListVO;
import com.nflg.product.bomnew.pojo.vo.BomOriginalPlmBomVO;
import com.nflg.product.bomnew.pojo.vo.MaterialMateVO;
import com.nflg.product.bomnew.service.BomNewEbomParentService;
import com.nflg.product.bomnew.service.MaterialMainService;
@ -96,7 +95,8 @@ public class OriginalBomToEBomConvert extends BaseConvert {
//处理子级
List<BomOriginalListVO> bomParents = bomDetail.stream().filter(u -> u.getBomRowId() > 0 && ( OriginalStatusEnum.UN_CONVERT.equalsValue(u.getStatus()) || OriginalStatusEnum.REFERENCE.equalsValue(u.getStatus())) ).collect(Collectors.toList());
//List<BomOriginalListVO> bomParents = bomDetail.stream().filter(u -> u.getBomRowId() > 0 && ( OriginalStatusEnum.UN_CONVERT.equalsValue(u.getStatus()) || OriginalStatusEnum.REFERENCE.equalsValue(u.getStatus()))).collect(Collectors.toList());
List<BomOriginalListVO> bomParents = bomDetail.stream().filter(u -> u.getBomRowId() > 0 && OriginalStatusEnum.UN_CONVERT.equalsValue(u.getStatus())).collect(Collectors.toList());
//去重
bomParents= ListCommonUtil.toDistinct(bomParents,BomOriginalListVO::getBomRowId);
for (BomOriginalListVO childParent : bomParents) {