From 66db1d15cf5d4b51a346a42b66f0505bd7f31ce0 Mon Sep 17 00:00:00 2001
From: whycxzp <glperry@163.com>
Date: 星期三, 03 一月 2024 15:23:47 +0800
Subject: [PATCH] 解压

---
 src/main/java/com/whyc/service/MaterialService.java |   92 +++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 86 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/whyc/service/MaterialService.java b/src/main/java/com/whyc/service/MaterialService.java
index 40ffa17..b8b49e1 100644
--- a/src/main/java/com/whyc/service/MaterialService.java
+++ b/src/main/java/com/whyc/service/MaterialService.java
@@ -8,10 +8,7 @@
 import com.whyc.dto.MaterialCheckDTO;
 import com.whyc.dto.Response;
 import com.whyc.mapper.MaterialMapper;
-import com.whyc.pojo.DocUser;
-import com.whyc.pojo.Material;
-import com.whyc.pojo.MaterialHistory;
-import com.whyc.pojo.ProductBom;
+import com.whyc.pojo.*;
 import com.whyc.util.DateUtil;
 import com.whyc.util.*;
 import org.apache.commons.codec.binary.Base64;
@@ -38,6 +35,9 @@
 
     @Autowired
     private MaterialHistoryService mhService;
+
+    @Autowired
+    private AttachLockService attachLockService;
 
     //鏌ヨ鎵�鏈夌殑鏁h浠朵俊鎭姞璁剧疆浜嗘浛鎹㈠叧绯荤殑瀛愪欢淇℃伅
     /*public Response getAllMaterial(String category,String subCode,String subName,String subModel,int pageCurr,int pageSize) {
@@ -222,9 +222,24 @@
         return mapper.getListByCodeAndModelList2(bomList);
     }
 
-    public Material getByCodeAndModel(String subCode, String subModel) {
+    /**
+     *
+     * @param subCode 鐗╂枡缂栫爜
+     * @param subModel 鐗╂枡鍨嬪彿
+     * @param equalSubModel 鏄惁绛変簬鐗╂枡鍨嬪彿,鐢ㄤ簬绛変簬鐗╂枡鍨嬪彿 鎴栬�� 鎺掗櫎鐗╂枡鍨嬪彿骞朵笖瀛樺湪闄勪欢
+     * @return
+     */
+    public Material getByCodeAndModel(String subCode, String subModel, boolean equalSubModel) {
         QueryWrapper<Material> query = Wrappers.query();
-        query.eq("sub_code",subCode).eq("sub_model",subModel).last(" limit 1");
+        query.eq("sub_code",subCode);
+        if(equalSubModel) {
+            query.eq("sub_model", subModel);
+        }else{
+            query.ne("sub_model", subModel);
+            query.isNotNull("file_url");
+        }
+        query.orderByDesc("id");
+        query.last(" limit 1");
         return mapper.selectOne(query);
     }
 
@@ -477,6 +492,39 @@
     }
 
     /**
+     * 杞Щ 琚鍒剁殑闄勪欢,鍒版柊鐨勭墿鏂�
+     * @param materialDB .fileUrl 琚鍒剁殑闄勪欢璺緞,渚嬪:doc_file\material\8468-0109000512-SHIDA-2455-OLD-ZX_A01
+     * @param material 鏂扮殑鐗╂枡
+     * @return 杩斿洖琚拷鍔犳枃浠剁殑鏂囦欢澶硅矾寰�
+     */
+    @Transactional
+    public Response transferCopiedAttachment(Material materialDB, Material material) throws IOException {
+        String fileUrlDir = materialDB.getFileUrl();
+        String subModel = material.getSubModel();
+        subModel = MaterialSpecialCharUtil.transfer(subModel);
+        String dirPathDB = "doc_file" + File.separator + "material" + File.separator + material.getId() + "-"+ material.getSubCode() + "-" + subModel;
+        String dirPath = CommonUtil.getRootFile() + "material" + File.separator + material.getId() + "-"+ material.getSubCode() + "-" + subModel;
+        File dirFile = new File(dirPath);
+
+        if(!dirFile.exists()){
+
+            dirFile.mkdirs();
+        }
+        FileUtil.copyDirectory(new File(CommonUtil.getProjectDir() + File.separator + fileUrlDir),dirFile);
+
+        //璁剧疆鐗╂枡瀵瑰簲鐨刦ileUrl鍙婄墿鏂欑姸鎬�
+        Material temp = new Material();
+        temp.setId(material.getId());
+        temp.setFileUrl(dirPathDB);
+        mapper.updateById(temp);
+
+        attachLockService.getAndInsert(materialDB.getId(),material.getId());
+
+
+        return new Response().set(1,true,"涓婁紶瀹屾垚");
+    }
+
+    /**
      * @param multipartFile 鏇存柊鐨勫浘绾告垨鍥剧墖
      * @param material
      */
@@ -628,4 +676,36 @@
         query.eq("sub_code",code).orderByDesc("id").last(" limit 1");
         return mapper.selectOne(query);
     }
+    //鐗╂枡鎺ㄩ�佸脊绐椾娇鐢�
+    public Response getMaterialDialog(String subCode, String subName, String subModel) {
+        List<Material> list=mapper.getMaterialLimit(subCode,subName,subModel);
+        String fileDirName = FileDirPath.getFileDirName();
+        int flag=0;
+        Material m=new Material();
+        // 杩斿洖鏄惁瀛樺湪闄勪欢
+        if(list!=null&&list.size()>0){
+                m=list.get(list.size()-1);
+                if(m.getFileUrl()!=null&&!m.getFileUrl().isEmpty()){
+                    File file = new File(fileDirName+File.separator+m.getFileUrl());
+                    if(!file.exists()) {
+                        flag=0;
+                    }else{
+                        String[] fileNames = file.list();//鑾峰彇璇ユ枃浠跺す涓嬬殑鎵�鏈夋枃浠朵互鍙婄洰褰曠殑鍚嶅瓧
+                        List attachFileList=new ArrayList();
+                        if(fileNames.length>0){
+                            flag=1;
+                            for (int i=0;i<fileNames.length;i++){
+                                if(!fileNames[i].contains("-dwg.pdf")&&!fileNames[i].contains("-doc.pdf"))
+                                    attachFileList.add(fileNames[i]);
+                            }
+                        }else{
+                            flag=0;
+                        }
+                        m.setAttachFileList(attachFileList);
+                    }
+                }
+                m.setHasAttachFlag(flag);
+            }
+        return new Response().setII(1,m!=null,m,"鐗╂枡鎺ㄩ�佸脊绐椾娇鐢�");
+    }
 }

--
Gitblit v1.9.1