From cf9a5039e6db9d1d5963e3fe1a37d00169ec2ef7 Mon Sep 17 00:00:00 2001 From: whyclxw <810412026@qq.com> Date: 星期三, 25 六月 2025 11:18:22 +0800 Subject: [PATCH] 验收报告修改 --- src/main/java/com/whyc/service/ProductBomService.java | 507 +++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 390 insertions(+), 117 deletions(-) diff --git a/src/main/java/com/whyc/service/ProductBomService.java b/src/main/java/com/whyc/service/ProductBomService.java index 786578f..d688662 100644 --- a/src/main/java/com/whyc/service/ProductBomService.java +++ b/src/main/java/com/whyc/service/ProductBomService.java @@ -9,26 +9,26 @@ import com.whyc.dto.FileDirPath; import com.whyc.dto.Response; import com.whyc.dto.ZipUtils; +import com.whyc.mapper.AttachLockMapper; +import com.whyc.mapper.MaterialMapper; import com.whyc.mapper.ProductBomMapper; -import com.whyc.pojo.DocUser; -import com.whyc.pojo.ProductBom; -import com.whyc.pojo.ProductBomApproving; -import com.whyc.pojo.ProductBomHistory; +import com.whyc.mapper.ProductMapper; +import com.whyc.pojo.*; import com.whyc.util.ActionUtil; import org.apache.poi.hssf.usermodel.*; -import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.ClientAnchor; -import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.IndexedColors; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestParam; import javax.imageio.ImageIO; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.awt.image.BufferedImage; import java.io.*; -import java.math.BigDecimal; +import java.net.URLEncoder; import java.util.ArrayList; import java.util.Date; import java.util.LinkedList; @@ -37,8 +37,18 @@ @Service public class ProductBomService { + @Autowired(required = false) private ProductBomMapper mapper; + + @Autowired(required = false) + private MaterialMapper cponentMapper; + + @Autowired(required = false) + private ProductMapper productMapper; + + @Autowired(required = false) + private AttachLockMapper attachLockMapper; @Autowired private DocLogService logService; @@ -47,61 +57,33 @@ PageHelper.startPage(pageCurr,pageSize); List list=mapper.searchCadDrawer(productBom); PageInfo pageInfo=new PageInfo(list); - return new Response().setII(1,list.size()>0?true:false,pageInfo,"鏁版嵁杩斿洖"); + return new Response().setII(1,list.size()>0,pageInfo,"鏁版嵁杩斿洖"); } - //鍥剧焊鏂囦欢涓嬭浇 - public void downloadCadDrawer(HttpServletRequest req, HttpServletResponse resp, ArrayList<String> pictureUrls) { - String fileDirName = FileDirPath.getFileDirName(); - String rootFace=fileDirName+ File.separator+"downLoad"; - String pictureName=""; - //灏嗛�変腑鐨勬枃浠跺瓨鍏ユ寚瀹氱洰褰曚笅鎵撳寘涓嬭浇 - if(pictureUrls!=null&&pictureUrls.size()>0){ - for (String picUrl:pictureUrls) { - pictureName+=picUrl.substring(picUrl.lastIndexOf("\\")+1)+","; - File sourceFile=new File(fileDirName+ File.separator+picUrl); - copyFile(sourceFile,rootFace); - } - } - String timeStr= ActionUtil.sdfwithFTP.format(new Date()); - try { - File file=new File(rootFace+".zip"); - FileOutputStream forootFace = new FileOutputStream(file); - ZipUtils.toZip(rootFace, forootFace,true); - // 杞爜闃叉涔辩爜 - resp.addHeader("Content-Disposition", "attachment;filename=" - + new String(timeStr.getBytes("UTF-8"), "ISO8859-1") - + ".zip"); - OutputStream out = resp.getOutputStream(); - FileInputStream in = new FileInputStream(rootFace+".zip"); - int len=0; - byte[] buffer =new byte[1024]; - //7. 灏嗙紦鍐插尯涓殑鏁版嵁杈撳嚭 - while ((len=in.read(buffer))>0){ - out.write(buffer,0,len); - } - in.close(); - out.close(); - file.delete(); - } catch (FileNotFoundException | UnsupportedEncodingException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); - } + /* //鍥剧焊鏂囦欢涓嬭浇 + public void downloadCadDrawer(HttpServletRequest req, HttpServletResponse resp, List<ProductBom> boms) { + HSSFWorkbook wb = new HSSFWorkbook(); + //瀛椾綋鏍煎紡-鍔犵矖 + HSSFCellStyle cellStyle = wb.createCellStyle(); + HSSFFont font = wb.createFont(); + font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); + cellStyle.setFont(font); + //鐢熸垚excel骞跺皢dwg鏂囦欢鏀惧湪鍚屼竴鎶ヤ笅鍘嬬缉 + creatBomExcel(req,resp,boms,wb,"pic"); //璁板綍鏃ュ織 DocUser docUser= ActionUtil.getUser(); - String operationDetail="鍏蜂綋鍥剧焊涓�:"+pictureName.substring(0,pictureName.lastIndexOf(",")); + String operationDetail="鍏蜂綋鍥剧焊涓烘暟閲�:"+boms.size(); String opreationMsg="鎵ц浜嗘枃浠舵墦鍖呬笅杞芥搷浣�"; String terminalIp=req.getRemoteAddr(); logService.recordOperationLog(docUser.getId(),docUser.getName(), UserOperation.TYPE_DOWNLOAD.getType(),new Date(),terminalIp,opreationMsg,operationDetail); - } + }*/ //鏍规嵁瀛愪欢code鑾峰彇鏈�缁堢殑淇℃伅 public Response getBomBySubcode(String scode) { QueryWrapper wrapper=new QueryWrapper(); wrapper.eq("sub_code",scode); wrapper.last("limit 1"); ProductBom productBom=mapper.selectOne(wrapper); - return new Response().setII(1,productBom!=null?true:false,productBom,"杩斿洖鏁版嵁"); + return new Response().setII(1,productBom!=null,productBom,"杩斿洖鏁版嵁"); } /**鑾峰彇浜у搧鐨勪俊鎭�(涓嶅寘鍚瓙鏂�)*/ @@ -115,7 +97,8 @@ @Transactional public void updateNewBom(List<ProductBomHistory> newBomHistoryList) { UpdateWrapper<ProductBom> update = Wrappers.update(); - update.eq("parent_model",newBomHistoryList.get(0).getParentModel()); + //lxw娉ㄩ噴 + //update.eq("parent_model",newBomHistoryList.get(0).getParentModel()); mapper.delete(update); List<ProductBom> newBomList = new LinkedList<>(); @@ -127,10 +110,10 @@ newBom.setFileUrl(newBomHis.getFileUrl()); newBom.setMaterial(newBomHis.getMaterial()); newBom.setNotes(newBomHis.getNotes()); - newBom.setParentCode(newBomHis.getParentCode()); - newBom.setParentModel(newBomHis.getParentModel()); - newBom.setParentName(newBomHis.getParentName()); - newBom.setParentVersion(newBomHis.getParentVersion()); + //newBom.setParentCode(newBomHis.getParentCode()); + //newBom.setParentModel(newBomHis.getParentModel()); + //newBom.setParentName(newBomHis.getParentName()); + //newBom.setParentVersion(newBomHis.getParentVersion()); newBom.setPictureUrl(newBomHis.getPictureUrl()); newBom.setProducer(newBomHis.getProducer()); newBom.setQuantity(newBomHis.getQuantity()); @@ -141,8 +124,8 @@ newBom.setThickness(newBomHis.getThickness()); newBom.setType(newBomHis.getType()); newBom.setUnit(newBomHis.getUnit()); - newBom.setUpUserId(newBomHis.getUpUserId()); - newBom.setVersion(newBomHis.getEVersion()); + //newBom.setUpUserId(newBomHis.getUpUserId()); + //newBom.setVersion(newBomHis.getEVersion()); newBomList.add(newBom); }); @@ -155,7 +138,11 @@ File destfile = new File(dest); if(!destfile.exists()) { destfile.mkdir(); - } + }/*else{ + if(i==0){ + ZipUtils.delDir(dest); + } + }*/ //source鏄枃浠讹紝鍒欑敤瀛楄妭杈撳叆杈撳嚭娴佸鍒舵枃浠� try { if(source.isFile()){ @@ -184,90 +171,272 @@ e.printStackTrace(); } } + //鏂囦欢澶圭殑鎷疯礉 + public void copyDir(String sourcePathDir, String newPathDir) { + File start = new File(sourcePathDir); + File end = new File(newPathDir); + if(!start.exists()) { + return; + } + String[] filePath = start.list();//鑾峰彇璇ユ枃浠跺す涓嬬殑鎵�鏈夋枃浠朵互鍙婄洰褰曠殑鍚嶅瓧 + if(!end.exists()) { + end.mkdir(); + } + if(filePath.length>=0){ + for(String temp : filePath) { + //娣诲姞婊¤冻鎯呭喌鐨勬潯浠� + if(new File(sourcePathDir + File.separator + temp ).isFile()) { + //涓烘枃浠跺垯杩涜鎷疯礉 + copyFile(new File(sourcePathDir + File.separator + temp ), newPathDir ); + } + } + } + } + //鏂囦欢澶圭殑鎷疯礉绉婚櫎productId瀵瑰簲鐨勮閿佸畾鐨� + public void copyDirWithOutProductId(String sourcePathDir, String newPathDir,int productId) { + File start = new File(sourcePathDir); + File end = new File(newPathDir); + if(!start.exists()) { + return; + } + String[] filePath = start.list();//鑾峰彇璇ユ枃浠跺す涓嬬殑鎵�鏈夋枃浠朵互鍙婄洰褰曠殑鍚嶅瓧 + if(!end.exists()) { + end.mkdir(); + } + if(filePath.length>=0){ + for(String temp : filePath) { + //娣诲姞婊¤冻鎯呭喌鐨勬潯浠� + if(new File(sourcePathDir + File.separator + temp ).isFile()) { + QueryWrapper wrapper=new QueryWrapper(); + wrapper.eq("product_id",productId); + wrapper.eq("attach_name",temp); + wrapper.eq("lock_flag",1); + wrapper.last("limit 1"); + AttachLock attachLock=attachLockMapper.selectOne(wrapper); + if(attachLock==null){ + //涓烘枃浠跺垯杩涜鎷疯礉 + copyFile(new File(sourcePathDir + File.separator + temp ), newPathDir ); + } + } + } + } + } public void updateUrl(List<ProductBomApproving> fileBomApprovingList) { mapper.updateUrl(fileBomApprovingList); } /** * 鑾峰彇鎵�鏈変骇鍝佷俊鎭�*/ - public Response getAllBom() { + /*public Response getAllBom(String parentCode,String parentName,String parentModel, int pageCurr,int pageSize) { + PageHelper.startPage(pageCurr,pageSize); QueryWrapper wrapper=new QueryWrapper(); wrapper.select("distinct parent_code","parent_name","parent_model","version").orderByAsc("id"); + if(parentCode!=null&&!parentCode.isEmpty()){ + wrapper.like("parent_code",parentCode); + } + if(parentName!=null&&!parentName.isEmpty()){ + wrapper.like("parent_name",parentName); + } + if(parentModel!=null&&!parentModel.isEmpty()){ + wrapper.like("parent_model",parentModel); + } List list=mapper.selectList(wrapper); - return new Response().setII(1,list!=null?true:false,list,"杩斿洖鏁版嵁"); - } - //浜у搧鎵撳寘涓嬭浇 - public Response downloadBom(HttpServletRequest req, HttpServletResponse resp, String parentModel) { + PageInfo pageInfo=new PageInfo(list); + return new Response().setII(1,list!=null,pageInfo,"杩斿洖鏁版嵁"); + }*/ + //浜у搧涓嬭浇(浜у搧id鍜岀増鏈�) + public void downloadProduct(HttpServletRequest req, HttpServletResponse resp, int productId , int version + , @RequestParam String oprateReason, @RequestParam String oprateInfo) { HSSFWorkbook wb = new HSSFWorkbook(); + //璇诲彇浜у搧淇℃伅 + QueryWrapper wrapper=new QueryWrapper(); + wrapper.eq("id",productId); + wrapper.eq("version",version); + wrapper.last("limit 1"); + Product product=productMapper.selectOne(wrapper); + //璇诲彇浜у搧鐨勫瓙浠跺拰鍏宠仈鐨勭墿鏂欎俊鎭� + List<ProductBom> list=mapper.getBomAndMaterial(productId,version); + //澶勭悊瀛樺湪鍏宠仈鍏崇郴鐨勭墿鏂� + List<ProductBom> endList=new ArrayList<>(); + list.stream().forEach(bom -> { + bom.setConnFlag(0); + if(bom.getDwgUrl()!=null){ + QueryWrapper qwrapper=new QueryWrapper(); + qwrapper.eq("material_id",bom.getMaterialId()); + qwrapper.eq("attach_name",bom.getDwgUrl().substring(bom.getDwgUrl().lastIndexOf("\\")+1)); + qwrapper.eq("lock_flag",1); + qwrapper.last("limit 1"); + AttachLock attachLock=attachLockMapper.selectOne(qwrapper); + if(attachLock!=null){ + bom.setDwgUrl(""); + } + } + endList.add(bom); + if(bom.getMaterials()!=null&&bom.getMaterials().size()>0){ + for (Material m:bom.getMaterials()) { + //灏嗙墿鏂欏瓨鏀句负涓�涓猙om涓轰笅杞藉仛鍑嗗 + ProductBom copyBom=copyMaterialToBom(m); + endList.add(copyBom); + } + } + }); + //灏嗘病鏈夌鐞咮OM鐨刣wg鏂囦欢鎷疯礉涓嬭浇 + String withOutDwg="doc_file/product"+File.separator+product.getParentModel(); + if(product.getCustomCode()!=null&&!product.getCustomCode().isEmpty()){ + withOutDwg+=File.separator+product.getCustomCode()+File.separator+version; + }else{ + withOutDwg+=File.separator+"standard"+File.separator+version; + } + //鐢熸垚excel骞跺皢dwg鏂囦欢鏀惧湪鍚屼竴鎶ヤ笅鍘嬬缉 + creatBomExcel(req,resp,product,endList,wb,withOutDwg,ActionUtil.sdfwithALL.format(product.getVersionTime()),oprateReason,oprateInfo); + } + + + //鏍规嵁浜у搧淇℃伅鍒涘缓excel琛ㄦ牸骞跺瓨鏀惧湪鎸囧畾鐩綍 + private void creatBomExcel(HttpServletRequest req, HttpServletResponse resp,Product product,List list, HSSFWorkbook wb,String withOutDwg + , String oprateVersion, @RequestParam String oprateReason, @RequestParam String oprateInfo){ + String fileDirName = FileDirPath.getFileDirName(); + String rootFace=""; + String excelName=""; + String[] titleNames=new String[]{"搴忓垪","姣嶇墿鏂欑紪鐮�","姣嶇墿鏂欏悕绉�","姣嶇墿鏂欏瀷鍙�","绫诲埆","瀛愪欢缂栫爜","瀛愪欢鍚嶇О","瀛愪欢鍨嬪彿" + ,"鍩烘湰鍗曚綅","瀛愪欢鏁伴噺","鐢熶骇鍟�","灏佽绫诲瀷/鏉愯川","鍏冧欢缂栧彿/鏂欏帤","琛ㄩ潰澶勭悊/鐗╂枡璇︽儏","澶囨敞","鍥剧墖"}; //瀛椾綋鏍煎紡-鍔犵矖 HSSFCellStyle cellStyle = wb.createCellStyle(); + cellStyle.setFillForegroundColor(IndexedColors.GOLD.getIndex());//娣诲姞鍓嶆櫙鑹�,鍐呭鐪嬬殑娓呮 + cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); HSSFFont font = wb.createFont(); font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); + //font.setColor(HSSFFont.COLOR_RED); cellStyle.setFont(font); - QueryWrapper wrapper=new QueryWrapper(); - wrapper.eq("parent_model",parentModel); - List<ProductBom> list=mapper.selectList(wrapper); - //鐢熸垚excel骞跺皢dwg鏂囦欢鏀惧湪鍚屼竴鎶ヤ笅鍘嬬缉 - creatBomExcel(req,resp,list,wb); - return new Response().setII(1,true,"",""); - } - //鏍规嵁浜у搧淇℃伅鍒涘缓excel琛ㄦ牸骞跺瓨鏀惧湪鎸囧畾鐩綍 - public void creatBomExcel(HttpServletRequest req, HttpServletResponse resp,List<ProductBom> list, HSSFWorkbook wb){ - String fileDirName = FileDirPath.getFileDirName(); - String rootFace=fileDirName+ File.separator+"downLoad"; - String pictureName=""; - String excelName=""; //鍒涘缓鍗曚釜sheet - HSSFSheet sheet = wb.createSheet("bom淇℃伅"); + HSSFSheet sheet = wb.createSheet("浜у搧淇℃伅"); + sheet.setColumnWidth(1,5000); + sheet.setColumnWidth(2,5000); + sheet.setColumnWidth(3,5000); + sheet.setColumnWidth(4,5000); + sheet.setColumnWidth(6,5000); + sheet.setColumnWidth(7,5000); + sheet.setColumnWidth(8,5000); sheet.setColumnWidth(16,6000); + sheet.setDefaultRowHeight((short)(1000)); //鍥剧墖鍏冪礌 HSSFPatriarch patriarch = sheet.createDrawingPatriarch(); int rownum = 1; - sheet.createRow(rownum); - sheet.getRow(rownum).createCell(1).setCellValue("搴忓垪"); - sheet.getRow(rownum).createCell(2).setCellValue("姣嶇墿鏂欑紪鐮�"); - sheet.getRow(rownum).createCell(3).setCellValue("姣嶇墿鏂欏悕绉�"); - sheet.getRow(rownum).createCell(4).setCellValue("姣嶇墿鏂欏瀷鍙�"); - sheet.getRow(rownum).createCell(5).setCellValue("绫诲埆"); - sheet.getRow(rownum).createCell(6).setCellValue("瀛愪欢缂栫爜"); - sheet.getRow(rownum).createCell(7).setCellValue("瀛愪欢鍚嶇О"); - sheet.getRow(rownum).createCell(8).setCellValue("瀛愪欢鍨嬪彿"); - sheet.getRow(rownum).createCell(9).setCellValue("鍩烘湰鍗曚綅"); - sheet.getRow(rownum).createCell(10).setCellValue("瀛愪欢鏁伴噺"); - sheet.getRow(rownum).createCell(11).setCellValue("鐢熶骇鍟�"); - sheet.getRow(rownum).createCell(12).setCellValue("灏佽绫诲瀷/鏉愯川"); - sheet.getRow(rownum).createCell(13).setCellValue("鍏冧欢缂栧彿/鏂欏帤"); - sheet.getRow(rownum).createCell(14).setCellValue("琛ㄩ潰澶勭悊/鐗╂枡璇︽儏"); - sheet.getRow(rownum).createCell(15).setCellValue("澶囨敞"); - sheet.getRow(rownum).createCell(16).setCellValue("鍥剧墖"); + HSSFRow row=sheet.createRow(rownum); + HSSFCell cell=row.createCell(0); + if(titleNames.length>0){ + for (int i=0;i<titleNames.length;i++) { + cell=row.createCell(i+1); + cell.setCellValue(titleNames[i]); + } + } + //鏋勫缓excel鍚嶇О鍜屽垱寤烘枃浠跺す + excelName=product.getParentCode()+"_"+product.getParentModel(); + String timeStr= ActionUtil.sdfwithFTP.format(new Date()); + rootFace=fileDirName+File.separator+excelName; + File destfile = new File(rootFace); + if(!destfile.exists()) { + destfile.mkdir(); + } + //灏嗘病鏈夌鐞咮OM鐨刣wg鏂囦欢鎷疯礉涓嬭浇 + withOutDwg=fileDirName+File.separator+withOutDwg; + copyDirWithOutProductId(withOutDwg,rootFace,product.getId()); //灏嗛�変腑鐨勬枃浠跺瓨鍏ユ寚瀹氱洰褰曚笅鎵撳寘涓嬭浇 if(list!=null&&list.size()>0){ for (int i=0;i<list.size();i++) { - ProductBom bom=list.get(i); + ProductBom bom= (ProductBom) list.get(i); String dwgUrl=bom.getDwgUrl(); - excelName=bom.getParentCode(); if((dwgUrl!=null)&&(!dwgUrl.isEmpty())){ - pictureName+=dwgUrl.substring(dwgUrl.lastIndexOf("\\")+1)+","; File sourceFile=new File(fileDirName+ File.separator+dwgUrl); copyFile(sourceFile,rootFace); } - Row row=sheet.createRow(rownum+i+1); - row.setHeight((short)(1500)); - sheet.getRow(rownum+i+1).createCell(1).setCellValue(i+1); - sheet.getRow(rownum+i+1).createCell(2).setCellValue(bom.getParentCode()); - sheet.getRow(rownum+i+1).createCell(3).setCellValue(bom.getParentName()); - sheet.getRow(rownum+i+1).createCell(4).setCellValue(bom.getParentModel()); - sheet.getRow(rownum+i+1).createCell(5).setCellValue(bom.getCategory()); - sheet.getRow(rownum+i+1).createCell(6).setCellValue(bom.getSubCode()); - sheet.getRow(rownum+i+1).createCell(7).setCellValue(bom.getSubName()); - sheet.getRow(rownum+i+1).createCell(8).setCellValue(bom.getSubModel()); - sheet.getRow(rownum+i+1).createCell(9).setCellValue(bom.getUnit()==null?"":bom.getUnit()); - sheet.getRow(rownum+i+1).createCell(10).setCellValue(bom.getQuantity()); - sheet.getRow(rownum+i+1).createCell(11).setCellValue(bom.getProducer()==null?"":bom.getProducer()); - sheet.getRow(rownum+i+1).createCell(12).setCellValue(bom.getMaterial()); - sheet.getRow(rownum+i+1).createCell(13).setCellValue(bom.getThickness()); - sheet.getRow(rownum+i+1).createCell(14).setCellValue(bom.getSurfaceDetail()); - sheet.getRow(rownum+i+1).createCell(15).setCellValue(bom.getNotes()); + rownum=rownum+1; + row=sheet.createRow(rownum); + if(bom.getConnFlag()==1){ + cell=row.createCell(0); + cell.setCellValue("鏇挎崲浠�"); + cell.setCellStyle(cellStyle); + + cell=row.createCell(1); + cell.setCellValue(i+1); + cell.setCellStyle(cellStyle); + + cell=row.createCell(2); + cell.setCellValue(product.getParentCode()); + cell.setCellStyle(cellStyle); + + cell=row.createCell(3); + cell.setCellValue(product.getParentName()); + cell.setCellStyle(cellStyle); + + cell=row.createCell(4); + cell.setCellValue(product.getParentModel()); + cell.setCellStyle(cellStyle); + + cell=row.createCell(5); + cell.setCellValue(bom.getCategory()); + cell.setCellStyle(cellStyle); + + cell=row.createCell(6); + cell.setCellValue(bom.getSubCode()); + cell.setCellStyle(cellStyle); + + cell=row.createCell(7); + cell.setCellValue(bom.getSubName()); + cell.setCellStyle(cellStyle); + + cell=row.createCell(8); + cell.setCellValue(bom.getSubModel()); + cell.setCellStyle(cellStyle); + + cell=row.createCell(9); + cell.setCellValue(bom.getUnit()==null?"":bom.getUnit()); + cell.setCellStyle(cellStyle); + + cell=row.createCell(10); + cell.setCellValue(bom.getQuantity()==null?"": bom.getQuantity().toString()); + cell.setCellStyle(cellStyle); + + cell=row.createCell(11); + cell.setCellValue(bom.getProducer()==null?"":bom.getProducer()); + cell.setCellStyle(cellStyle); + + cell=row.createCell(12); + cell.setCellValue(bom.getMaterial()); + cell.setCellStyle(cellStyle); + + cell=row.createCell(12); + cell.setCellValue(bom.getThickness()); + cell.setCellStyle(cellStyle); + + cell=row.createCell(13); + cell.setCellValue(bom.getThickness()); + cell.setCellStyle(cellStyle); + + cell=row.createCell(14); + cell.setCellValue(bom.getSurfaceDetail()); + cell.setCellStyle(cellStyle); + + cell=row.createCell(15); + cell.setCellValue(bom.getNotes()); + cell.setCellStyle(cellStyle); + }else{ + row.createCell(1).setCellValue(i+1); + row.createCell(2).setCellValue(product.getParentCode()); + row.createCell(3).setCellValue(product.getParentName()); + row.createCell(4).setCellValue(product.getParentModel()); + row.createCell(5).setCellValue(bom.getCategory()); + row.createCell(6).setCellValue(bom.getSubCode()); + row.createCell(7).setCellValue(bom.getSubName()); + row.createCell(8).setCellValue(bom.getSubModel()); + row.createCell(9).setCellValue(bom.getUnit()==null?"":bom.getUnit()); + row.createCell(10).setCellValue(bom.getQuantity()==null?"": bom.getQuantity().toString()); + row.createCell(11).setCellValue(bom.getProducer()==null?"":bom.getProducer()); + row.createCell(12).setCellValue(bom.getMaterial()); + row.createCell(13).setCellValue(bom.getThickness()); + row.createCell(14).setCellValue(bom.getSurfaceDetail()); + row.createCell(15).setCellValue(bom.getNotes()); + } if((bom.getPictureUrl()!=null)&&(!bom.getPictureUrl().isEmpty())){ ByteArrayOutputStream byteArrayOut = null; try { @@ -275,7 +444,7 @@ BufferedImage bufferImg = ImageIO.read(new FileInputStream(new File(fileDirName+File.separator+bom.getPictureUrl()))); ImageIO.write(bufferImg, "png", byteArrayOut); //anchor涓昏鐢ㄤ簬璁剧疆鍥剧墖鐨勫睘鎬� - HSSFClientAnchor anchor = new HSSFClientAnchor(50, 20, 1000, 230,(short) 16, rownum+i+1, (short) 16, rownum+i+1); + HSSFClientAnchor anchor = new HSSFClientAnchor(50, 20, 1000, 230,(short) 16, rownum, (short) 16, rownum); anchor.setAnchorType(ClientAnchor.MOVE_AND_RESIZE); //鎻掑叆鍥剧墖 patriarch.createPicture(anchor, wb.addPicture(byteArrayOut.toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG)); @@ -309,14 +478,16 @@ } } } - try { + try { File file=new File(rootFace+".zip"); FileOutputStream forootFace = new FileOutputStream(file); ZipUtils.toZip(rootFace, forootFace,true); + // 杞爜闃叉涔辩爜 - resp.addHeader("Content-Disposition", "attachment;filename=" + /*resp.addHeader("Content-Disposition", "attachment;filename=" + new String(excelName.getBytes("UTF-8"), "ISO8859-1") - + ".zip"); + + ".zip");*/ + resp.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode (excelName+".zip", "utf-8")); OutputStream out = resp.getOutputStream(); FileInputStream in = new FileInputStream(rootFace+".zip"); int len=0; @@ -328,11 +499,113 @@ in.close(); out.close(); file.delete(); + ZipUtils.delDir(rootFace); } catch (FileNotFoundException | UnsupportedEncodingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } + //璁板綍鏃ュ織 + logService.recordOperationLogDownLoad(ActionUtil.getUser().getId(),ActionUtil.getUser().getName(), UserOperation.TYPE_DOWNLOAD_PRODUCT.getType(),new Date(),req.getRemoteAddr() + ,excelName+".zip",rootFace+".zip",oprateReason,oprateInfo,oprateVersion); + } + //鏌ヨ鎵�鏈変骇鍝佷腑娌℃湁涓庢寚瀹氭暎瑁呬欢鍏宠仈鐨勫瓙浠� + public Response getAllSubWithOutMaterial(int materialId) { + List<ProductBom> list=mapper.getAllSubWithOutMaterial(materialId); + return new Response().setII(1,list.size()>0,list,"杩斿洖鏁版嵁"); + } + //鏍规嵁姣嶆枡鍨嬪彿鏌ヨ瀛愪欢淇℃伅鍙婃湁鏈�鏂扮増鏈叧鑱旂殑鏁h浠朵俊鎭� + /*public Response getSubByMaterialProduct(String parentModel) { + List<ProductBom> list=mapper.getSubByMaterialProduct(parentModel); + //鏌ヨ鍑哄瓨鍦ㄦ浛鎹㈠叧绯诲緱鏁h浠� + List<ProductBom> replaceBoms=cponentMapper.getReplaceMaterial(parentModel); + if(replaceBoms!=null&&replaceBoms.size()>0){ + replaceBoms.stream().forEach(replaceBom->{ + //濡傛灉瀛樺湪鏇挎崲鍏崇郴锛屾煡璇㈠嚭鍘熷瓙浠剁殑鍏宠仈鍏崇郴(灏嗗師瀛愪欢鍚嶇О鏀惧湪oldSubName涓�) + if(replaceBom!=null&&!replaceBom.getSubName().isEmpty()) { + //replaceBom琛ㄧず涓烘浛鎹欢 + replaceBom.setReplaceStatus(1); + if (replaceBom.getOldSubName() != null && !replaceBom.getOldSubName().isEmpty()) { + //鏌ヨ鍑哄瓨鍦ㄧ殑鏃х殑鍏宠仈瀛愪欢,杩樿涓庡師BOM鐗堟湰涓�鑷� + List<Material> oldCponent = mapper.getOldMaterial(replaceBom.getOldSubName()); + replaceBom.setMaterials(oldCponent); + } + } + list.add(replaceBom); + } + ); + } + return new Response().setII(1,list.size()>0,list,"杩斿洖鏁版嵁"); + }*/ + //鏍规嵁浜у搧id鏌ヨ瀛愪欢鍙婂叾鍏宠仈鐨勭墿鏂欎俊鎭� + public Response getBomAndMaterial(int productId,int version) { + List<ProductBom> list=mapper.getBomAndMaterial(productId,version); + if(list!=null&&list.size()>0){ + list.stream().forEach(bom -> { + if(bom.getDwgUrl()!=null){ + QueryWrapper wrapper=new QueryWrapper(); + wrapper.eq("material_id",bom.getMaterialId()); + wrapper.eq("attach_name",bom.getDwgUrl().substring(bom.getDwgUrl().lastIndexOf("\\")+1)); + wrapper.last("limit 1"); + AttachLock attachLock=attachLockMapper.selectOne(wrapper); + if(attachLock!=null){ + bom.setDwgUrl(""); + } + } + }); + } + return new Response().setII(1,list.size()>0,list,"杩斿洖鐗╂枡淇℃伅鍙婂叧鑱旂墿鏂�"); } + //灏嗙墿鏂欏瓨鏀句负涓�涓猙om涓轰笅杞藉仛鍑嗗 + private ProductBom copyMaterialToBom(Material m) { + ProductBom bom=new ProductBom(); + bom.setType(m.getType()); + //bom.setCategory(m.getCategory()); + bom.setSubCode(m.getSubCode()); + bom.setSubName(m.getSubName()); + bom.setSubModel(m.getSubModel()); + bom.setUnit(m.getUnit()); + //bom.setQuantity(m.getQuantity()); + //bom.setProducer(m.getProducer()); + //bom.setMaterial(m.getMaterial()); + //bom.setThickness(m.getThickness()); + //bom.setSurfaceDetail(m.getSurfaceDetail()); + //bom.setNotes(m.getNotes()); + bom.setPictureUrl(m.getPictureUrl()); + bom.setDwgUrl(m.getDwgUrl()); + bom.setFileUrl(m.getFileUrl()); + bom.setCreateDate(m.getCreateDate()); + bom.setConnFlag(1); + return bom; + } + + public void insertBatch(List<ProductBom> productBomList) { + mapper.insertBatchSomeColumn(productBomList); + } + + public List<ProductBom> getBomByProductId(Integer productId) { + QueryWrapper<ProductBom> query = Wrappers.query(); + query.eq("product_id",productId); + return mapper.selectList(query); + } + + public void deleteByProductId(Integer productId) { + UpdateWrapper<ProductBom> update = Wrappers.update(); + update.eq("product_id",productId); + mapper.delete(update); + } + + public List<ProductBom> getListByCodeAndModelList2(List<ProductBom> bomList) { + return mapper.getListByCodeAndModelList2(bomList); + } + + public List<ProductBom> getEnabledBomListByParentCodeAndCustomCode(String parentCode, String customCode) { + return mapper.getEnabledBomListByParentCodeAndCustomCode(parentCode,customCode); + } + + public void updateMaterialField2Bom() { + List<ProductBom> bomList = mapper.selectListWithMaterialField(); + mapper.updateMaterialField2BomBatch(bomList); + } } -- Gitblit v1.9.1