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/WorksheetLinkService.java |  105 ++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 92 insertions(+), 13 deletions(-)

diff --git a/src/main/java/com/whyc/service/WorksheetLinkService.java b/src/main/java/com/whyc/service/WorksheetLinkService.java
index 2df3ded..a93f1d8 100644
--- a/src/main/java/com/whyc/service/WorksheetLinkService.java
+++ b/src/main/java/com/whyc/service/WorksheetLinkService.java
@@ -3,11 +3,13 @@
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.whyc.config.EnumWorksheetType;
+import com.whyc.dto.Response;
 import com.whyc.mapper.ProductBomApprovingMapper;
 import com.whyc.mapper.WorksheetLinkMapper;
 import com.whyc.pojo.*;
 import com.whyc.util.CommonUtil;
 import com.whyc.util.FileUtil;
+import com.whyc.util.WordUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -15,6 +17,7 @@
 
 import javax.annotation.Resource;
 import java.io.File;
+import java.io.FilenameFilter;
 import java.io.IOException;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -66,6 +69,12 @@
 
     @Autowired
     private ProductHistoryService phService;
+
+    @Autowired
+    private ProcedureDocApprovingService procedureDocApprovingService;
+
+    @Autowired
+    private ProcedureDocService procedureDocService;
 
     @Transactional
     public void audit(WorksheetLink link) {
@@ -264,6 +273,15 @@
                     }
                 });
 
+                picUrlList.forEach(picUrl->{
+                    String picFullName = picUrl.substring(picUrl.lastIndexOf(File.separator) + 1);
+                    try {
+                        FileCopyUtils.copy(new File(picUrl),new File(materialDir+File.separator+picFullName));
+                    } catch (IOException e) {
+                        e.printStackTrace();
+                    }
+                });
+
 
                 //杞Щ瀹℃壒琛ㄦ暟鎹埌鍘嗗彶琛�/鏈�鏂扮増鏈〃 product_history/product_bom_history/product/product_bom
                 ProductHistory productHistory = new ProductHistory();
@@ -313,7 +331,7 @@
                     bom.setThickness(approving.getThickness());
                     bom.setType(approving.getType());
                     bom.setUnit(approving.getUnit());
-                    bom.setUpUserId(approving.getUpUserId());
+                    //bom.setUpUserId(approving.getUpUserId());
                     bom.setVersion(nextVersion);
 
                     bomHistory.setProductId(productHistory.getId());
@@ -333,7 +351,7 @@
                     bomHistory.setThickness(approving.getThickness());
                     bomHistory.setType(approving.getType());
                     bomHistory.setUnit(approving.getUnit());
-                    bomHistory.setUpUserId(approving.getUpUserId());
+                    //bomHistory.setUpUserId(approving.getUpUserId());
                     bomHistory.setVersion(nextVersion);
 
                     productBomHistoryList.add(bomHistory);
@@ -349,21 +367,22 @@
                 approvingList.forEach(approving->{
                     if(!existCodeList.contains(approving.getSubCode())){ //杩欎釜瀹℃壒bom涓殑鐗╂枡涓嶅湪鐗╂枡绠$悊鍐�
                         Material temp = new Material();
-                        temp.setCategory(approving.getCategory());
+                        //temp.setCategory(approving.getCategory());
                         temp.setCreateDate(new Date());
                         temp.setDwgUrl(approving.getDwgUrl());
                         temp.setFileUrl(approving.getFileUrl());
-                        temp.setMaterial(approving.getMaterial());
+                        //temp.setMaterial(approving.getMaterial());
                         temp.setNotes(approving.getNotes());
                         temp.setPictureUrl(approving.getPictureUrl());
-                        temp.setProducer(approving.getProducer());
-                        temp.setQuantity(approving.getQuantity());
+                        //temp.setProducer(approving.getProducer());
+                        //TODO quantity
+                        //temp.setQuantity(approving.getQuantity());
                         temp.setStatus(1);
                         temp.setSubCode(approving.getSubCode());
                         temp.setSubModel(approving.getSubModel());
                         temp.setSubName(approving.getSubName());
-                        temp.setSurfaceDetail(approving.getSurfaceDetail());
-                        temp.setThickness(approving.getThickness());
+                        //temp.setSurfaceDetail(approving.getSurfaceDetail());
+                        //temp.setThickness(approving.getThickness());
                         temp.setType(approving.getType());
                         temp.setUnit(approving.getUnit());
                         materialList.add(temp);
@@ -373,7 +392,9 @@
                     mService.insertBatch(materialList);
                 }
                 //灏哾wg鍥剧焊,鍏ㄩ儴鏇存柊鍒板搴旂殑璁板綍url涓�
-                mService.updateDwgUrl(materialDwgUrlNameList);
+                if(materialDwgUrlNameList.size()!=0) {
+                    mService.updateDwgUrl(materialDwgUrlNameList);
+                }
                 /*List<ProductBomApproving> fileBomApprovingList = approvingList.stream()
                         .filter(productBomApproving ->
                                 productBomApproving.getPictureUrl() != null || productBomApproving.getDwgUrl() != null
@@ -461,13 +482,14 @@
                     //灏嗙墿鏂欎粠瀹℃壒琛ㄤ腑杞Щ鍒版寮忚〃
                     approvingList.forEach(approve -> {
                         Material material = new Material();
-                        material.setCategory(approve.getCategory());
+                        //material.setCategory(approve.getCategory());
                         material.setSubCode(approve.getSubCode());
                         material.setSubName(approve.getSubName());
                         material.setSubModel(approve.getSubModel());
                         material.setUnit(approve.getUnit());
-                        material.setQuantity(approve.getQuantity());
-                        material.setProducer(approve.getProducer());
+                        //TODO quantity
+                        //material.setQuantity(approve.getQuantity());
+                        //material.setProducer(approve.getProducer());
                         material.setNotes(approve.getNotes());
                         material.setCreateDate(new Date());
                         material.setStatus(1);
@@ -503,7 +525,7 @@
                             his.setCustomCode(approving.getCustomCode());
                             his.setSVersion(approving.getVersion());
                             his.setEVersion(approving.getVersion());
-                            his.setSubCode(approving.getSubCode());
+                            his.setSubMaterialId(approving.getSubMaterialId());
                             his.setQuantity(approving.getQuantity());
                             his.setMaterialId(approving.getMaterialId());
                             his.setCreateTime(new Date());
@@ -570,4 +592,61 @@
     public DocUser getApprovingUser(Integer mainId) {
         return linkMapper.getApprovingUser(mainId);
     }
+
+    @Transactional
+    public Response confirmProductProcedureAndSOP(WorksheetLink link) throws IOException {
+        Integer mainId = linkMapper.selectById(link.getId()).getMainId();
+        //鏇存柊瀛愯〃
+        linkMapper.updateById(link);
+        if(link.getLinkStatus() ==1){
+            //鏌ヨ褰撳墠鍗曟嵁瀛愯〃鏄惁宸茬粡鍏ㄩ儴鍚屾剰
+            QueryWrapper<WorksheetLink> query = Wrappers.query();
+            query.eq("main_id",mainId);
+            List<WorksheetLink> linkList = linkMapper.selectList(query);
+            List<WorksheetLink> rejectList = linkList.stream().filter(linkFilter -> linkFilter.getLinkStatus() != 1).collect(Collectors.toList());
+            if(rejectList == null){
+                //閮戒负1,宸茬‘璁�
+                mainService.updateEndStatusById(mainId,"宸茬‘璁�",5);
+                //鏂囦欢杞Щ鍒板鎵瑰畬鎴愬悗鐨勬寮忚矾寰� 鏂囦欢淇濆瓨鍦�/doc_file/procedure/xxx.doc
+                ProcedureDocApproving approving = procedureDocApprovingService.getByMainId(mainId);
+                String fileRelativePath = approving.getFile();
+                String projectDir = CommonUtil.getProjectDir();
+                String inFilePath = projectDir + File.separator + fileRelativePath;
+                String outFilePath = (projectDir + File.separator + fileRelativePath).replace("_approving","");
+                WordUtil.fillValue(inFilePath,outFilePath,Arrays.asList(approving.getFzr(),approving.getBz(),approving.getZz(),approving.getPb()));
+                //鍒犻櫎涔嬪墠棰勮浜х敓鐨勪腑闂存枃浠�
+                String filename = fileRelativePath.substring(fileRelativePath.lastIndexOf(File.separator)+1,fileRelativePath.lastIndexOf("."));
+                File approvingDir = new File(projectDir + File.separator + "procedure_approving");
+                FilenameFilter filenameFilter = new FilenameFilter() {
+                    @Override
+                    public boolean accept(File dir, String name) {
+                        name = name.substring(0,name.lastIndexOf("."));
+                        if(name.contains(filename) && !name.equals(filename)){
+                            return true;
+                        }
+                        return false;
+                    }
+                };
+                File[] files = approvingDir.listFiles(filenameFilter);
+                for (File file : files) {
+                    file.delete();
+                }
+
+                //娴佺▼鏂囦欢鏁版嵁杞Щ
+                ProcedureDoc procedureDoc = new ProcedureDoc();
+                procedureDoc.setName(approving.getName());
+                procedureDoc.setDescription(approving.getDescription());
+                procedureDoc.setVersion(approving.getVersion());
+                procedureDoc.setFzr(approving.getFzr());
+                procedureDoc.setBz(approving.getBz());
+                procedureDoc.setType(approving.getType());
+                procedureDoc.setCreateTime(new Date());
+                procedureDoc.setFile(fileRelativePath.replace("_approving",""));
+                procedureDocService.insert(procedureDoc);
+            }
+        }else{
+            mainService.updateEndStatusById(mainId,"宸查┏鍥�",0);
+        }
+        return new Response().set(1);
+    }
 }

--
Gitblit v1.9.1