| | |
| | | import java.io.*; |
| | | import java.text.DecimalFormat; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.LinkedList; |
| | | import java.util.List; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | @Service |
| | | public class ProductBomApprovingService { |
| | |
| | | short lastCellNum = row2.getLastCellNum(); |
| | | for (int k = 2; k < lastRowNum+1; k++) { |
| | | ProductBomApproving bomApproving = new ProductBomApproving(); |
| | | for (int j = 1; j < lastCellNum; j++) { |
| | | for (int j = 0; j < lastCellNum; j++) { |
| | | Row row = sheet.getRow(k); |
| | | Cell cell = row.getCell(j); |
| | | String cellValue = null; |
| | | Double cellValueInt = 0d; |
| | | if(j == 9){ |
| | | if(j == 9 ||j== 0){ |
| | | cellValueInt = cell.getNumericCellValue(); |
| | | }else if(j!=15){ |
| | | cellValue = cell.getStringCellValue(); |
| | | } |
| | | switch (j){ |
| | | case 0:{bomApproving.setId(cellValueInt.intValue());}break; |
| | | case 1:{bomApproving.setParentCode(cellValue);}break; |
| | | case 2:{bomApproving.setParentName(cellValue);}break; |
| | | case 3:{bomApproving.setParentModel(cellValue);}break; |
| | | case 4:{bomApproving.setCategory(cellValue);}break; |
| | | case 5:{ |
| | | bomApproving.setSubCode(cellValue); |
| | | case 5:{bomApproving.setSubCode(cellValue); }break; |
| | | case 6:{bomApproving.setSubName(cellValue);}break; |
| | | case 7:{ |
| | | bomApproving.setSubModel(cellValue); |
| | | //判断图纸查看是否存在 |
| | | bomApproving.setDwgExist(0); |
| | | String dwgFileName = cellValue+".dwg"; |
| | | for (int n = 0; n < dwgExistsList.size(); n++) { |
| | | FileUrlDTO fileUrlDTO = dwgExistsList.get(n); |
| | | if(dwgFileName.equals(fileUrlDTO.getFileName())){ |
| | | if(dwgFileName.toUpperCase().equals(fileUrlDTO.getFileName().toUpperCase())){ |
| | | //存在 |
| | | bomApproving.setDwgExist(1); |
| | | bomApproving.setDwgUrl(fileUrlDTO.getHttpFileUrl()); |
| | |
| | | } |
| | | } |
| | | }break; |
| | | case 6:{bomApproving.setSubName(cellValue);}break; |
| | | case 7:{bomApproving.setSubModel(cellValue);}break; |
| | | case 8:{bomApproving.setUnit(cellValue);}break; |
| | | case 9:{bomApproving.setQuantity(cellValueInt.intValue());}break; |
| | | case 10:{bomApproving.setProducer(cellValue);}break; |
| | |
| | | case 14:{bomApproving.setNotes(cellValue);}break; |
| | | case 15:{ |
| | | //图片,从0开始,到图片size为止 |
| | | int m = i-2; |
| | | int m = k-2; |
| | | if(m<allPictures.size()){ |
| | | PictureData pictureData = allPictures.get(m); |
| | | //图片存储 product_approving/username/2022-07/ |
| | |
| | | return response.set(1,false,excelName+"中货品编码:"+subCode+"在bom表中不存在"); |
| | | } |
| | | } |
| | | //处理名称重复的子件 |
| | | List<ProductBomApproving> newBomList = new LinkedList<>(); |
| | | Map<String, List<ProductBomApproving>> subNameMap = bomList.stream().collect(Collectors.groupingBy(ProductBomApproving::getSubName)); |
| | | subNameMap.forEach((subName,approvingList)->{ |
| | | if(approvingList.size()>1){ |
| | | for (int i = 0; i < approvingList.size(); i++) { |
| | | ProductBomApproving bomApproving = approvingList.get(i); |
| | | bomApproving.setSubName(subName+(i+1)); |
| | | newBomList.add(bomApproving); |
| | | } |
| | | }else{ |
| | | newBomList.addAll(approvingList); |
| | | } |
| | | }); |
| | | List<ProductBomApproving> collect = newBomList.stream().sorted(Comparator.comparing(ProductBomApproving::getId)).collect(Collectors.toList()); |
| | | String nextTitle = originalFilename.substring(0,originalFilename.lastIndexOf(".")); |
| | | return response.setIII(1,true,bomList,nextTitle,"解析完成"); |
| | | return response.setIII(1,true,collect,nextTitle,"解析完成"); |
| | | } |
| | | |
| | | private List<FileUrlDTO> getDwgList(List<String> fileList) { |