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