feat(移动破ebom): 物料名称如果有且仅有一个“无”字时才运允许导入

This commit is contained in:
曹鹏飞 2024-05-23 18:40:11 +08:00
parent 03f141fde2
commit e13b5662a5
3 changed files with 25 additions and 25 deletions

View File

@ -2,12 +2,11 @@ package com.nflg.product.bomnew.api.user;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.mzt.logapi.starter.annotation.LogRecord;
import com.nflg.product.base.core.api.BaseApi;
import com.nflg.product.base.core.conmon.util.SessionUtil;
import com.nflg.product.base.core.exception.NflgBusinessException;
import com.nflg.product.bomnew.constant.OptionalBomConstant;
@ -21,25 +20,29 @@ import com.nflg.product.bomnew.pojo.query.OptionalEbomConfigListQuery;
import com.nflg.product.bomnew.pojo.query.OptionalEbomImportChildQuery;
import com.nflg.product.bomnew.pojo.query.OptionalEbomMainListQuery;
import com.nflg.product.bomnew.pojo.vo.*;
import com.nflg.product.bomnew.service.*;
import com.nflg.product.bomnew.service.OptionalEbomConfigService;
import com.nflg.product.bomnew.service.OptionalEbomImportChildService;
import com.nflg.product.bomnew.service.OptionalEbomImportService;
import com.nflg.product.bomnew.service.OptionalEbomMainService;
import com.nflg.product.bomnew.service.aggreg.AggregOptionConfigService;
import com.nflg.product.bomnew.service.aggreg.OptionalExcelService;
import com.nflg.product.bomnew.service.aggreg.PublishMaterialService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import nflg.product.common.constant.STATE;
import nflg.product.common.vo.ResultVO;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.io.ClassPathResource;
import org.springframework.web.bind.annotation.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.nflg.product.base.core.api.BaseApi;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.net.URLEncoder;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Date;
import java.util.List;
import java.util.Objects;
@ -51,6 +54,7 @@ import java.util.Objects;
@RequestMapping("optional/ebom")
@Api(tags = "移动破ebom")
public class OptionalEbomApi extends BaseApi {
private static final Logger log = LoggerFactory.getLogger(OptionalEbomApi.class);
/**
* 服务对象
*/
@ -118,8 +122,10 @@ public class OptionalEbomApi extends BaseApi {
return ResultVO.success(true);
}
catch (NflgBusinessException ex){
log.error("导入excel数据", ex);
return ResultVO.error(ex.getState(),ex.getMsg());
}catch (Exception e){
log.error("导入excel数据", e);
return ResultVO.error(STATE.SystemErr,"出现异常,联系管理员,"+e.getMessage());
}

View File

@ -9,15 +9,12 @@ import cn.hutool.extra.spring.SpringUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mzt.logapi.context.LogRecordContext;
import com.nflg.product.base.core.conmon.util.SessionUtil;
import com.nflg.product.base.core.exception.NflgBusinessException;
import com.nflg.product.bomnew.constant.OptionalBomConstant;
import com.nflg.product.bomnew.mapper.master.OptionalEbomImportChildMapper;
import com.nflg.product.bomnew.pojo.dto.OptionalEbomImportChildAddDTO;
import com.nflg.product.bomnew.pojo.dto.OptionalEbomImportChildDTO;
import com.nflg.product.bomnew.pojo.dto.OptionalEbomMainDelDTO;
import com.nflg.product.bomnew.pojo.dto.OptionalEbomSubmitEditDTO;
import com.nflg.product.bomnew.pojo.entity.OptionalEbomConfigREntity;
@ -26,16 +23,14 @@ import com.nflg.product.bomnew.pojo.entity.OptionalEbomImportEntity;
import com.nflg.product.bomnew.pojo.entity.OptionalEbomMainEntity;
import com.nflg.product.bomnew.pojo.query.OptionalEbomImportChildQuery;
import com.nflg.product.bomnew.pojo.vo.BaseMaterialVO;
import com.nflg.product.bomnew.pojo.vo.OptionalEbomConfigRVO;
import com.nflg.product.bomnew.pojo.vo.OptionalEbomImportChildVO;
import nflg.product.common.constant.STATE;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
@ -142,7 +137,7 @@ public class OptionalEbomImportChildService extends ServiceImpl<OptionalEbomImpo
public void insertOptionAction(OptionalEbomImportChildEntity item) throws NflgBusinessException {
QueryWrapper<OptionalEbomImportChildEntity> queryWrapper3 = new QueryWrapper<>();
// 同一个机型下不可以存在相同的物料信息物料编号如果是的情况需同一个机型+同一个选项来做唯一判断
if (StrUtil.isEmpty(item.getMaterialNo()) && item.getMaterialName().equals("")) {
if (StrUtil.isEmpty(item.getMaterialNo())) {
queryWrapper3.lambda().eq(OptionalEbomImportChildEntity::getRootRowId, item.getRootRowId());
queryWrapper3.lambda().eq(OptionalEbomImportChildEntity::getParentRowId, item.getParentRowId());
queryWrapper3.lambda().eq(OptionalEbomImportChildEntity::getMaterialName, "");

View File

@ -63,7 +63,9 @@ public class OptionalExcelService {
for (ImportExcelField item :
v1) {
if (StrUtil.isEmpty(item.getCellSecond())) {
String materialName = item.getCellThird().trim();
if (StrUtil.isEmpty(item.getCellSecond()) && !materialName.equals("")) {
throw new NflgBusinessException(STATE.Error, StrUtil.format("第{}行, {} {}出现空物料数据", item.getLineNo(), optionalEbomImportLevel2Dto.getOptionName(), optionalEbomImportLevel2Dto.getOptionDrawingNo()));
}
@ -84,13 +86,10 @@ public class OptionalExcelService {
}
String materialName = item.getCellThird().trim();
levelDto3.setLineNo(item.getLineNo());
levelDto3.setPartType(OptionalBomConstant.PartTypeEnum.PART_TYPE_RADIO.getValue());
levelDto3.setMaterialNo(item.getCellSecond());
levelDto3.setTag(materialName.contains(""));
levelDto3.setTag(materialName.contentEquals(""));
// levelDto3.setMaterialDesc(materialName);
// levelDto3.setMaterialNo(materialName);
// levelDto3.setMaterialName(materialName);
@ -252,7 +251,7 @@ public class OptionalExcelService {
//检查选项下是否包含重复物料
Map<String,Long> frequencyMap = optionList.stream().collect(Collectors.groupingBy(OptionalEbomImportChildDTO::getMaterialNo, Collectors.counting()));
Map<String, Long> frequencyMap = optionList.stream().filter(o -> StrUtil.isNotBlank(o.getMaterialNo())).collect(Collectors.groupingBy(OptionalEbomImportChildDTO::getMaterialNo, Collectors.counting()));
List<String> duplicates = frequencyMap.entrySet().stream()
.filter(entry -> entry.getValue() > 1)
.map(Map.Entry::getKey)
@ -266,7 +265,7 @@ public class OptionalExcelService {
SpringUtil.getBean(MaterialMainService.class).intiMaterialInfo(optionList,OptionalEbomImportChildDTO::getMaterialNo);
for (OptionalEbomImportChildDTO childDTO : optionList) {
//!childDTO.getTag() &&
if (StringUtils.isEmpty(childDTO.getDrawingNo())) {
if (StrUtil.isNotBlank(childDTO.getMaterialNo()) && StringUtils.isEmpty(childDTO.getDrawingNo())) {
childDTO.setError(childDTO.getError() | OptionalBomConstant.ExcelErrorTagEnum.MATERIA_NO_UNKOWN.getValue());
optionalEbomImportDTO.setError(true);