【物料变更】大批量导入
This commit is contained in:
parent
842b9b48ff
commit
bc1a959489
|
|
@ -52,6 +52,7 @@ import java.io.IOException;
|
|||
import java.time.LocalDate;
|
||||
import java.time.ZoneId;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
|
|
@ -372,7 +373,6 @@ public class MaterialUpdateBillService extends ServiceImpl<MaterialUpdateBillMap
|
|||
}
|
||||
|
||||
int lastColIndex = ExcelReader.read(file.getInputStream()).sheet(0).getHeader().getLastColumnIndex();
|
||||
List<MaterialUpdateBillEntity> ents = new ArrayList<>();
|
||||
|
||||
AuthorityDepartmentEntity deptEnt = departmentService.getById(SessionUtil.getPartRowId());
|
||||
if (Objects.isNull(deptEnt)) {
|
||||
|
|
@ -394,6 +394,38 @@ public class MaterialUpdateBillService extends ServiceImpl<MaterialUpdateBillMap
|
|||
|
||||
if (lastColIndex == 4) {
|
||||
List<MaterialStateUpExcelDTO> excelContext = EecExcelUtil.getExcelContext(file.getInputStream(), MaterialStateUpExcelDTO.class);
|
||||
if (CollectionUtil.isNotEmpty(excelContext) && excelContext.size() > 1000) {
|
||||
// 大数据量,子线程分批次提交OA(每批1000条),主线程提前返回结果给前端
|
||||
CompletableFuture<Void> task1 = CompletableFuture.runAsync(() -> {
|
||||
List<List<MaterialStateUpExcelDTO>> lists = Lists.partition(excelContext, 1000);
|
||||
lists.forEach(items -> this.handleImportDataForState(items, applyDeptName, deptEnt));
|
||||
});
|
||||
task1.join();
|
||||
} else {
|
||||
this.handleImportDataForState(excelContext, applyDeptName, deptEnt);
|
||||
}
|
||||
} else {
|
||||
// 制作物料
|
||||
List<TwentyMaterialTemplateExcelDTO> excelContext = EecExcelUtil.getExcelContext(file.getInputStream(), TwentyMaterialTemplateExcelDTO.class);
|
||||
if (CollectionUtil.isNotEmpty(excelContext) && excelContext.size() > 1000) {
|
||||
// 大数据量,子线程分批次提交OA(每批1000条),主线程提前返回结果给前端
|
||||
CompletableFuture<Void> task1 = CompletableFuture.runAsync(() -> {
|
||||
List<List<TwentyMaterialTemplateExcelDTO>> lists = Lists.partition(excelContext, 1000);
|
||||
lists.forEach(items -> this.handleImportDataForSummary(items, applyDeptName, deptEnt));
|
||||
});
|
||||
task1.join();
|
||||
} else {
|
||||
this.handleImportDataForSummary(excelContext, applyDeptName, deptEnt);
|
||||
}
|
||||
}
|
||||
return ResultVO.success(Boolean.TRUE);
|
||||
}
|
||||
|
||||
/**
|
||||
* 状态变更
|
||||
*/
|
||||
private ResultVO<Boolean> handleImportDataForState(List<MaterialStateUpExcelDTO> excelContext, String applyDeptName, AuthorityDepartmentEntity deptEnt) {
|
||||
List<MaterialUpdateBillEntity> ents = new ArrayList<>();
|
||||
excelContext = excelContext.stream().filter(u -> StrUtil.isNotBlank(u.getMaterialNo())).collect(Collectors.toList());
|
||||
if (excelContext.size() <= 0) {
|
||||
return ResultVO.error("导入内容不允许为空");
|
||||
|
|
@ -501,9 +533,14 @@ public class MaterialUpdateBillService extends ServiceImpl<MaterialUpdateBillMap
|
|||
materialMainService.updateBatchById(updateList);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// 制作物料
|
||||
List<TwentyMaterialTemplateExcelDTO> excelContext = EecExcelUtil.getExcelContext(file.getInputStream(), TwentyMaterialTemplateExcelDTO.class);
|
||||
return ResultVO.success(Boolean.TRUE);
|
||||
}
|
||||
|
||||
/**
|
||||
* 制作物料综合变更
|
||||
*/
|
||||
private ResultVO<Boolean> handleImportDataForSummary(List<TwentyMaterialTemplateExcelDTO> excelContext, String applyDeptName, AuthorityDepartmentEntity deptEnt) {
|
||||
List<MaterialUpdateBillEntity> ents = new ArrayList<>();
|
||||
excelContext = excelContext.stream().filter(u -> StrUtil.isNotBlank(u.getMaterialNo())).collect(Collectors.toList());
|
||||
if (excelContext.size() <= 0) {
|
||||
return ResultVO.error("导入内容不允许为空");
|
||||
|
|
@ -648,8 +685,6 @@ public class MaterialUpdateBillService extends ServiceImpl<MaterialUpdateBillMap
|
|||
//同步OA
|
||||
materialUpdateToOAService.sysnToOa(ents);
|
||||
}
|
||||
return ResultVO.success(Boolean.TRUE);
|
||||
}
|
||||
|
||||
// 申请部门是 营销中心,11,21变更,由冻结改成其他状态,不允许改成激活
|
||||
private void validateFreezeStateChangeOther(List<MaterialUpdateBillEntity> updateList, String applyDeptCode) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue