lxw
2022-08-13 b72144f43b9851a9fc30678115869cca451af6e7
src/main/java/com/whyc/service/ProductBomApprovingService.java
@@ -22,10 +22,8 @@
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 {
@@ -160,29 +158,32 @@
                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());
@@ -190,8 +191,6 @@
                                    }
                                }
                            }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;
@@ -201,7 +200,7 @@
                            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/
@@ -362,8 +361,23 @@
                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) {