原始BOM转Ebom接口返回数据类型改为List<ImportOriginalBomVO>,将转换失败的原因返回
This commit is contained in:
parent
70ae5fe31a
commit
90a3568945
|
|
@ -157,16 +157,16 @@ public class OriginalBomApi extends BaseApi {
|
|||
@LogRecord(success = "删除BOM-图号:{{#bom.drawingNo}} 版本:{{#bom.currentVersion}},操作结果:{{#_ret}}",
|
||||
bizNo = "{{#bomRowIds.toString()}}" ,type = "原始BOM转Ebom")
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public ResultVO<Boolean> convertToEBom(@RequestBody List<Long> bomRowIds) throws ExecutionException, InterruptedException {
|
||||
public ResultVO<List<ImportOriginalBomVO>> convertToEBom(@RequestBody List<Long> bomRowIds) throws ExecutionException, InterruptedException {
|
||||
|
||||
VUtils.isTure(CollUtil.isEmpty(bomRowIds)).throwMessage("请选择要转换的BOM");
|
||||
VUtils.isTure(bomRowIds.size() > 20).throwMessage("你选择的BOM数据大于20");
|
||||
originalParentService.convertToEBom(bomRowIds);
|
||||
List<ImportOriginalBomVO> result = originalParentService.convertToEBom(bomRowIds);
|
||||
//更新物料使用
|
||||
bomNewEbomChildMapper.updateEBomMaterialUse();
|
||||
|
||||
//更新-原始BOM跟节点
|
||||
CompletableFuture.runAsync(()->{
|
||||
CompletableFuture.runAsync(() -> {
|
||||
originalParentService.getBaseMapper().updateRootState_2(OriginalStatusEnum.OVER_CONVERT.getValue());
|
||||
originalParentService.getBaseMapper().updateRootState_3(OriginalStatusEnum.OVER_CONVERT.getValue());
|
||||
});
|
||||
|
|
@ -174,9 +174,7 @@ public class OriginalBomApi extends BaseApi {
|
|||
//跟新EBom 根节点
|
||||
ebomParentService.getBaseMapper().updateRootState();
|
||||
|
||||
|
||||
return ResultVO.success(true);
|
||||
|
||||
return ResultVO.success(result);
|
||||
}
|
||||
|
||||
@GetMapping("getOriginalBomExcelTemplate")
|
||||
|
|
|
|||
|
|
@ -472,32 +472,38 @@ public class BomNewOriginalParentService extends ServiceImpl<BomNewOriginalParen
|
|||
*
|
||||
* @return
|
||||
*/
|
||||
public Boolean convertToEBom(List<Long> bomRowIds) throws ExecutionException, InterruptedException {
|
||||
public List<ImportOriginalBomVO> convertToEBom(List<Long> bomRowIds) throws ExecutionException, InterruptedException {
|
||||
List<BomNewOriginalParentEntity> bomNewOriginalParentEntities = this.getBaseMapper().selectBatchIds(bomRowIds);
|
||||
|
||||
//List<BomNewOriginalParentEntity> convertedBom = bomNewOriginalParentEntities.stream().filter(u -> OriginalStatusEnum.OVER_CONVERT.equalsValue(u.getStatus())).collect(Collectors.toList());
|
||||
// VUtils.isTure(CollUtil.isNotEmpty(convertedBom)).throwMessage("所选BOM中存在已转换的BOM");
|
||||
//检查:有子级的物料编码不能为空
|
||||
|
||||
List<ImportOriginalBomVO> importOriginalBomVOList = new ArrayList<>();
|
||||
|
||||
//开始转换
|
||||
for (BomNewOriginalParentEntity parent : bomNewOriginalParentEntities) {
|
||||
|
||||
if (!Objects.equals(parent.getCreatedBy(), SessionUtil.getUserCode())){
|
||||
importOriginalBomVOList.add(new ImportOriginalBomVO(parent.getDrawingNo(),"非本人创建"));
|
||||
log.warn(SessionUtil.getRealName()+"("+SessionUtil.getUserCode()+")转换原始bom("+parent.getRowId().toString()+")到ebom的操作被阻止");
|
||||
continue;
|
||||
}
|
||||
|
||||
LogRecordContext.putVariable("bom",parent);
|
||||
Long ebomRowId = IdWorker.getId();
|
||||
convertToEBomDo(parent, ebomRowId);
|
||||
|
||||
try {
|
||||
convertToEBomDo(parent, ebomRowId);
|
||||
} catch (Exception e) {
|
||||
importOriginalBomVOList.add(new ImportOriginalBomVO(parent.getDrawingNo(), "操作失败:" + e.getMessage()));
|
||||
throw e;
|
||||
}
|
||||
|
||||
//更新并保存异常信息
|
||||
ebomParentService.checkAndSaveEBomException(ebomRowId);
|
||||
|
||||
}
|
||||
return true;
|
||||
|
||||
return importOriginalBomVOList;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Reference in New Issue