| | |
| | | import com.whyc.dto.FileDirPath; |
| | | import com.whyc.dto.Response; |
| | | import com.whyc.dto.ZipUtils; |
| | | 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.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.awt.image.BufferedImage; |
| | | import java.io.*; |
| | | import java.math.BigDecimal; |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.LinkedList; |
| | |
| | | @Service |
| | | public class ProductBomService { |
| | | |
| | | |
| | | @Autowired(required = false) |
| | | private ProductBomMapper mapper; |
| | | |
| | | @Autowired(required = false) |
| | | private MaterialMapper cponentMapper; |
| | | |
| | | @Autowired(required = false) |
| | | private ProductMapper productMapper; |
| | | |
| | | @Autowired |
| | | private DocLogService logService; |
| | |
| | | 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,"返回数据"); |
| | | } |
| | | |
| | | /**获取产品的信息(不包含子料)*/ |
| | |
| | | @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<>(); |
| | |
| | | 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()); |
| | |
| | | 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); |
| | | }); |
| | |
| | | File destfile = new File(dest); |
| | | if(!destfile.exists()) { |
| | | destfile.mkdir(); |
| | | } |
| | | }/*else{ |
| | | if(i==0){ |
| | | ZipUtils.delDir(dest); |
| | | } |
| | | }*/ |
| | | //source是文件,则用字节输入输出流复制文件 |
| | | try { |
| | | if(source.isFile()){ |
| | |
| | | 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 ); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | 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) { |
| | | 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); |
| | | endList.add(bom); |
| | | if(bom.getMaterials()!=null&&bom.getMaterials().size()>0){ |
| | | for (Material m:bom.getMaterials()) { |
| | | //将物料存放为一个bom为下载做准备 |
| | | ProductBom copyBom=copyMaterialToBom(m); |
| | | endList.add(copyBom); |
| | | } |
| | | } |
| | | }); |
| | | //将没有管理BOM的dwg文件拷贝下载 |
| | | 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); |
| | | //记录日志 |
| | | DocUser docUser= ActionUtil.getUser(); |
| | | String operationDetail="具体产品信息为:"+product.toString(); |
| | | String opreationMsg="执行了最新版产品下载操作"; |
| | | String terminalIp=req.getRemoteAddr(); |
| | | logService.recordOperationLog(docUser.getId(),docUser.getName(), UserOperation.TYPE_DOWNLOAD.getType(),new Date(),terminalIp,opreationMsg,operationDetail); |
| | | } |
| | | |
| | | |
| | | //根据产品信息创建excel表格并存放在指定目录 |
| | | private void creatBomExcel(HttpServletRequest req, HttpServletResponse resp,Product product,List list, HSSFWorkbook wb,String withOutDwg){ |
| | | String fileDirName = FileDirPath.getFileDirName(); |
| | | String rootFace=""; |
| | | String excelName=""; |
| | | String[] titleNames=new String[]{"序列","母物料编码","母物料名称","母物料型号","类别","子件编码","子件名称","子件型号" |
| | | ,"基本单位","子件数量","生产商","封装类型/材质","元件编号/料厚","表面处理/物料详情","备注","图片"}; |
| | | //字体格式-加粗 |
| | | HSSFCellStyle cellStyle = wb.createCellStyle(); |
| | | 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(); |
| | | } |
| | | //将没有管理BOM的dwg文件拷贝下载 |
| | | withOutDwg=fileDirName+File.separator+withOutDwg; |
| | | copyDir(withOutDwg,rootFace); |
| | | //将选中的文件存入指定目录下打包下载 |
| | | 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 { |
| | |
| | | } |
| | | } |
| | | } |
| | | try { |
| | | 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(excelName.getBytes("UTF-8"), "ISO8859-1") |
| | |
| | | in.close(); |
| | | out.close(); |
| | | file.delete(); |
| | | ZipUtils.delDir(rootFace); |
| | | } catch (FileNotFoundException | UnsupportedEncodingException e) { |
| | | e.printStackTrace(); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | //查询所有产品中没有与指定散装件关联的子件 |
| | | public Response getAllSubWithOutMaterial(int materialId) { |
| | | List<ProductBom> list=mapper.getAllSubWithOutMaterial(materialId); |
| | | return new Response().setII(1,list.size()>0,list,"返回数据"); |
| | | } |
| | | //根据母料型号查询子件信息及有最新版本关联的散装件信息 |
| | | /*public Response getSubByMaterialProduct(String parentModel) { |
| | | List<ProductBom> list=mapper.getSubByMaterialProduct(parentModel); |
| | | //查询出存在替换关系得散装件 |
| | | 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); |
| | | return new Response().setII(1,list.size()>0,list,"返回物料信息及关联物料"); |
| | | } |
| | | |
| | | //将物料存放为一个bom为下载做准备 |
| | | 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); |
| | | } |
| | | } |