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文件"); return ResultVO.error("请上传Excel文件");
} }
originalParentService.importBom(file); 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); return ResultVO.success(true);
} }

View File

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

View File

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

View File

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

View File

@ -29,7 +29,7 @@
<delete id="delOriginalChildNotInRowIds"> <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=")"> <foreach collection="rowIds" item="rowId" open="(" separator="," close=")">
#{rowId} #{rowId}
</foreach> </foreach>