|
@@ -71,6 +71,9 @@ public class CostModelWxPriceServiceImpl extends ServiceImpl<CostModelWxPriceMap
|
|
|
params.setHeadRows(1);/*表头所占据的行数行数,默认1,代表标题占据一行*/
|
|
|
params.setNeedSave(true);
|
|
|
try {
|
|
|
+ int numRepeatData = 0;//记录重复数据的条数
|
|
|
+ int numErrorData = 0;//记录异常数据的条数
|
|
|
+
|
|
|
//1.从excel中获取到数据放入到list中
|
|
|
List<CostModelWxPrice> list = ExcelImportUtil.importExcel(file.getInputStream(), clazz, params);
|
|
|
// System.out.println("从excel表中获取的数据");
|
|
@@ -82,6 +85,9 @@ public class CostModelWxPriceServiceImpl extends ServiceImpl<CostModelWxPriceMap
|
|
|
if (!listNew.contains(wxp)) {
|
|
|
listNew.add(wxp);
|
|
|
}
|
|
|
+ else{
|
|
|
+ numRepeatData++;//重复数据加1
|
|
|
+ }
|
|
|
}
|
|
|
// System.out.println("列表去重后的数据");
|
|
|
// listNew.forEach(System.out::println);
|
|
@@ -96,7 +102,7 @@ public class CostModelWxPriceServiceImpl extends ServiceImpl<CostModelWxPriceMap
|
|
|
while(iterator.hasNext()){
|
|
|
CostModelWxPrice wxpNew = iterator.next();
|
|
|
//5.此处的条件可能更改,目前是外协项目、外协单位、单价最大值、单价最小值、计量单位都不为null的数据才能进行判断是否重复在确定是否录入数据
|
|
|
- if((wxpNew.getWxProject()!=null)&(wxpNew.getWxCompany()!=null)&(wxpNew.getMaxPrice()!=null)&(wxpNew.getMinPrice()!=null)&(wxpNew.getUnit()!=null)){
|
|
|
+ if((wxpNew.getWxProject()!=null)&&(wxpNew.getWxCompany()!=null)&&(wxpNew.getMaxPrice()!=null)&&(wxpNew.getMinPrice()!=null)&&(wxpNew.getUnit()!=null)){
|
|
|
boolean noRepeat = true; //用来判断数据是否重复
|
|
|
//6.从数据库中取出对应外协项目的数据内容
|
|
|
List<CostModelWxPrice> list1 = getWXPFProDetailList(wxpNew.getWxProject());
|
|
@@ -109,6 +115,7 @@ public class CostModelWxPriceServiceImpl extends ServiceImpl<CostModelWxPriceMap
|
|
|
if((Objects.equals(wxpNew.getMaxPrice(), wxp1.getMaxPrice()))&(Objects.equals(wxpNew.getMinPrice(), wxp1.getMinPrice()))&(Objects.equals(wxpNew.getUnit(), wxp1.getUnit()))&(Objects.equals(wxpNew.getWxCompany(), wxp1.getWxCompany()))){
|
|
|
iterator.remove();
|
|
|
noRepeat = false;
|
|
|
+ numRepeatData++;//重复数据加1
|
|
|
//System.out.println("当前元素重复,进行删除");
|
|
|
//listNew.forEach(System.out::println); //foreach中不能remove,不然会报错java.util.ConcurrentModificationException
|
|
|
break;//因为wxpNew元素已经被删除了,所有此段循环可以跳过了
|
|
@@ -129,6 +136,7 @@ public class CostModelWxPriceServiceImpl extends ServiceImpl<CostModelWxPriceMap
|
|
|
else{
|
|
|
//System.out.println("当前关键数据内容为空,删除");
|
|
|
iterator.remove();
|
|
|
+ numErrorData++;//异常数据++
|
|
|
}
|
|
|
}
|
|
|
// System.out.println("最终需要存入的数据");
|
|
@@ -143,7 +151,7 @@ public class CostModelWxPriceServiceImpl extends ServiceImpl<CostModelWxPriceMap
|
|
|
//1200条 saveBatch消耗时间3687毫秒 循环插入消耗时间5212毫秒
|
|
|
log.info("消耗时间" + (System.currentTimeMillis() - start) + "毫秒");
|
|
|
//update-end-author:taoyan date:20190528 for:批量插入数据
|
|
|
- return Result.ok("文件导入成功!数据行数:" + listNew.size());
|
|
|
+ return Result.ok("文件导入成功!数据行数:" + listNew.size() + ",重复数据行数:" + numRepeatData + ",异常数据行数:" + numErrorData);
|
|
|
} catch (Exception e) {
|
|
|
//update-begin-author:taoyan date:20211124 for: 导入数据重复增加提示
|
|
|
String msg = e.getMessage();
|