diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/OptionalBomConstant.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/OptionalBomConstant.java index 14f6113c..c0c08b7d 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/OptionalBomConstant.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/OptionalBomConstant.java @@ -64,7 +64,7 @@ public class OptionalBomConstant { NO(0, "无错误"), REPEAT (1, "重复的标配"), MATERIA_NO_UNKOWN (2, "无物料号"), - ALL (3, "同时满足"); + ALL (3, "同时满足(重复标配、无物料号)"); private final Integer value; private final String description; diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/aggreg/OptionalExcelService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/aggreg/OptionalExcelService.java index 305a7e51..baafa113 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/aggreg/OptionalExcelService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/aggreg/OptionalExcelService.java @@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.lang.TypeReference; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import cn.hutool.extra.spring.SpringUtil; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -30,10 +31,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.io.InputStream; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; @@ -198,6 +196,10 @@ public class OptionalExcelService { } //检查是否满足条件 除了‘无’ ,物料号不能为空 + String hintMsg=isValiData(optionalEbomInportExcelDTO.getOptionInfo()); + if(StrUtil.isEmpty(hintMsg)){ + throw new NflgBusinessException(STATE.Error,hintMsg); + } @@ -206,6 +208,46 @@ public class OptionalExcelService { return batchExcelToRepertory(optionalEbomInportExcelDTO); } + + + + private String isValiData(List excelList) { + + StringBuffer title=new StringBuffer(); + excelList.forEach(item->{ + List listParent = item.getChild(); + for (OptionalEbomImportDTO item1 :listParent){ + if(item1.isError()){ + + List listChild = item1.getChild(); + for(OptionalEbomImportChildDTO item2:listChild){ + if(item2.getError()== OptionalBomConstant.ExcelErrorTagEnum.REPEAT.getValue()){ + title.append(String.format("第%d行 %s\n",item2.getLineNo(),OptionalBomConstant.ExcelErrorTagEnum.REPEAT.getDescription())); + }else if(item2.getError()== OptionalBomConstant.ExcelErrorTagEnum.MATERIA_NO_UNKOWN.getValue()){ + title.append(String.format("第%d行 %s\n",item2.getLineNo(),OptionalBomConstant.ExcelErrorTagEnum.MATERIA_NO_UNKOWN.getDescription())); + }else if(item2.getError()== OptionalBomConstant.ExcelErrorTagEnum.ALL.getValue() ){ + title.append(String.format("第%d行 %s\n",item2.getLineNo(),OptionalBomConstant.ExcelErrorTagEnum.ALL.getDescription())); + } + + } + + + } + } + }); + + return title.toString(); + } + + + + + + + + + + @Transactional(rollbackFor = Exception.class) public Boolean batchExcelToRepertory(OptionalEbomImportExcelDTO ebomImportExcelDTO) {