feat(移动破ebom): 物料名称如果有且仅有一个“无”字时才运允许导入
This commit is contained in:
parent
03f141fde2
commit
e13b5662a5
|
|
@ -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());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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, "无");
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Reference in New Issue