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