fix(ebom): 转正式表时设置转换人姓名

This commit is contained in:
曹鹏飞 2024-06-07 15:30:08 +08:00
parent 9b64e55981
commit b577689855
2 changed files with 17 additions and 29 deletions

View File

@ -62,7 +62,7 @@ public interface BomNewEbomParentMapper extends BaseMapper<BomNewEbomParentEntit
void delBatch(@Param("rowIds") List<Long> rowIds);
void updateStateBatchByRowIds(@Param("status") Integer status, @Param("list") List<Long> list );
void updateStateBatchByRowIds(@Param("status") Integer status, String userName, @Param("list") List<Long> list);
Integer checkIsRoot(@Param("materialNo") String materialNo);

View File

@ -342,16 +342,16 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
List<BomNewEbomParentVO> parentChild = this.getBaseMapper().getParentChild(rowId);
//排除项目类别的赋值
List<BaseMaterialVO> materialVOS = materialMainService.intiMaterialInfoInPattern(parentChild, "^21 | ^31", EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT2);
materialMainService.intiMaterialInfoInPattern(parentChild, "^21 | ^31", EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT2);
if (CollUtil.isNotEmpty(parentChild)) {
List<String> materialNos = parentChild.stream().map(BaseMaterialVO::getMaterialNo).filter(StrUtil::isNotBlank).collect(Collectors.toList());
if (CollUtil.isNotEmpty(materialNos)) {
List<BomNewEbomParentEntity> list = this.lambdaQuery().in(BomNewEbomParentEntity::getMaterialNo, materialNos)
.eq(!EBomStatusEnum.PUBLISHED.equalsValue(parent.getStatus()), BomNewEbomParentEntity::getLastVersionIs, 1)
.eq(EBomStatusEnum.PUBLISHED.equalsValue(parent.getStatus()), BomNewEbomParentEntity::getStatus, EBomStatusEnum.PUBLISHED.getValue()).list();
if (EBomStatusEnum.CHECKED.equalsValue(parent.getStatus())) {
list = list.stream().filter(u -> EBomStatusEnum.CHECKED.equalsValue(u.getStatus())).collect(Collectors.toList());
}
// if (EBomStatusEnum.CHECKED.equalsValue(parent.getStatus())) {
// list = list.stream().filter(u -> EBomStatusEnum.CHECKED.equalsValue(u.getStatus())).collect(Collectors.toList());
// }
Map<String, BomNewEbomParentEntity> bomListMap = list.parallelStream()
.collect(Collectors.toMap(
BomNewEbomParentEntity::getMaterialNo, // key: DrawingNo
@ -391,6 +391,7 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
&& parentEntity.getStatus().equals(EBomStatusEnum.PUBLISHED.getValue())) {
child.setStatus(EBomStatusEnum.BORROWED_PARTS.getValue());
child.setBomRowId(0L);
child.setCurrentVersion(parentEntity.getCurrentVersion());
}
// //非本人则为借用件
// else if (!parentEntity.getCreatedBy().equals(child.getCreatedBy())) {
@ -926,7 +927,7 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
// }
List<Long> bomRowIds = bomTree.stream().filter(u -> u.getBomRowId() > 0).map(u -> u.getBomRowId()).collect(Collectors.toList());
if (CollUtil.isNotEmpty(bomRowIds)) {
this.getBaseMapper().updateStateBatchByRowIds(EBomStatusEnum.PUBLISHED.getValue(), bomRowIds);
this.getBaseMapper().updateStateBatchByRowIds(EBomStatusEnum.PUBLISHED.getValue(), SessionUtil.getRealName(), bomRowIds);
//将历史已发布版-转移到正式历史表
eBomToFormal(bomRowIds, bomTree.stream().filter(u -> u.getBomRowId() > 0).collect(Collectors.toList()) );
}
@ -2574,21 +2575,22 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
@Transactional(rollbackFor = Exception.class)
public Boolean deleteBomV2(Long bomRowId) {
BomNewEbomParentEntity root = getById(bomRowId);
VUtils.isTure(Objects.isNull(root)).throwMessage("bom不存在");
VUtils.isTure(root.getRootIs() != 1 && root.getUserRootIs() != 1).throwMessage("请选择根节点");
VUtils.isTure(!StrUtil.equals(root.getCreatedBy(), SessionUtil.getUserCode())).throwMessage("不能删除他人的数据");
BomNewEbomParentEntity parent = getById(bomRowId);
VUtils.isTure(Objects.isNull(parent)).throwMessage("bom不存在");
// VUtils.isTure(root.getRootIs() != 1 && root.getUserRootIs() != 1).throwMessage("请选择根节点");
delete(root);
LogRecordContext.putVariable("bom", parent);
delete(parent);
CompletableFuture.runAsync(this::updateLastVersionIs);
return true;
}
private void delete(BomNewEbomParentEntity parent) {
if (!StrUtil.equals(parent.getCreatedBy(), SessionUtil.getUserCode())) {
return;
}
VUtils.isTure(!(StrUtil.equals(parent.getCreatedBy(), SessionUtil.getUserCode())
|| Objects.equals(parent.getVirtualPackageIs(), 1)))
.throwMessage("只能删除虚拟包和自己创建的数据");
this.getBaseMapper().delete(Wrappers.lambdaQuery(BomNewEbomParentEntity.class)
.eq(BomNewEbomParentEntity::getRowId, parent.getRowId()));
@ -2615,22 +2617,8 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
if (CollUtil.isEmpty(parents)) return;
List<BomNewEbomParentEntity> deleteParents = parents.stream()
.filter(p -> (StrUtil.equals(p.getCreatedBy(), SessionUtil.getUserCode())
&& (Objects.equals(p.getSource(), EBomSourceEnum.FROM_BOM.getValue()) || Objects.equals(p.getSource(), EBomSourceEnum.FROM_EXCE.getValue())))
|| Objects.equals(p.getVirtualPackageIs(), 1))
.filter(p -> StrUtil.equals(p.getCreatedBy(), SessionUtil.getUserCode()) || Objects.equals(p.getVirtualPackageIs(), 1))
.collect(Collectors.toList());
//将自己手动创建的bom提为用户顶层
List<BomNewEbomParentEntity> updateParents = parents.stream()
.filter(p -> StrUtil.equals(p.getCreatedBy(), SessionUtil.getUserCode()))
.collect(Collectors.toList());
updateParents.removeAll(deleteParents);
if (CollUtil.isNotEmpty(updateParents)) {
this.lambdaUpdate()
.set(BomNewEbomParentEntity::getUserRootIs, 1)
.set(BomNewEbomParentEntity::getModifyTime, LocalDateTime.now())
.in(BomNewEbomParentEntity::getRowId, updateParents.stream().map(BomNewEbomParentEntity::getRowId).collect(Collectors.toList()));
}
deleteParents.forEach(this::delete);
}