问题修复
This commit is contained in:
parent
ae989f0b51
commit
b605864b08
|
|
@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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 = "数量")
|
||||||
|
|
|
||||||
|
|
@ -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();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue