From af432a8495b163da3bbdef7d7d6c44014396651f Mon Sep 17 00:00:00 2001 From: whyclxw <810412026@qq.com> Date: 星期六, 14 六月 2025 18:29:05 +0800 Subject: [PATCH] 跳转详情 --- src/main/java/com/whyc/service/BomAcceptanceService.java | 339 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 334 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/whyc/service/BomAcceptanceService.java b/src/main/java/com/whyc/service/BomAcceptanceService.java index c82fffc..7a29d8a 100644 --- a/src/main/java/com/whyc/service/BomAcceptanceService.java +++ b/src/main/java/com/whyc/service/BomAcceptanceService.java @@ -1,6 +1,7 @@ package com.whyc.service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.whyc.dto.Response; @@ -8,14 +9,20 @@ 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.IndexedColors; 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.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; import java.util.Date; import java.util.List; @@ -27,8 +34,10 @@ private BomAcceptanceMapper mapper; //涓婁紶浜у搧楠屾敹淇℃伅 - public Response uploadBomAcceptance(MultipartFile fileLeft, MultipartFile fileRight, MultipartFile fileFront, MultipartFile fileBack, List<MultipartFile> multipartFileList, BomAcceptance bomAcceptance) throws IOException { + public Response uploadBomAcceptance(MultipartFile fileLeft, MultipartFile fileRight, MultipartFile fileFront, MultipartFile fileBack + ,MultipartFile agreement, List<MultipartFile> multipartFileList, BomAcceptance bomAcceptance) throws IOException { Date date = new Date(); + bomAcceptance.setCreateTime(date); long time = date.getTime(); String rootFile = CommonUtil.getRootFile(); //閰嶄欢瀛樺偍 @@ -86,7 +95,7 @@ fileFront.transferTo(new File(path)); bomAcceptance.setDevPicfront("doc_file" + File.separator + devDirSuffix+originalFilename); } - //宸﹁鍥� + //鍚庨潰鍥� if(fileBack!=null){ //瀛樺偍鏂囦欢 String originalFilename = fileBack.getOriginalFilename(); @@ -96,6 +105,19 @@ createFilefolderIFNotExist(path); fileBack.transferTo(new File(path)); bomAcceptance.setDevPicback("doc_file" + File.separator + devDirSuffix+originalFilename); + } + String agreeDirSuffix = "acceptance_bom" + File.separator + time + File.separator+ "agree" + File.separator; + String agreeDir = rootFile + agreeDirSuffix; + //鍗忚 + if(agreement!=null){ + //瀛樺偍鏂囦欢 + String originalFilename = agreement.getOriginalFilename(); + String fileName = originalFilename.substring(0, originalFilename.lastIndexOf(".")); + String suffix = originalFilename.substring(originalFilename.lastIndexOf(".")); + String path = agreeDir + fileName + suffix; + createFilefolderIFNotExist(path); + agreement.transferTo(new File(path)); + bomAcceptance.setBomAgreement("doc_file" + File.separator + agreeDirSuffix+originalFilename); } mapper.insert(bomAcceptance); return new Response().set(1,true,"涓婁紶鎴愬姛"); @@ -113,6 +135,9 @@ if(bomAcceptance.getBomModel()!=null){ wrapper.like("bom_model",bomAcceptance.getBomModel()); } + if(bomAcceptance.getBomVersion()!=null){ + wrapper.like("bom_version",bomAcceptance.getBomVersion()); + } if(bomAcceptance.getCreateTime()!=null){ wrapper.ge("create_time",bomAcceptance.getCreateTime()); } @@ -123,8 +148,8 @@ String rootFile = CommonUtil.getRootFile();//涓昏矾寰� if(list!=null&&list.size()>0){ for (BomAcceptance acceptance:list) { - acceptance.setSparePicpart("doc_file"+File.separator+acceptance.getSparePicpart()); String filePath=rootFile+acceptance.getSparePicpart(); + acceptance.setSparePicpart("doc_file"+File.separator+acceptance.getSparePicpart()); //鑾峰彇鏂囦欢澶逛笅鎵�鏈夌殑鍥剧墖鍚� acceptance.setNameList(FileUtil.getFileNameWithOutDirectory(filePath)); } @@ -132,4 +157,308 @@ PageInfo pageInfo=new PageInfo(list); return new Response().setII(1,list.size()>0,pageInfo,"鏌ヨ浜у搧楠屾敹淇℃伅"); } + //鍒犻櫎浜у搧楠屾敹淇℃伅 + public Response delBomAcceptance(int num) { + UpdateWrapper wrapper=new UpdateWrapper(); + wrapper.eq("num",num); + int bl=mapper.delete(wrapper); + return new Response().setII(1,bl>0,bl,"鍒犻櫎浜у搧楠屾敹淇℃伅"); + } + //缂栬緫浜у搧楠屾敹淇℃伅 + public Response updateBomAcceptance(BomAcceptance bomAcceptance) { + UpdateWrapper wrapper=new UpdateWrapper(); + wrapper.eq("num",bomAcceptance.getNum()); + 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();//涓昏矾寰� + UpdateWrapper wrapper=new UpdateWrapper(); + wrapper.eq("num",num); + if(picNum==1){ + wrapper.set("dev_picleft",newPicUrl); + } + if(picNum==2){ + wrapper.set("dev_picright",newPicUrl); + } + if(picNum==3){ + wrapper.set("dev_picfront",newPicUrl); + } + if(picNum==4){ + wrapper.set("dev_picback",newPicUrl); + } + if(picNum==5){ + wrapper.set("spare_picpart",newPicUrl); + } + if(picNum==6){ + wrapper.set("bom_agreement",newPicUrl); + } + int flag=mapper.update(null,wrapper); + if(flag>0){ + rootFile=rootFile.replace("doc_file",""); + //鍒犻櫎鍥剧墖 + FileUtil.deleteFile(new File(rootFile+picUrl)); + } + } + //缂栬緫鍗曚釜鍥剧墖涓婁紶 + public Response updateDevPic(MultipartFile filePic, int num,int picNum,String picUrl) 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 devDir = rootFile + devDirSuffix; + //鍚庨潰鍥� + if(filePic!=null){ + //瀛樺偍鏂囦欢 + String originalFilename = filePic.getOriginalFilename(); + String fileName = originalFilename.substring(0, originalFilename.lastIndexOf(".")); + String suffix = originalFilename.substring(originalFilename.lastIndexOf(".")); + String path = devDir + fileName + suffix; + createFilefolderIFNotExist(path); + filePic.transferTo(new File(path)); + String devFile="doc_file" + File.separator + devDirSuffix+originalFilename; + //鍒犻櫎鏃х殑 + delPic(num,picNum,picUrl,devFile); + return new Response().set(1,true,"涓婁紶鏂板浘鐗囨垚鍔�"); + }else{ + return new Response().set(1,false,"鍥剧墖涓嶅瓨鍦�"); + } + } + //缂栬緫澶氫釜鍥剧墖涓婁紶 + public Response updatePartPic(List<MultipartFile> multipartFileList, String picUrl) throws IOException { + String rootFile = CommonUtil.getRootFile(); + rootFile=rootFile.replace("doc_file",""); + //閰嶄欢瀛樺偍 + 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 sparePath = rootFile+picUrl + fileName + suffix; + File file = new File(sparePath); + multipartFile.transferTo(file); + } + 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(req,resp,bomAcceptance); + } + //鐢熸垚excel + private void creatBomAcceptanceExcel(HttpServletRequest req, HttpServletResponse resp, BomAcceptance bomAcceptance) { + String fileName="浜у搧楠屾敹淇℃伅璁板綍"; + //鍒涘缓鍗曚釜sheet + HSSFWorkbook wb = new HSSFWorkbook(); + //瀛椾綋鏍煎紡-鍔犵矖 + HSSFCellStyle cellStyle = wb.createCellStyle(); + cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); + HSSFFont font = wb.createFont(); + font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); + cellStyle.setFont(font); + HSSFSheet sheet = wb.createSheet("浜у搧楠屾敹淇℃伅璁板綍"); + sheet.setColumnWidth(1,10000); + sheet.setDefaultRowHeight((short)(1000)); + //鍥剧墖鍏冪礌 + HSSFPatriarch patriarch = sheet.createDrawingPatriarch(); + int rowNum=0; + HSSFRow row=sheet.createRow(rowNum); + HSSFCell cell=row.createCell(0); + cell=row.createCell(0); + cell.setCellValue("浜у搧楠屾敹淇℃伅璁板綍"); + cell.setCellStyle(cellStyle); + + 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); + + rowNum++; + row=sheet.createRow(rowNum); + cell=row.createCell(0); + cell.setCellValue("闀縳瀹絰楂�(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("涓绘満鐓х墖(宸︿晶鍥撅紝姝i潰鍥撅紝鍙充晶鍥撅紝鍚庨潰鍥�)"); + 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); + 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); + 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); + String agreement=bomAcceptance.getBomAgreement(); + cell.setCellValue(agreement); + cell.setCellStyle(cellStyle); + //灏嗘枃浠跺瓨鍒版寚瀹氫綅缃� + 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 filePath=rootFile+bomAcceptance.getSparePicpart(); + bomAcceptance.setSparePicpart("doc_file"+File.separator+bomAcceptance.getSparePicpart()); + //鑾峰彇鏂囦欢澶逛笅鎵�鏈夌殑鍥剧墖鍚� + bomAcceptance.setNameList(FileUtil.getFileNameWithOutDirectory(filePath)); + return new Response().set(1,bomAcceptance,"璺宠浆璇︽儏"); + } } \ No newline at end of file -- Gitblit v1.9.1