1.bug修复

This commit is contained in:
大米 2023-12-12 18:37:23 +08:00
parent 2166a0a33f
commit 312004ee61
7 changed files with 38 additions and 33 deletions

View File

@ -140,12 +140,15 @@ public class OriginalBomApi extends BaseApi {
return ResultVO.error("请上传Excel文件");
}
originalParentService.importBom(file);
TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() {
@Override
public void afterCommit() {
originalParentService.computeLevelNumAndRootState();
}
});
//计算层级
originalParentService.computeLevelNumAndRootState();
// TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() {
// @Override
// public void afterCommit() {
// originalParentService.computeLevelNumAndRootState();
// }
// });
return ResultVO.success(true);
}

View File

@ -16,5 +16,5 @@ import java.util.List;
public interface BomNewOriginalChildMapper extends BaseMapper<BomNewOriginalChildEntity> {
void delOriginalChildNotInRowIds(@Param("rowIds")List<Long> rowIds);
void delOriginalChildNotInRowIds(@Param("rowIds")List<Long> rowIds ,@Param("parentRowId") Long parentRowId);
}

View File

@ -25,6 +25,7 @@ import com.nflg.product.bomnew.service.domain.OriginalBom.OriginalBomDetailTask;
import com.nflg.product.bomnew.service.domain.OriginalBom.OriginalBomToEBomConvert;
import com.nflg.product.bomnew.service.domain.OriginalBom.PlmBomToOriginalConvert;
import com.nflg.product.bomnew.util.*;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.map.LinkedMap;
import org.bouncycastle.cert.dane.DANEEntry;
import org.springframework.beans.factory.annotation.Qualifier;
@ -52,6 +53,7 @@ import java.util.stream.Stream;
* @since 2023-11-09 09:23:14
*/
@Service
@Slf4j
public class BomNewOriginalParentService extends ServiceImpl<BomNewOriginalParentMapper, BomNewOriginalParentEntity> {
@Resource
@ -110,8 +112,8 @@ public class BomNewOriginalParentService extends ServiceImpl<BomNewOriginalParen
if (CollUtil.isNotEmpty(childEntities)) {
//删除行
List<Long> delRowIds = bom.getBomList().stream().map(u->u.getRowId()).collect(Collectors.toList());
originalChildService.getBaseMapper().delOriginalChildNotInRowIds(delRowIds);
List<Long> delRowIds = bom.getBomList().stream().filter(u->u.getRowId()>0).map(u-> u.getRowId()).collect(Collectors.toList());
originalChildService.getBaseMapper().delOriginalChildNotInRowIds(delRowIds,bom.getParentRowId());
originalChildService.saveOrUpdateBatch(childEntities);
}
return true;
@ -282,16 +284,14 @@ public class BomNewOriginalParentService extends ServiceImpl<BomNewOriginalParen
*/
public void computeLevelNumAndRootState() {
//计算树的层级数
CompletableFuture.runAsync(() -> {
// CompletableFuture.runAsync(() -> {
try {
this.compucteLevelNum();
this.getBaseMapper().updateRootState();
} catch (ExecutionException e) {
throw new RuntimeException(e);
} catch (InterruptedException e) {
throw new RuntimeException(e);
} catch (Exception e) {
log.info("计算层级出错:"+e.getMessage());
}
});
// });
}
@ -390,8 +390,8 @@ public class BomNewOriginalParentService extends ServiceImpl<BomNewOriginalParen
VUtils.isTure(CollUtil.isNotEmpty(noLevelNo)).throwMessage(StrUtil.join(",",noLevelNo )+"层次为空");
List<Integer> noDrawingNo = excelContext.stream().filter(u -> StrUtil.isBlank(u.getChartNo())).map(u->u.getRowNum()).collect(Collectors.toList());
VUtils.isTure(CollUtil.isNotEmpty(noDrawingNo)).throwMessage(StrUtil.join(",",noDrawingNo )+"图号为空");
List<Integer> noNum = excelContext.stream().filter(u -> Objects.isNull(u.getQty())).map(u->u.getRowNum()).collect(Collectors.toList());
VUtils.isTure(CollUtil.isNotEmpty(noNum)).throwMessage( StrUtil.join(",",noNum )+"数量为空");
// List<Integer> noNum = excelContext.stream().filter(u -> Objects.isNull(u.getQty())).map(u->u.getRowNum()).collect(Collectors.toList());
// VUtils.isTure(CollUtil.isNotEmpty(noNum)).throwMessage( StrUtil.join(",",noNum )+"数量为空");
for (BomNewOriginalExcelDTO data : excelContext) {
List<BomNewOriginalExcelDTO> parentData = excelContext.stream().filter(u -> u.getLevelNo().equals(data.getLevelNo() - 1) && u.getRowNum() < data.getRowNum())

View File

@ -32,7 +32,7 @@ public class MaterialMateCache {
}
Pattern p = Pattern.compile(namePattern);
Pattern p2 = Pattern.compile(texturePattern);
if(p.matcher(mate.getMaterialName()).find() && p2.matcher(mate.getMaterialTexture()).find()){
if(p.matcher(materialName).find() && p2.matcher(materialTexture).find()){
return mate;
}
}

View File

@ -123,7 +123,7 @@ public abstract class BaseConvert {
parentEntity.setEditStatus(OriginalEditStatusEnum.HANDLER_CREATED.getValue());
parentEntity.setDeptRowId(SessionUtil.getPartRowId());
parentEntity.setDeptName(SessionUtil.getDepartName());
parentEntity.setRemark(material.getRemark());
parentEntity.setSource(originalSourceEnum.getValue());
parentEntity.setCreatedBy(SessionUtil.getUserCode());
parentEntity.setCreatedTime(LocalDateTime.now());
@ -154,6 +154,7 @@ public abstract class BaseConvert {
childEntity.setUnitWeight(material.getWeight());
childEntity.setNum(Convert.toBigDecimal(material.getQty()) );
childEntity.setCreatedBy(SessionUtil.getUserCode());
childEntity.setRemark(material.getRemark());
this.resultChild.add(childEntity);
return childEntity;

View File

@ -81,11 +81,11 @@ public class PlmBomToOriginalConvert extends BaseConvert {
//沒有原始BOM
if (Objects.isNull(originalBom)) {
BomNewOriginalParentEntity parentEntity = buildParentEntity(parent, "",originalSourceEnum);
if (StrUtil.isNotBlank(parent.getMaterialCategoryCode()) && parent.getMaterialCategoryCode().equals(OriginalConstant.COMMON_MATERIAL_CATEGORY_CODE) && CollUtil.isEmpty(childs)) {
handlerCommonMaterial(parentEntity);
} else {
// if (StrUtil.isNotBlank(parent.getMaterialCategoryCode()) && parent.getMaterialCategoryCode().equals(OriginalConstant.COMMON_MATERIAL_CATEGORY_CODE) && CollUtil.isEmpty(childs)) {
// handlerCommonMaterial(parentEntity);
// } else {
handlerChild(parentEntity,originalSourceEnum);
}
// }
} else { //有原始BOM
//草稿状态
if (OriginalStatusEnum.UN_CONVERT.equalsValue(originalBom.getStatus())) {
@ -157,15 +157,16 @@ public class PlmBomToOriginalConvert extends BaseConvert {
//一般零部件
if (StrUtil.isNotBlank(childVo.getMaterialCategoryCode()) && childVo.getMaterialCategoryCode().equals(OriginalConstant.COMMON_MATERIAL_CATEGORY_CODE)) {
//通过规则- 获取子级物料
BomNewOriginalParentEntity originalBomForMaterial = getOriginalBomForMaterial(childVo.getChartNo());
List<BomNewOriginalParentEntity> parentResultOne = this.resultParent.stream().filter(u -> u.getDrawingNo().equals(childVo.getChartNo())).collect(Collectors.toList());
if(StrUtil.isNotBlank(childVo.getMaterialNo())) {
if (Objects.isNull(originalBomForMaterial) && CollUtil.isEmpty(parentResultOne)) {
childVo.setCreatedBy(parentEntity.getCreatedBy());
BomNewOriginalParentEntity parentEntity1 = buildParentEntity(childVo, "", originalSourceEnum);
handlerCommonMaterial(parentEntity1);
}
}else {
// BomNewOriginalParentEntity originalBomForMaterial = getOriginalBomForMaterial(childVo.getChartNo());
// List<BomNewOriginalParentEntity> parentResultOne = this.resultParent.stream().filter(u -> u.getDrawingNo().equals(childVo.getChartNo())).collect(Collectors.toList());
// if(StrUtil.isNotBlank(childVo.getMaterialNo())) {
// if (Objects.isNull(originalBomForMaterial) && CollUtil.isEmpty(parentResultOne)) {
// childVo.setCreatedBy(parentEntity.getCreatedBy());
// BomNewOriginalParentEntity parentEntity1 = buildParentEntity(childVo, "", originalSourceEnum);
// handlerCommonMaterial(parentEntity1);
// }
// }else
if(StrUtil.isBlank(childVo.getMaterialNo())) {
handlerCommonMaterialForReplace(childVo);
}
buildChildEntity(childVo,parentEntity);

View File

@ -29,7 +29,7 @@
<delete id="delOriginalChildNotInRowIds">
delete from t_bom_new_original_child where row_id not in
delete from t_bom_new_original_child where parent_row_id=#{parentRowId} and row_id not in
<foreach collection="rowIds" item="rowId" open="(" separator="," close=")">
#{rowId}
</foreach>