问题修复

This commit is contained in:
luoliming 2023-12-10 07:13:56 +08:00
parent ae989f0b51
commit b605864b08
3 changed files with 73 additions and 3 deletions

View File

@ -151,8 +151,8 @@ public class OriginalBomApi extends BaseApi {
} }
@ApiOperation("testaddMaterial") @ApiOperation("新增物料")
@GetMapping("新增物料") @GetMapping("testaddMaterial")
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public ResultVO<String> testaddMaterial(@RequestParam(value = "drawingNo" ,required = false)String drawingNo, public ResultVO<String> testaddMaterial(@RequestParam(value = "drawingNo" ,required = false)String drawingNo,
@RequestParam(value = "materialName" ,required = false)String materialName, @RequestParam(value = "materialName" ,required = false)String materialName,
@ -163,6 +163,32 @@ public class OriginalBomApi extends BaseApi {
} }
@ApiOperation("获取sessionKey")
@GetMapping("getSessionKey")
public ResultVO<String> getSessionKey() {
return ResultVO.success(SessionUtil.getSessionKey());
}
@ApiOperation("测试导入")
@PostMapping("testImportBom")
@Transactional(rollbackFor = Exception.class)
public ResultVO<Boolean> testImportBom() throws IOException {
InputStream inputStream=new FileInputStream("C:\\Users\\admin\\Desktop\\西卡印尼烘干线总站BOM.xlsx");
originalParentService.importBomTest(inputStream);
TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() {
@Override
public void afterCommit() {
originalParentService.computeLevelNumAndRootState();
}
});
return ResultVO.success(true);
}
} }

View File

@ -32,7 +32,7 @@ public class BomNewOriginalExcelDTO extends BaseImportExcelDTO {
private String materialName; private String materialName;
@ExcelColumn("材料") @ExcelColumn("材料")
private String excelMaterial; private String material;
@ExcelColumn(value = "数量") @ExcelColumn(value = "数量")

View File

@ -433,4 +433,48 @@ public class BomNewOriginalParentService extends ServiceImpl<BomNewOriginalParen
} }
@Transactional(rollbackFor = Exception.class)
public void importBomTest(InputStream file) throws IOException {
rowNum.set(1);
excelContextTL.set(new ArrayList<>());
String uuid = IdUtil.simpleUUID();
EecExcelUtil.handlerExcel(file, BomNewOriginalExcelDTO.class, BomNewOriginalParentService::handlerExcelRow);
List<BomNewOriginalExcelDTO> excelContext = excelContextTL.get();
List<Integer> noLevelNo = excelContext.stream().filter(u -> Objects.isNull(u.getLevelNo())).map(u->u.getRowNum()).collect(Collectors.toList());
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 )+"数量为空");
for (BomNewOriginalExcelDTO data : excelContext) {
List<BomNewOriginalExcelDTO> parentData = excelContext.stream().filter(u -> u.getLevelNo().equals(data.getLevelNo() - 1) && u.getRowNum() < data.getRowNum())
.sorted(Comparator.comparing(BomNewOriginalExcelDTO::getRowNum).reversed()).limit(1).collect(Collectors.toList());
data.setParentKey(CollUtil.isNotEmpty(parentData) ? StrUtil.join("-", parentData.get(0).getLevelNo(), parentData.get(0).getRowNum()) : "0");
data.setUuid(uuid);
}
//转换
for (BomNewOriginalExcelDTO data : excelContext) {
PlmBomToOriginalConvert convert = new PlmBomToOriginalConvert();
List<BomNewOriginalExcelDTO> chileds = excelContext.stream().filter(u -> u.getParentKey().equals(data.getLevelNo() + "-" + data.getRowNum())).collect(Collectors.toList());
if (CollUtil.isNotEmpty(chileds)) {
int i=1;
for (BomNewOriginalExcelDTO ch : chileds) {
ch.setOrderNo(i);
i++;
}
convert.convertOriginalBomFromExcel(Convert.convert(BomOriginalPlmBomVO.class, data), Convert.toList(BomOriginalPlmBomVO.class, chileds));
if (CollUtil.isNotEmpty(convert.getResultParent())) {
this.saveOrUpdateBatch(convert.getResultParent());
}
if (CollUtil.isNotEmpty(convert.getResultChild())) {
originalChildService.saveOrUpdateBatch(convert.getResultChild());
}
}
}
excelContextTL.remove();
}
} }