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; import com.whyc.mapper.BomAcceptanceMapper; 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 javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.IOException; import java.util.Date; import java.util.List; import static com.whyc.util.ActionUtil.createFilefolderIFNotExist; @Service public class BomAcceptanceService { @Autowired(required = false) private BomAcceptanceMapper mapper; //上传产品验收信息 public Response uploadBomAcceptance(MultipartFile fileLeft, MultipartFile fileRight, MultipartFile fileFront, MultipartFile fileBack ,MultipartFile agreement, List multipartFileList, BomAcceptance bomAcceptance) throws IOException { Date date = new Date(); bomAcceptance.setCreateTime(date); long time = date.getTime(); String rootFile = CommonUtil.getRootFile(); //配件存储 if(multipartFileList!=null && multipartFileList.size()!=0){ String spareDirSuffix = "acceptance_bom" + File.separator + time + File.separator+ "spare" + File.separator; String spareDir = rootFile + spareDirSuffix; File fileDir = new File(spareDir); if (!fileDir.exists()) { fileDir.mkdirs(); } 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 = spareDir + fileName + suffix; File file = new File(sparePath); multipartFile.transferTo(file); } bomAcceptance.setSparePicpart(spareDirSuffix); } String devDirSuffix = "acceptance_bom" + File.separator + time + File.separator+ "dev" + File.separator; String devDir = rootFile + devDirSuffix; //左视图 if(fileLeft!=null){ //存储文件 String originalFilename = fileLeft.getOriginalFilename(); String fileName = originalFilename.substring(0, originalFilename.lastIndexOf(".")); String suffix = originalFilename.substring(originalFilename.lastIndexOf(".")); String path = devDir + fileName + suffix; createFilefolderIFNotExist(path); fileLeft.transferTo(new File(path)); bomAcceptance.setDevPicleft("doc_file" + File.separator + devDirSuffix+originalFilename); } //右视图 if(fileRight!=null){ //存储文件 String originalFilename = fileRight.getOriginalFilename(); String fileName = originalFilename.substring(0, originalFilename.lastIndexOf(".")); String suffix = originalFilename.substring(originalFilename.lastIndexOf(".")); String path = devDir + fileName + suffix; createFilefolderIFNotExist(path); fileRight.transferTo(new File(path)); bomAcceptance.setDevPicright("doc_file" + File.separator + devDirSuffix+originalFilename); } //正面图 if(fileFront!=null){ //存储文件 String originalFilename = fileFront.getOriginalFilename(); String fileName = originalFilename.substring(0, originalFilename.lastIndexOf(".")); String suffix = originalFilename.substring(originalFilename.lastIndexOf(".")); String path = devDir + fileName + suffix; createFilefolderIFNotExist(path); fileFront.transferTo(new File(path)); bomAcceptance.setDevPicfront("doc_file" + File.separator + devDirSuffix+originalFilename); } //后面图 if(fileBack!=null){ //存储文件 String originalFilename = fileBack.getOriginalFilename(); String fileName = originalFilename.substring(0, originalFilename.lastIndexOf(".")); String suffix = originalFilename.substring(originalFilename.lastIndexOf(".")); String path = devDir + fileName + suffix; 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,"上传成功"); } //查询产品验收信息 public Response getBomAcceptance(BomAcceptance bomAcceptance, int pageNum, int pageSize) { PageHelper.startPage(pageNum,pageSize); QueryWrapper wrapper=new QueryWrapper(); if(bomAcceptance.getDirectName()!=null){ wrapper.like("direct_name",bomAcceptance.getDirectName()); } if(bomAcceptance.getBomSeries()!=null){ wrapper.like("bom_series",bomAcceptance.getBomSeries()); } 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()); } if(bomAcceptance.getCreateTime1()!=null){ wrapper.le("create_time",bomAcceptance.getCreateTime1()); } List list = mapper.selectList(wrapper); String rootFile = CommonUtil.getRootFile();//主路径 if(list!=null&&list.size()>0){ for (BomAcceptance acceptance:list) { String filePath=rootFile+acceptance.getSparePicpart(); acceptance.setSparePicpart("doc_file"+File.separator+acceptance.getSparePicpart()); //获取文件夹下所有的图片名 acceptance.setNameList(FileUtil.getFileNameWithOutDirectory(filePath)); } } 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 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) { //创建单个sheet HSSFWorkbook wb = new HSSFWorkbook(); //字体格式-加粗 HSSFCellStyle cellStyle = wb.createCellStyle(); cellStyle.setFillForegroundColor(IndexedColors.GOLD.getIndex());//添加前景色,内容看的清楚 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(); HSSFRow row=sheet.createRow(1); HSSFCell cell=row.createCell(0); cell=row.createCell(0); cell.setCellValue("产品验收信息记录"); cell.setCellStyle(cellStyle); } }