Bladeren bron

Merge remote-tracking branch 'origin/master'

LLL 1 jaar geleden
bovenliggende
commit
ab55480000

+ 10 - 2
module_kzks/src/main/java/org/jeecg/modules/costModelWxPrice/service/impl/CostModelWxPriceServiceImpl.java

@@ -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();