| | |
| | | import com.whyc.pojo.BOMFeedback; |
| | | import com.whyc.pojo.BomAcceptance; |
| | | import com.whyc.pojo.DefectiveProducts; |
| | | import com.whyc.pojo.ProductHistory; |
| | | import com.whyc.util.ActionUtil; |
| | | import com.whyc.util.CommonUtil; |
| | | import com.whyc.util.FileUtil; |
| | | import org.apache.poi.hssf.usermodel.*; |
| | | import org.apache.poi.ss.usermodel.BorderStyle; |
| | | import org.apache.poi.ss.usermodel.ClientAnchor; |
| | | import org.apache.poi.ss.usermodel.IndexedColors; |
| | | import org.apache.poi.ss.util.CellRangeAddress; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import java.io.File; |
| | | import java.io.IOException; |
| | | import javax.imageio.ImageIO; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.awt.image.BufferedImage; |
| | | import java.io.*; |
| | | import java.net.URLEncoder; |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | |
| | | |
| | | //上传产品验收信息 |
| | | public Response uploadBomAcceptance(MultipartFile fileLeft, MultipartFile fileRight, MultipartFile fileFront, MultipartFile fileBack |
| | | ,MultipartFile agreement, List<MultipartFile> multipartFileList, BomAcceptance bomAcceptance) throws IOException { |
| | | ,MultipartFile agreement,MultipartFile bomManual,MultipartFile testReport |
| | | ,MultipartFile icdFile,MultipartFile cadPicpart,MultipartFile namePlate |
| | | , List<MultipartFile> multipartFileList,List<MultipartFile> installCasePics |
| | | , BomAcceptance bomAcceptance) throws IOException { |
| | | Date date = new Date(); |
| | | bomAcceptance.setCreateTime(date); |
| | | long time = date.getTime(); |
| | |
| | | } |
| | | bomAcceptance.setSparePicpart(spareDirSuffix); |
| | | } |
| | | //现场安装案例照片 |
| | | if(installCasePics!=null && installCasePics.size()!=0){ |
| | | String installCasePicDirSuffix = "acceptance_bom" + File.separator + time + File.separator+ "install" + File.separator; |
| | | String installCasePicDir = rootFile + installCasePicDirSuffix; |
| | | File fileDir = new File(installCasePicDir); |
| | | if (!fileDir.exists()) { |
| | | fileDir.mkdirs(); |
| | | } |
| | | for (int i = 0; i < installCasePics.size(); i++) { |
| | | MultipartFile multipartFile = installCasePics.get(i); |
| | | //存储文件 |
| | | String originalFilename = multipartFile.getOriginalFilename(); |
| | | String fileName = originalFilename.substring(0, originalFilename.lastIndexOf(".")); |
| | | String suffix = originalFilename.substring(originalFilename.lastIndexOf(".")); |
| | | String sparePath = installCasePicDir + fileName + suffix; |
| | | File file = new File(sparePath); |
| | | multipartFile.transferTo(file); |
| | | } |
| | | bomAcceptance.setInstallPic(installCasePicDirSuffix); |
| | | } |
| | | |
| | | String devDirSuffix = "acceptance_bom" + File.separator + time + File.separator+ "dev" + File.separator; |
| | | String devDir = rootFile + devDirSuffix; |
| | | //左视图 |
| | |
| | | agreement.transferTo(new File(path)); |
| | | bomAcceptance.setBomAgreement("doc_file" + File.separator + agreeDirSuffix+originalFilename); |
| | | } |
| | | String bomManualDirSuffix = "acceptance_bom" + File.separator + time + File.separator+ "bomManual" + File.separator; |
| | | String bomManualDir = rootFile + bomManualDirSuffix; |
| | | //说明书(文件) |
| | | if(bomManual!=null){ |
| | | //存储文件 |
| | | String originalFilename = bomManual.getOriginalFilename(); |
| | | String fileName = originalFilename.substring(0, originalFilename.lastIndexOf(".")); |
| | | String suffix = originalFilename.substring(originalFilename.lastIndexOf(".")); |
| | | String path = bomManualDir + fileName + suffix; |
| | | createFilefolderIFNotExist(path); |
| | | bomManual.transferTo(new File(path)); |
| | | bomAcceptance.setBomManual("doc_file" + File.separator + bomManualDirSuffix+originalFilename); |
| | | } |
| | | String testReportDirSuffix = "acceptance_bom" + File.separator + time + File.separator+ "testReport" + File.separator; |
| | | String testReportDir = rootFile + testReportDirSuffix; |
| | | //检测报告(文件) |
| | | if(testReport!=null){ |
| | | //存储文件 |
| | | String originalFilename = testReport.getOriginalFilename(); |
| | | String fileName = originalFilename.substring(0, originalFilename.lastIndexOf(".")); |
| | | String suffix = originalFilename.substring(originalFilename.lastIndexOf(".")); |
| | | String path = testReportDir + fileName + suffix; |
| | | createFilefolderIFNotExist(path); |
| | | testReport.transferTo(new File(path)); |
| | | bomAcceptance.setTestReport("doc_file" + File.separator + testReportDirSuffix+originalFilename); |
| | | } |
| | | String icdFileDirSuffix = "acceptance_bom" + File.separator + time + File.separator+ "icdFile" + File.separator; |
| | | String icdFileDir = rootFile + icdFileDirSuffix; |
| | | //ICD文件 |
| | | if(icdFile!=null){ |
| | | //存储文件 |
| | | String originalFilename = icdFile.getOriginalFilename(); |
| | | String fileName = originalFilename.substring(0, originalFilename.lastIndexOf(".")); |
| | | String suffix = originalFilename.substring(originalFilename.lastIndexOf(".")); |
| | | String path = icdFileDir + fileName + suffix; |
| | | createFilefolderIFNotExist(path); |
| | | icdFile.transferTo(new File(path)); |
| | | bomAcceptance.setIcdFile("doc_file" + File.separator + icdFileDirSuffix+originalFilename); |
| | | } |
| | | String cadPicpartDirSuffix = "acceptance_bom" + File.separator + time + File.separator+ "cadPicpart" + File.separator; |
| | | String cadPicpartDir = rootFile + cadPicpartDirSuffix; |
| | | //施工图纸(文件) |
| | | if(cadPicpart!=null){ |
| | | //存储文件 |
| | | String originalFilename = cadPicpart.getOriginalFilename(); |
| | | String fileName = originalFilename.substring(0, originalFilename.lastIndexOf(".")); |
| | | String suffix = originalFilename.substring(originalFilename.lastIndexOf(".")); |
| | | String path = cadPicpartDir + fileName + suffix; |
| | | createFilefolderIFNotExist(path); |
| | | cadPicpart.transferTo(new File(path)); |
| | | bomAcceptance.setCadPicpart("doc_file" + File.separator + cadPicpartDirSuffix+originalFilename); |
| | | } |
| | | String namePlateDirSuffix = "acceptance_bom" + File.separator + time + File.separator+ "namePlate" + File.separator; |
| | | String namePlateDir = rootFile + namePlateDirSuffix; |
| | | //铭牌信息(文件) |
| | | if(namePlate!=null){ |
| | | //存储文件 |
| | | String originalFilename = namePlate.getOriginalFilename(); |
| | | String fileName = originalFilename.substring(0, originalFilename.lastIndexOf(".")); |
| | | String suffix = originalFilename.substring(originalFilename.lastIndexOf(".")); |
| | | String path = namePlateDir + fileName + suffix; |
| | | createFilefolderIFNotExist(path); |
| | | namePlate.transferTo(new File(path)); |
| | | bomAcceptance.setNamePlate("doc_file" + File.separator + namePlateDirSuffix+originalFilename); |
| | | } |
| | | mapper.insert(bomAcceptance); |
| | | return new Response().set(1,true,"上传成功"); |
| | | } |
| | |
| | | if(bomAcceptance.getCreateTime1()!=null){ |
| | | wrapper.le("create_time",bomAcceptance.getCreateTime1()); |
| | | } |
| | | wrapper.orderByDesc("create_time"); |
| | | List<BomAcceptance> list = mapper.selectList(wrapper); |
| | | String rootFile = CommonUtil.getRootFile();//主路径 |
| | | if(list!=null&&list.size()>0){ |
| | | for (BomAcceptance acceptance:list) { |
| | | String filePath=rootFile+acceptance.getSparePicpart(); |
| | | String sparefilePath=rootFile+acceptance.getSparePicpart(); |
| | | acceptance.setSparePicpart("doc_file"+File.separator+acceptance.getSparePicpart()); |
| | | //获取文件夹下所有的图片名 |
| | | acceptance.setNameList(FileUtil.getFileNameWithOutDirectory(filePath)); |
| | | acceptance.setNameList(FileUtil.getFileNameWithOutDirectory(sparefilePath)); |
| | | |
| | | String installfilePath=rootFile+acceptance.getInstallPic(); |
| | | acceptance.setInstallPic("doc_file"+File.separator+acceptance.getInstallPic()); |
| | | //获取文件夹下所有的图片名 |
| | | acceptance.setInstallList(FileUtil.getFileNameWithOutDirectory(installfilePath)); |
| | | } |
| | | } |
| | | PageInfo pageInfo=new PageInfo(list); |
| | |
| | | public Response updateBomAcceptance(BomAcceptance bomAcceptance) { |
| | | UpdateWrapper wrapper=new UpdateWrapper(); |
| | | wrapper.eq("num",bomAcceptance.getNum()); |
| | | mapper.update(bomAcceptance,wrapper); |
| | | if(bomAcceptance.getDirectName()!=null){ |
| | | wrapper.set("direct_name",bomAcceptance.getDirectName()); |
| | | } |
| | | if(bomAcceptance.getBomSeries()!=null){ |
| | | wrapper.set("bom_series",bomAcceptance.getBomSeries()); |
| | | } |
| | | if(bomAcceptance.getBomModel()!=null){ |
| | | wrapper.set("bom_model",bomAcceptance.getBomModel()); |
| | | } |
| | | if(bomAcceptance.getDevParam()!=null){ |
| | | wrapper.set("dev_param",bomAcceptance.getDevParam()); |
| | | } |
| | | if(bomAcceptance.getStandParam()!=null){ |
| | | wrapper.set("stand_param",bomAcceptance.getStandParam()); |
| | | } |
| | | if(bomAcceptance.getBomSize()!=null){ |
| | | wrapper.set("bom_size",bomAcceptance.getBomSize()); |
| | | } |
| | | if(bomAcceptance.getDevWeight()!=null){ |
| | | wrapper.set("dev_weight",bomAcceptance.getDevWeight()); |
| | | } |
| | | if(bomAcceptance.getDevWeightAll()!=null){ |
| | | wrapper.set("dev_weight_all",bomAcceptance.getDevWeightAll()); |
| | | } |
| | | if(bomAcceptance.getSparePartmodel()!=null){ |
| | | wrapper.set("spare_partmodel",bomAcceptance.getSparePartmodel()); |
| | | } |
| | | if(bomAcceptance.getBomVersion()!=null){ |
| | | wrapper.set("bom_version",bomAcceptance.getBomVersion()); |
| | | } |
| | | |
| | | mapper.update(null,wrapper); |
| | | return new Response().set(1,true,"编辑成功"); |
| | | } |
| | | //删除图 |
| | | public void delPic(int num, int picNum,String picUrl,String newPicUrl) { |
| | | String rootFile = CommonUtil.getRootFile();//主路径 |
| | | public Response delPic(int num, int picNum,String picUrl) { |
| | | UpdateWrapper wrapper=new UpdateWrapper(); |
| | | wrapper.eq("num",num); |
| | | if(picNum==1){ |
| | | wrapper.set("dev_picleft",newPicUrl); |
| | | wrapper.set("dev_picleft",""); |
| | | } |
| | | if(picNum==2){ |
| | | wrapper.set("dev_picright",newPicUrl); |
| | | wrapper.set("dev_picright",""); |
| | | } |
| | | if(picNum==3){ |
| | | wrapper.set("dev_picfront",newPicUrl); |
| | | wrapper.set("dev_picfront",""); |
| | | } |
| | | if(picNum==4){ |
| | | wrapper.set("dev_picback",newPicUrl); |
| | | wrapper.set("dev_picback",""); |
| | | } |
| | | if(picNum==5){ |
| | | /*if(picNum==5){ |
| | | wrapper.set("spare_picpart",newPicUrl); |
| | | } |
| | | }*/ |
| | | if(picNum==6){ |
| | | wrapper.set("bom_agreement",newPicUrl); |
| | | wrapper.set("bom_agreement",""); |
| | | } |
| | | int flag=mapper.update(null,wrapper); |
| | | if(flag>0){ |
| | | rootFile=rootFile.replace("doc_file",""); |
| | | //删除图片 |
| | | FileUtil.deleteFile(new File(rootFile+picUrl)); |
| | | if(picNum==7){ |
| | | wrapper.set("bom_manual",""); |
| | | } |
| | | if(picNum==8){ |
| | | wrapper.set("test_report",""); |
| | | } |
| | | if(picNum==9){ |
| | | wrapper.set("icd_file",""); |
| | | } |
| | | if(picNum==10){ |
| | | wrapper.set("cad_picpart",""); |
| | | } |
| | | if(picNum==11){ |
| | | wrapper.set("name_plate",""); |
| | | } |
| | | /*if(picNum==12){ |
| | | wrapper.set("install_pic",newPicUrl); |
| | | }*/ |
| | | int flag=0; |
| | | if(picNum!=12&&picNum!=5){//文件时修改表的记录 |
| | | mapper.update(null,wrapper); |
| | | flag=1; |
| | | }else{ |
| | | String rootFile = CommonUtil.getRootFile();//主路径 |
| | | picUrl=picUrl.replace("doc_file\\acceptance_bom",""); |
| | | String picPath=rootFile+File.separator+"acceptance_bom"+File.separator+picUrl; |
| | | if(picNum==5){ |
| | | //判断文件路径是否包含spare |
| | | if(picPath.contains("spare")){ |
| | | File file = new File(picPath); |
| | | if(file.isFile()){ |
| | | //删除图片 |
| | | FileUtil.deleteFile(file); |
| | | flag=1; |
| | | } |
| | | } |
| | | } |
| | | if(picNum==12){ |
| | | //判断文件路径是否包含install |
| | | if(picPath.contains("install")){ |
| | | File file = new File(picPath); |
| | | if(file.isFile()){ |
| | | //删除图片 |
| | | FileUtil.deleteFile(file); |
| | | flag=1; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | return new Response().set(1,flag>0,flag>0?"删除图片成功":"删除图片失败,路径不正确"); |
| | | } |
| | | //编辑单个图片上传 |
| | | public Response updateDevPic(MultipartFile filePic, int num,int picNum,String picUrl) throws IOException { |
| | | public Response updateDevPic(MultipartFile filePic, int num,int picNum) throws IOException { |
| | | Date date = new Date(); |
| | | long time = date.getTime(); |
| | | String rootFile = CommonUtil.getRootFile(); |
| | | String devDirSuffix = "acceptance_bom" + File.separator + time + File.separator+ "dev" + File.separator; |
| | | String devDirSuffix = "acceptance_bom" + File.separator + time + File.separator; |
| | | if(picNum==1){ |
| | | devDirSuffix=devDirSuffix+"dev"+ File.separator; |
| | | } |
| | | if(picNum==2){ |
| | | devDirSuffix=devDirSuffix+"dev"+ File.separator; |
| | | } |
| | | if(picNum==3){ |
| | | devDirSuffix=devDirSuffix+"dev"+ File.separator; |
| | | } |
| | | if(picNum==4){ |
| | | devDirSuffix=devDirSuffix+"dev"+ File.separator; |
| | | } |
| | | if(picNum==6){ |
| | | devDirSuffix=devDirSuffix+"agree"+ File.separator; |
| | | } |
| | | if(picNum==7){ |
| | | devDirSuffix=devDirSuffix+"bomManual"+ File.separator; |
| | | } |
| | | if(picNum==8){ |
| | | devDirSuffix=devDirSuffix+"testReport"+ File.separator; |
| | | } |
| | | if(picNum==9){ |
| | | devDirSuffix=devDirSuffix+"icdFile"+ File.separator; |
| | | } |
| | | if(picNum==10){ |
| | | devDirSuffix=devDirSuffix+"cadPicpart"+ File.separator; |
| | | } |
| | | if(picNum==11){ |
| | | devDirSuffix=devDirSuffix+"namePlate"+ File.separator; |
| | | } |
| | | String devDir = rootFile + devDirSuffix; |
| | | //后面图 |
| | | if(filePic!=null){ |
| | | //存储文件 |
| | | String originalFilename = filePic.getOriginalFilename(); |
| | |
| | | createFilefolderIFNotExist(path); |
| | | filePic.transferTo(new File(path)); |
| | | String devFile="doc_file" + File.separator + devDirSuffix+originalFilename; |
| | | //删除旧的 |
| | | delPic(num,picNum,picUrl,devFile); |
| | | UpdateWrapper wrapper=new UpdateWrapper(); |
| | | if(picNum==1){ |
| | | wrapper.set("dev_picleft",devFile); |
| | | } |
| | | if(picNum==2){ |
| | | wrapper.set("dev_picright",devFile); |
| | | } |
| | | if(picNum==3){ |
| | | wrapper.set("dev_picfront",devFile); |
| | | } |
| | | if(picNum==4){ |
| | | wrapper.set("dev_picback",devFile); |
| | | } |
| | | if(picNum==6){ |
| | | wrapper.set("bom_agreement",devFile); |
| | | } |
| | | if(picNum==7){ |
| | | wrapper.set("bom_manual",devFile); |
| | | } |
| | | if(picNum==8){ |
| | | wrapper.set("test_report",devFile); |
| | | } |
| | | if(picNum==9){ |
| | | wrapper.set("icd_file",devFile); |
| | | } |
| | | if(picNum==10){ |
| | | wrapper.set("cad_picpart",devFile); |
| | | } |
| | | if(picNum==11){ |
| | | wrapper.set("name_plate",devFile); |
| | | } |
| | | wrapper.eq("num",num); |
| | | mapper.update(null,wrapper); |
| | | return new Response().set(1,true,"上传新图片成功"); |
| | | }else{ |
| | | return new Response().set(1,false,"图片不存在"); |
| | | } |
| | | } |
| | | //编辑多个图片上传 |
| | | public Response updatePartPic(List<MultipartFile> multipartFileList, String picUrl) throws IOException { |
| | | public Response updatePartPic(List<MultipartFile> multipartFileList, int num) throws IOException { |
| | | String rootFile = CommonUtil.getRootFile(); |
| | | rootFile=rootFile.replace("doc_file",""); |
| | | QueryWrapper wrapper=new QueryWrapper(); |
| | | wrapper.eq("num",num); |
| | | wrapper.last("limit 1"); |
| | | BomAcceptance bomAcceptance=mapper.selectOne(wrapper); |
| | | String picUrl=bomAcceptance.getSparePicpart(); |
| | | String spareUrl=""; |
| | | if(picUrl==null||picUrl.isEmpty()){ |
| | | long time =new Date().getTime(); |
| | | spareUrl= "acceptance_bom" + File.separator + time + File.separator+ "spare" + File.separator; |
| | | String spareDir = rootFile + spareUrl; |
| | | File fileDir = new File(spareDir); |
| | | if (!fileDir.exists()) { |
| | | fileDir.mkdirs(); |
| | | } |
| | | }else{ |
| | | spareUrl=picUrl; |
| | | } |
| | | //配件存储 |
| | | if(multipartFileList!=null && multipartFileList.size()!=0){ |
| | | for (int i = 0; i < multipartFileList.size(); i++) { |
| | |
| | | String originalFilename = multipartFile.getOriginalFilename(); |
| | | String fileName = originalFilename.substring(0, originalFilename.lastIndexOf(".")); |
| | | String suffix = originalFilename.substring(originalFilename.lastIndexOf(".")); |
| | | String sparePath = rootFile+picUrl + fileName + suffix; |
| | | String sparePath = rootFile+spareUrl + fileName + suffix; |
| | | File file = new File(sparePath); |
| | | multipartFile.transferTo(file); |
| | | //如果原路径为空 |
| | | if(picUrl==null||picUrl.isEmpty()){ |
| | | UpdateWrapper wrapper1=new UpdateWrapper(); |
| | | wrapper1.set("spare_picpart",spareUrl); |
| | | wrapper1.eq("num",num); |
| | | mapper.update(null,wrapper1); |
| | | } |
| | | } |
| | | return new Response().set(1,true,"上传成功"); |
| | | }else{ |
| | | return new Response().set(1,false,"图片不存在"); |
| | | } |
| | | } |
| | | //编辑现场安装图片多个图片上传 |
| | | public Response updateInstallPic(List<MultipartFile> multipartFileList, int num) throws IOException { |
| | | String rootFile = CommonUtil.getRootFile(); |
| | | QueryWrapper wrapper=new QueryWrapper(); |
| | | wrapper.eq("num",num); |
| | | wrapper.last("limit 1"); |
| | | BomAcceptance bomAcceptance=mapper.selectOne(wrapper); |
| | | String picUrl=bomAcceptance.getInstallPic(); |
| | | String installUrl=""; |
| | | if(picUrl==null||picUrl.isEmpty()){ |
| | | long time =new Date().getTime(); |
| | | installUrl= "acceptance_bom" + File.separator + time + File.separator+ "install" + File.separator; |
| | | String spareDir = rootFile + installUrl; |
| | | File fileDir = new File(spareDir); |
| | | if (!fileDir.exists()) { |
| | | fileDir.mkdirs(); |
| | | } |
| | | }else{ |
| | | installUrl=picUrl; |
| | | } |
| | | //配件存储 |
| | | if(multipartFileList!=null && multipartFileList.size()!=0){ |
| | | for (int i = 0; i < multipartFileList.size(); i++) { |
| | | MultipartFile multipartFile = multipartFileList.get(i); |
| | | //存储文件 |
| | | String originalFilename = multipartFile.getOriginalFilename(); |
| | | String fileName = originalFilename.substring(0, originalFilename.lastIndexOf(".")); |
| | | String suffix = originalFilename.substring(originalFilename.lastIndexOf(".")); |
| | | String installPath = rootFile+installUrl + fileName + suffix; |
| | | File file = new File(installPath); |
| | | multipartFile.transferTo(file); |
| | | //如果原路径为空 |
| | | if(picUrl==null||picUrl.isEmpty()){ |
| | | UpdateWrapper wrapper1=new UpdateWrapper(); |
| | | wrapper1.set("install_pic",installUrl); |
| | | wrapper1.eq("num",num); |
| | | mapper.update(null,wrapper1); |
| | | } |
| | | } |
| | | return new Response().set(1,true,"上传成功"); |
| | | }else{ |
| | | return new Response().set(1,false,"图片不存在"); |
| | | } |
| | | } |
| | | |
| | | //导出产品验收信息 |
| | | public void downloadBomAcceptance(HttpServletRequest req, HttpServletResponse resp, int num) { |
| | | //读取产品信息 |
| | | QueryWrapper wrapper=new QueryWrapper(); |
| | | wrapper.eq("num",num); |
| | | wrapper.last("limit 1"); |
| | | BomAcceptance bomAcceptance=mapper.selectOne(wrapper); |
| | | //生成excel |
| | | creatBomAcceptanceExcel(resp,bomAcceptance); |
| | | } |
| | | //生成excel |
| | | private void creatBomAcceptanceExcel( HttpServletResponse resp, BomAcceptance bomAcceptance) { |
| | | String rootFile = CommonUtil.getRootFile(); |
| | | List<String> sparePicList=new ArrayList<>(); |
| | | if(bomAcceptance.getSparePicpart()!=null||!bomAcceptance.getSparePicpart().isEmpty()){ |
| | | String filePath=rootFile+bomAcceptance.getSparePicpart(); |
| | | //获取文件夹下所有的图片名 |
| | | sparePicList=FileUtil.getFileNameWithOutDirectory(filePath); |
| | | } |
| | | List<String> installPicList=new ArrayList<>(); |
| | | if(bomAcceptance.getInstallPic()!=null||!bomAcceptance.getInstallPic().isEmpty()){ |
| | | String filePath=rootFile+bomAcceptance.getInstallPic(); |
| | | //获取文件夹下所有的图片名 |
| | | installPicList=FileUtil.getFileNameWithOutDirectory(filePath); |
| | | } |
| | | |
| | | String devRoot=rootFile.replace("doc_file", ""); |
| | | List<String> devPicList=new ArrayList<>(); |
| | | devPicList.add(bomAcceptance.getDevPicleft()); |
| | | devPicList.add(bomAcceptance.getDevPicfront()); |
| | | devPicList.add(bomAcceptance.getDevPicright()); |
| | | devPicList.add(bomAcceptance.getDevPicback()); |
| | | |
| | | String fileName="产品验收信息记录"; |
| | | //创建单个sheet |
| | | HSSFWorkbook wb = new HSSFWorkbook(); |
| | | //字体格式-加粗 |
| | | HSSFCellStyle cellStyle = wb.createCellStyle(); |
| | | cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); |
| | | cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); |
| | | |
| | | cellStyle.setBorderBottom(BorderStyle.THICK); |
| | | cellStyle.setBorderLeft(BorderStyle.THICK); |
| | | cellStyle.setBorderRight(BorderStyle.THICK); |
| | | cellStyle.setBorderTop(BorderStyle.THICK); |
| | | |
| | | HSSFFont font = wb.createFont(); |
| | | font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); |
| | | cellStyle.setFont(font); |
| | | HSSFSheet sheet = wb.createSheet("产品验收信息记录"); |
| | | sheet.setColumnWidth(0,10000); |
| | | if(sparePicList!=null&&sparePicList.size()>0){ |
| | | int length = sparePicList.size(); |
| | | length=length>5?length:4; |
| | | for (int i = 1; i < length+1; i++){ |
| | | sheet.setColumnWidth(i,5000); |
| | | } |
| | | } |
| | | sheet.setDefaultRowHeight((short)(1000)); |
| | | //图片元素 |
| | | HSSFPatriarch patriarch = sheet.createDrawingPatriarch(); |
| | | int rowNum=0; |
| | | HSSFRow row=sheet.createRow(rowNum); |
| | | HSSFCell cell=row.createCell(0); |
| | | cell.setCellValue("产品验收信息记录表"); |
| | | cell.setCellStyle(cellStyle); |
| | | sheet.addMergedRegion(new CellRangeAddress(0,0,0,1)); |
| | | |
| | | rowNum++; |
| | | row=sheet.createRow(rowNum); |
| | | cell=row.createCell(0); |
| | | cell.setCellValue("研发负责人"); |
| | | cell.setCellStyle(cellStyle); |
| | | cell=row.createCell(1); |
| | | cell.setCellValue(bomAcceptance.getDirectName()); |
| | | cell.setCellStyle(cellStyle); |
| | | |
| | | rowNum++; |
| | | row=sheet.createRow(rowNum); |
| | | cell=row.createCell(0); |
| | | cell.setCellValue("产品系列"); |
| | | cell.setCellStyle(cellStyle); |
| | | cell=row.createCell(1); |
| | | cell.setCellValue(bomAcceptance.getBomSeries()); |
| | | cell.setCellStyle(cellStyle); |
| | | |
| | | rowNum++; |
| | | row=sheet.createRow(rowNum); |
| | | cell=row.createCell(0); |
| | | cell.setCellValue("产品型号"); |
| | | cell.setCellStyle(cellStyle); |
| | | cell=row.createCell(1); |
| | | cell.setCellValue(bomAcceptance.getBomModel()); |
| | | cell.setCellStyle(cellStyle); |
| | | |
| | | |
| | | rowNum++; |
| | | row=sheet.createRow(rowNum); |
| | | cell=row.createCell(0); |
| | | cell.setCellValue("产品版本号"); |
| | | cell.setCellStyle(cellStyle); |
| | | cell=row.createCell(1); |
| | | cell.setCellValue(bomAcceptance.getBomVersion()); |
| | | cell.setCellStyle(cellStyle); |
| | | |
| | | rowNum++; |
| | | row=sheet.createRow(rowNum); |
| | | cell=row.createCell(0); |
| | | cell.setCellValue("技术指标"); |
| | | cell.setCellStyle(cellStyle); |
| | | cell=row.createCell(1); |
| | | cell.setCellValue(bomAcceptance.getDevParam()); |
| | | cell.setCellStyle(cellStyle); |
| | | |
| | | rowNum++; |
| | | row=sheet.createRow(rowNum); |
| | | cell=row.createCell(0); |
| | | cell.setCellValue("技术指标"); |
| | | cell.setCellStyle(cellStyle); |
| | | cell=row.createCell(1); |
| | | cell.setCellValue(bomAcceptance.getStandParam()); |
| | | cell.setCellStyle(cellStyle); |
| | | sheet.addMergedRegion(new CellRangeAddress(4,5,0,0)); |
| | | |
| | | rowNum++; |
| | | row=sheet.createRow(rowNum); |
| | | cell=row.createCell(0); |
| | | cell.setCellValue("长x宽x高(mm)"); |
| | | cell.setCellStyle(cellStyle); |
| | | cell=row.createCell(1); |
| | | cell.setCellValue(bomAcceptance.getBomSize()); |
| | | cell.setCellStyle(cellStyle); |
| | | |
| | | rowNum++; |
| | | row=sheet.createRow(rowNum); |
| | | cell=row.createCell(0); |
| | | cell.setCellValue("主机净重(KG)"); |
| | | cell.setCellStyle(cellStyle); |
| | | cell=row.createCell(1); |
| | | cell.setCellValue(bomAcceptance.getDevWeight()); |
| | | cell.setCellStyle(cellStyle); |
| | | |
| | | rowNum++; |
| | | row=sheet.createRow(rowNum); |
| | | cell=row.createCell(0); |
| | | cell.setCellValue("整机全重(含包装箱,配件)(KG)"); |
| | | cell.setCellStyle(cellStyle); |
| | | cell=row.createCell(1); |
| | | cell.setCellValue(bomAcceptance.getDevWeightAll()); |
| | | cell.setCellStyle(cellStyle); |
| | | |
| | | rowNum++; |
| | | row=sheet.createRow(rowNum); |
| | | cell=row.createCell(0); |
| | | cell.setCellValue("主机照片(左侧图,正面图,右侧图,后面图)"); |
| | | cell.setCellStyle(cellStyle); |
| | | if(devPicList!=null&&devPicList.size()>0){ |
| | | ByteArrayOutputStream byteArrayOut = null; |
| | | for(int i=0;i<devPicList.size();i++){ |
| | | String picUrl=devPicList.get(i); |
| | | if(picUrl.length()==0){ |
| | | continue; |
| | | } |
| | | try { |
| | | byteArrayOut = new ByteArrayOutputStream(); |
| | | String path=devRoot+File.separator+picUrl; |
| | | BufferedImage bufferImg = ImageIO.read(new FileInputStream(new File(path))); |
| | | ImageIO.write(bufferImg, "png", byteArrayOut); |
| | | //anchor主要用于设置图片的属性 |
| | | HSSFClientAnchor anchor = new HSSFClientAnchor(50, 20, 1000, 230,(short) (i+1), rowNum, (short) (i+1), rowNum); |
| | | anchor.setAnchorType(ClientAnchor.MOVE_AND_RESIZE); |
| | | //插入图片 |
| | | patriarch.createPicture(anchor, wb.addPicture(byteArrayOut.toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG)); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | }finally { |
| | | if (byteArrayOut != null) { |
| | | try { |
| | | byteArrayOut.close(); |
| | | } catch (IOException e) { |
| | | System.out.println("关闭ByteArrayOutputStream失败"); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | rowNum++; |
| | | row=sheet.createRow(rowNum); |
| | | cell=row.createCell(0); |
| | | cell.setCellValue("配件照片"); |
| | | cell.setCellStyle(cellStyle); |
| | | if(sparePicList!=null&&sparePicList.size()>0){ |
| | | ByteArrayOutputStream byteArrayOut = null; |
| | | for(int i=0;i<sparePicList.size();i++){ |
| | | String picUrl=sparePicList.get(i); |
| | | try { |
| | | byteArrayOut = new ByteArrayOutputStream(); |
| | | String path=rootFile+File.separator+bomAcceptance.getSparePicpart()+File.separator+picUrl; |
| | | BufferedImage bufferImg = ImageIO.read(new FileInputStream(new File(path))); |
| | | ImageIO.write(bufferImg, "png", byteArrayOut); |
| | | //anchor主要用于设置图片的属性 |
| | | HSSFClientAnchor anchor = new HSSFClientAnchor(50, 20, 1000, 230,(short) (i+1), rowNum, (short) (i+1), rowNum); |
| | | anchor.setAnchorType(ClientAnchor.MOVE_AND_RESIZE); |
| | | //插入图片 |
| | | patriarch.createPicture(anchor, wb.addPicture(byteArrayOut.toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG)); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | }finally { |
| | | if (byteArrayOut != null) { |
| | | try { |
| | | byteArrayOut.close(); |
| | | } catch (IOException e) { |
| | | System.out.println("关闭ByteArrayOutputStream失败"); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | rowNum++; |
| | | row=sheet.createRow(rowNum); |
| | | cell=row.createCell(0); |
| | | cell.setCellValue("配件型号规格"); |
| | | cell.setCellStyle(cellStyle); |
| | | cell=row.createCell(1); |
| | | cell.setCellValue(bomAcceptance.getSparePartmodel()); |
| | | cell.setCellStyle(cellStyle); |
| | | |
| | | rowNum++; |
| | | row=sheet.createRow(rowNum); |
| | | cell=row.createCell(0); |
| | | cell.setCellValue("端口协议文本"); |
| | | cell.setCellStyle(cellStyle); |
| | | cell=row.createCell(1); |
| | | if(bomAcceptance.getBomAgreement()!=null&&bomAcceptance.getBomAgreement().length()>0){ |
| | | String agreement=bomAcceptance.getBomAgreement(); |
| | | String agreementName = agreement.substring(agreement.lastIndexOf(File.separator)+1); |
| | | agreementName = agreementName.substring(0,agreementName.lastIndexOf(".")); |
| | | cell.setCellValue(agreementName); |
| | | cell.setCellStyle(cellStyle); |
| | | } |
| | | |
| | | rowNum++; |
| | | row=sheet.createRow(rowNum); |
| | | cell=row.createCell(0); |
| | | cell.setCellValue("说明书"); |
| | | cell.setCellStyle(cellStyle); |
| | | cell=row.createCell(1); |
| | | if(bomAcceptance.getBomManual()!=null&&bomAcceptance.getBomManual().length()>0){ |
| | | String bomManual=bomAcceptance.getBomManual(); |
| | | String bomManualName = bomManual.substring(bomManual.lastIndexOf(File.separator)+1); |
| | | bomManualName = bomManualName.substring(0,bomManualName.lastIndexOf(".")); |
| | | cell.setCellValue(bomManualName); |
| | | cell.setCellStyle(cellStyle); |
| | | } |
| | | |
| | | rowNum++; |
| | | row=sheet.createRow(rowNum); |
| | | cell=row.createCell(0); |
| | | cell.setCellValue("检测报告"); |
| | | cell.setCellStyle(cellStyle); |
| | | cell=row.createCell(1); |
| | | if(bomAcceptance.getTestReport()!=null&&bomAcceptance.getTestReport().length()>0){ |
| | | String testReport=bomAcceptance.getTestReport(); |
| | | String testReportName = testReport.substring(testReport.lastIndexOf(File.separator)+1); |
| | | testReportName = testReportName.substring(0,testReportName.lastIndexOf(".")); |
| | | cell.setCellValue(testReportName); |
| | | cell.setCellStyle(cellStyle); |
| | | } |
| | | |
| | | rowNum++; |
| | | row=sheet.createRow(rowNum); |
| | | cell=row.createCell(0); |
| | | cell.setCellValue("ICD文件"); |
| | | cell.setCellStyle(cellStyle); |
| | | cell=row.createCell(1); |
| | | if(bomAcceptance.getIcdFile()!=null&&bomAcceptance.getIcdFile().length()>0){ |
| | | String icdFile=bomAcceptance.getTestReport(); |
| | | String icdFileName = icdFile.substring(icdFile.lastIndexOf(File.separator)+1); |
| | | icdFileName = icdFileName.substring(0,icdFileName.lastIndexOf(".")); |
| | | cell.setCellValue(icdFileName); |
| | | cell.setCellStyle(cellStyle); |
| | | } |
| | | |
| | | rowNum++; |
| | | row=sheet.createRow(rowNum); |
| | | cell=row.createCell(0); |
| | | cell.setCellValue("施工图纸"); |
| | | cell.setCellStyle(cellStyle); |
| | | cell=row.createCell(1); |
| | | if(bomAcceptance.getCadPicpart()!=null&&bomAcceptance.getCadPicpart().length()>0){ |
| | | String cadPicpart=bomAcceptance.getCadPicpart(); |
| | | String cadPicpartName = cadPicpart.substring(cadPicpart.lastIndexOf(File.separator)+1); |
| | | cadPicpartName = cadPicpartName.substring(0,cadPicpartName.lastIndexOf(".")); |
| | | cell.setCellValue(cadPicpartName); |
| | | cell.setCellStyle(cellStyle); |
| | | } |
| | | |
| | | rowNum++; |
| | | row=sheet.createRow(rowNum); |
| | | cell=row.createCell(0); |
| | | cell.setCellValue("铭牌信息"); |
| | | cell.setCellStyle(cellStyle); |
| | | cell=row.createCell(1); |
| | | if(bomAcceptance.getNamePlate()!=null&&bomAcceptance.getNamePlate().length()>0){ |
| | | String namePlate=bomAcceptance.getNamePlate(); |
| | | String namePlateName = namePlate.substring(namePlate.lastIndexOf(File.separator)+1); |
| | | namePlateName = namePlateName.substring(0,namePlateName.lastIndexOf(".")); |
| | | cell.setCellValue(namePlateName); |
| | | cell.setCellStyle(cellStyle); |
| | | } |
| | | |
| | | rowNum++; |
| | | row=sheet.createRow(rowNum); |
| | | cell=row.createCell(0); |
| | | cell.setCellValue("现场安装案例照片"); |
| | | cell.setCellStyle(cellStyle); |
| | | if(installPicList!=null&&installPicList.size()>0){ |
| | | ByteArrayOutputStream byteArrayOut = null; |
| | | for(int i=0;i<installPicList.size();i++){ |
| | | String picUrl=installPicList.get(i); |
| | | try { |
| | | byteArrayOut = new ByteArrayOutputStream(); |
| | | String path=rootFile+File.separator+bomAcceptance.getInstallPic()+File.separator+picUrl; |
| | | BufferedImage bufferImg = ImageIO.read(new FileInputStream(new File(path))); |
| | | ImageIO.write(bufferImg, "png", byteArrayOut); |
| | | //anchor主要用于设置图片的属性 |
| | | HSSFClientAnchor anchor = new HSSFClientAnchor(50, 20, 1000, 230,(short) (i+1), rowNum, (short) (i+1), rowNum); |
| | | anchor.setAnchorType(ClientAnchor.MOVE_AND_RESIZE); |
| | | //插入图片 |
| | | patriarch.createPicture(anchor, wb.addPicture(byteArrayOut.toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG)); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | }finally { |
| | | if (byteArrayOut != null) { |
| | | try { |
| | | byteArrayOut.close(); |
| | | } catch (IOException e) { |
| | | System.out.println("关闭ByteArrayOutputStream失败"); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | //将文件存到指定位置 |
| | | OutputStream os = null; |
| | | try { |
| | | os = resp.getOutputStream(); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | try { |
| | | resp.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode (fileName+ ".xls", "utf-8")); |
| | | resp.setCharacterEncoding("UTF-8"); |
| | | //不保存缓存信息与response.reset同样效果 |
| | | resp.addHeader("Pragma", "no-cache"); |
| | | resp.addHeader("Cache-Control", "no-cache"); |
| | | wb.write(os); |
| | | os.flush(); |
| | | os.close(); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | //跳转详情 |
| | | public Response getBomAcceptanceByNum(int num) { |
| | | String rootFile = CommonUtil.getRootFile(); |
| | | //读取产品信息 |
| | | QueryWrapper wrapper=new QueryWrapper(); |
| | | wrapper.eq("num",num); |
| | | wrapper.last("limit 1"); |
| | | BomAcceptance bomAcceptance=mapper.selectOne(wrapper); |
| | | String sparefilePath=rootFile+bomAcceptance.getSparePicpart(); |
| | | bomAcceptance.setSparePicpart("doc_file"+File.separator+bomAcceptance.getSparePicpart()); |
| | | //获取文件夹下所有的图片名 |
| | | bomAcceptance.setNameList(FileUtil.getFileNameWithOutDirectory(sparefilePath)); |
| | | |
| | | String installfilePath=rootFile+bomAcceptance.getInstallPic(); |
| | | bomAcceptance.setInstallPic("doc_file"+File.separator+bomAcceptance.getInstallPic()); |
| | | //获取文件夹下所有的图片名 |
| | | bomAcceptance.setInstallList(FileUtil.getFileNameWithOutDirectory(installfilePath)); |
| | | return new Response().set(1,bomAcceptance,"跳转详情"); |
| | | } |
| | | |
| | | } |