|
@@ -57,13 +57,20 @@ public class ProjectInformationService extends CrudService<ProjectInformationMap
|
|
|
Integer projectCount= projectInformationMapper.getProjectCount();
|
|
|
if(projectCount>0){
|
|
|
File multipartFile = transformMultipartFile(file);
|
|
|
- String multipartFileStr = multipartFile.getCanonicalPath().replaceAll("\\\\","/");
|
|
|
- returnMap.keySet().removeIf(key -> key == "repeat");
|
|
|
- returnMap.put("repeat","3");
|
|
|
- returnMap.put("success",true);
|
|
|
- returnMap.put("filePath",multipartFileStr);
|
|
|
- returnMap.keySet().removeIf(key -> key == "msg");
|
|
|
- returnMap.put("msg","已存在项目数据,是否覆盖?");
|
|
|
+ try{
|
|
|
+ //将文件存到服务器
|
|
|
+ String filePath = saveFile(multipartFile);
|
|
|
+ returnMap.keySet().removeIf(key -> key == "repeat");
|
|
|
+ returnMap.put("repeat","3");
|
|
|
+ returnMap.put("success",true);
|
|
|
+ returnMap.put("filePath",filePath);
|
|
|
+ returnMap.keySet().removeIf(key -> key == "msg");
|
|
|
+ returnMap.put("msg","已存在项目数据,是否覆盖?");
|
|
|
+ }catch (Exception e){
|
|
|
+ e.getMessage();
|
|
|
+ }finally {
|
|
|
+ multipartFile.delete();
|
|
|
+ }
|
|
|
}else{
|
|
|
returnMap.put("success",false);
|
|
|
}
|
|
@@ -80,6 +87,7 @@ public class ProjectInformationService extends CrudService<ProjectInformationMap
|
|
|
LinkedHashMap returnMap = new LinkedHashMap();
|
|
|
Integer index = 2;
|
|
|
Iterator<ProjectInformation> its = list.iterator();
|
|
|
+ Set<String> submissionFormIdSet = new HashSet<>();
|
|
|
while(its.hasNext()){
|
|
|
index ++ ;
|
|
|
ProjectInformation info = its.next();
|
|
@@ -87,19 +95,15 @@ public class ProjectInformationService extends CrudService<ProjectInformationMap
|
|
|
returnMap.put("success",false);
|
|
|
returnMap.put("msg","第" + index + "行,存在审定单id为空的数据,请确认后重新提交!");
|
|
|
return returnMap;
|
|
|
-// its.remove(); //根据主键 送审单id做判断,防止空值
|
|
|
}else if(StringUtils.isBlank(info.getProjectDefinitionNumber())){
|
|
|
returnMap.put("success",false);
|
|
|
returnMap.put("msg","第" + index + "行,存在项目定义号为空的数据,请确认后重新提交!");
|
|
|
return returnMap;
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
- Set<String> submissionFormIdSet = new HashSet<>();
|
|
|
- for (ProjectInformation importInfo : list){
|
|
|
//将审定单id放入set中
|
|
|
- submissionFormIdSet.add(importInfo.getSubmissionFormId());
|
|
|
+ submissionFormIdSet.add(info.getSubmissionFormId());
|
|
|
}
|
|
|
+
|
|
|
//将去重后的set转换为list 方便比较
|
|
|
List<String> submissionFormIdList = new ArrayList<>(submissionFormIdSet);
|
|
|
|
|
@@ -113,84 +117,29 @@ public class ProjectInformationService extends CrudService<ProjectInformationMap
|
|
|
|
|
|
//将项目信息的内容去重 遍历
|
|
|
List<ProjectInformation> projectInformationList = groupDistinctProjectInformation(list);
|
|
|
- /*Set<String> projectDefinitionNumberSet = new HashSet<>();//去重后的项目定义号
|
|
|
- for(int i=0;i<list.size();i++){ //遍历取出项目定义号
|
|
|
- projectDefinitionNumberSet.add(list.get(i).getProjectDefinitionNumber());
|
|
|
- }
|
|
|
- Iterator<String> projectDefinitionNumberIt = projectDefinitionNumberSet.iterator();//将项目定义号加入迭代器
|
|
|
- while(projectDefinitionNumberIt.hasNext()){//遍历迭代器,遍历list数据,当存在两个项目定义号相等时,存入新的list结合,为项目信息表的导入做准备
|
|
|
- String projectDefinitionNumber = projectDefinitionNumberIt.next();
|
|
|
- for(ProjectInformation info:list){
|
|
|
- if(info.getProjectDefinitionNumber().equals(projectDefinitionNumber)){
|
|
|
- projectInformationList.add(info);
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- }*/
|
|
|
-
|
|
|
-
|
|
|
- /*//方便快捷删除 找到对应重复数据,以便最后批量操作使用 审定单id
|
|
|
- List<String> codeList = projectInformationMapper.getSubmissionFormIdListBysubmissionFormIdList(submissionFormIdList); //即为重复数据的审定单id集合
|
|
|
- Iterator<ProjectInformation> it = list.iterator();
|
|
|
- if(codeList.size()!=0 && repeat.equals("0") && codeList != null) { //有重复值并且为第一次交互 就保存文件
|
|
|
- File copyFile = transformMultipartFile(file);
|
|
|
- //将文件存到服务器
|
|
|
- String filePath = saveFile(copyFile);
|
|
|
- returnMap.put("filePath",filePath);
|
|
|
- returnMap.keySet().removeIf(key -> key == "repeat");
|
|
|
- returnMap.put("repeat","3");
|
|
|
- returnMap.keySet().removeIf(key -> key == "msg");
|
|
|
- returnMap.put("success",true);
|
|
|
- returnMap.put("msg","已存在项目数据,是否覆盖?");
|
|
|
- return returnMap;
|
|
|
- }*/
|
|
|
-
|
|
|
- /*if(repeat.equals("2")) { //不覆盖 则删除list中的重复数据
|
|
|
- while (it.hasNext()) {
|
|
|
- ProjectInformation projectInformation = it.next();
|
|
|
- if (codeList.contains(projectInformation.getSubmissionFormId())) {
|
|
|
- it.remove();
|
|
|
- }
|
|
|
- }
|
|
|
- Iterator<ProjectInformation> projectIt = projectInformationList.iterator();
|
|
|
- while(projectIt.hasNext()){
|
|
|
- ProjectInformation projectInformation = projectIt.next();
|
|
|
- if(codeList.contains(projectInformation.getSubmissionFormId())){
|
|
|
- projectIt.remove();
|
|
|
- }
|
|
|
- }
|
|
|
- }else */
|
|
|
|
|
|
if(repeat.equals("1")){ //覆盖 则删除数据库中的重复数据
|
|
|
-
|
|
|
if(list.size()>0){
|
|
|
+ //提前保存读取的list的长度
|
|
|
+ int size = list.size();
|
|
|
//删除项目数据
|
|
|
projectInformationMapper.deleteAllProject();
|
|
|
//删除工程信息
|
|
|
projectInformationMapper.deleteAllSubmissionForm();
|
|
|
- }else{
|
|
|
- returnMap.keySet().removeIf(key -> key == "msg");
|
|
|
- returnMap.put("success",false);
|
|
|
- returnMap.put("msg","导入表数据量为0条,不进行替换");
|
|
|
- return returnMap;
|
|
|
- }
|
|
|
-
|
|
|
- //批量删除重复数据 覆盖操作
|
|
|
- //modifyHandmadeVindicateListTwo(codeList);
|
|
|
- }
|
|
|
|
|
|
- //提前保存读取的list的长度
|
|
|
- int size = list.size();
|
|
|
+ //批量新增 分批次新增
|
|
|
+ modifyHandmadeVindicateList(list);
|
|
|
+ modifyHandmadeVindicateList2(projectInformationList);
|
|
|
|
|
|
- //批量新增 分批次新增
|
|
|
- if(list.size()!=0) {
|
|
|
- modifyHandmadeVindicateList(list);
|
|
|
- modifyHandmadeVindicateList2(projectInformationList);
|
|
|
+ returnMap.keySet().removeIf(key -> key == "msg");
|
|
|
+ returnMap.put("success",true);
|
|
|
+ returnMap.put("msg","已成功导入 "+size+" 条项目信息记录");
|
|
|
+ }
|
|
|
+ returnMap.keySet().removeIf(key -> key == "msg");
|
|
|
+ returnMap.put("success",false);
|
|
|
+ returnMap.put("msg","导入表数据量为0条,不进行替换");
|
|
|
}
|
|
|
|
|
|
- returnMap.keySet().removeIf(key -> key == "msg");
|
|
|
- returnMap.put("success",true);
|
|
|
- returnMap.put("msg","已成功导入 "+size+" 条项目信息记录");
|
|
|
return returnMap;
|
|
|
}
|
|
|
|
|
@@ -220,7 +169,7 @@ public class ProjectInformationService extends CrudService<ProjectInformationMap
|
|
|
public String modifyHandmadeVindicateList(List<ProjectInformation> projectBasicsList){
|
|
|
//分批处理
|
|
|
if(null!=projectBasicsList && projectBasicsList.size()>0){
|
|
|
- int pointsDataLimit = 1000;//限制条数
|
|
|
+ int pointsDataLimit = 5000;//限制条数
|
|
|
Integer size = projectBasicsList.size();
|
|
|
//判断是否有必要分批
|
|
|
if(pointsDataLimit<size){
|
|
@@ -261,7 +210,7 @@ public class ProjectInformationService extends CrudService<ProjectInformationMap
|
|
|
public String modifyHandmadeVindicateList2(List<ProjectInformation> projectBasicsList){
|
|
|
//分批处理
|
|
|
if(null!=projectBasicsList && projectBasicsList.size()>0){
|
|
|
- int pointsDataLimit = 1000;//限制条数
|
|
|
+ int pointsDataLimit = 5000;//限制条数
|
|
|
Integer size = projectBasicsList.size();
|
|
|
//判断是否有必要分批
|
|
|
if(pointsDataLimit<size){
|
|
@@ -302,7 +251,7 @@ public class ProjectInformationService extends CrudService<ProjectInformationMap
|
|
|
public String modifyHandmadeVindicateListTwo(List<String> projectBasicsList){
|
|
|
//分批处理
|
|
|
if(null!=projectBasicsList && projectBasicsList.size()>0){
|
|
|
- int pointsDataLimit = 1000;//限制条数
|
|
|
+ int pointsDataLimit = 5000;//限制条数
|
|
|
Integer size = projectBasicsList.size();
|
|
|
//判断是否有必要分批
|
|
|
if(pointsDataLimit<size){
|