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/MaterialService.java | 133 +++++++++++++++++++++++++++++++++++++------- 1 files changed, 111 insertions(+), 22 deletions(-) diff --git a/src/main/java/com/whyc/service/MaterialService.java b/src/main/java/com/whyc/service/MaterialService.java index 4c96633..30bc030 100644 --- a/src/main/java/com/whyc/service/MaterialService.java +++ b/src/main/java/com/whyc/service/MaterialService.java @@ -5,13 +5,11 @@ import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.whyc.dto.FileDirPath; +import com.whyc.dto.MailDTO; 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 +36,15 @@ @Autowired private MaterialHistoryService mhService; + + @Autowired + private AttachLockService attachLockService; + + @Autowired + private MailService mailService; + + @Autowired + private MailUserService mailUserService; //鏌ヨ鎵�鏈夌殑鏁h浠朵俊鎭姞璁剧疆浜嗘浛鎹㈠叧绯荤殑瀛愪欢淇℃伅 /*public Response getAllMaterial(String category,String subCode,String subName,String subModel,int pageCurr,int pageSize) { @@ -211,6 +218,41 @@ material.setFileUrl(null); }); mapper.insertBatchSomeColumn(materialList); + /*0120寮�澶寸殑鐗╂枡涓婁紶鍚庯紝绯荤粺鑷姩鍙戦偖浠跺搴斾汉鍛橈細鍚存禋銆侀檲鍗撱�佺唺瀹舵澃銆侀挶闀滃厓銆佹柤濂� + 0108銆�0109寮�澶寸殑鐗╂枡涓婁紶鍚庯紝绯荤粺鑷姩鍙戦偖浠跺搴斾汉鍛橈細鍠昏壋銆佽鎴愩�佺唺蹇楀钩銆佸彾鑳滆摑 */ + List<String> materialCodeList = materialList.stream().map(Material::getSubCode).collect(Collectors.toList()); + //浠巑aterialList涓煡鎵� subCode浠�0120寮�澶寸殑鎵�鏈夌墿鏂欓泦鍚� + List<Material> materialCodeList0120 = materialList.stream().filter(material -> material.getSubCode().startsWith("0120")).collect(Collectors.toList()); + //浠巑aterialList涓煡鎵� subCode浠�0108鎴�0109寮�澶寸殑鎵�鏈夌墿鏂欓泦鍚� + List<Material> materialCodeList0809 = materialList.stream().filter(material -> material.getSubCode().startsWith("0108") || material.getSubCode().startsWith("0109")).collect(Collectors.toList()); + + //濡傛灉瀛樺湪,鍒欏垱寤洪偖浠跺璞� + if(materialCodeList0120.size()>0 || materialCodeList0809.size()>0) { + DocUser user = ActionUtil.getUser(); + MailDTO mailDTO = new MailDTO(); + String now = DateUtil.YYYY_MM_DD_HH_MM_SS.format(new Date()); + mailDTO.setTitle("銆愮墿鏂欎笂浼犳彁閱掋��"); + if(materialCodeList0120.size()>0){ + String subCodeJoin = materialCodeList0120.stream().map(Material::getSubCode).collect(Collectors.joining(",")); + String subNameJoin = materialCodeList0120.stream().map(Material::getSubName).collect(Collectors.joining(",")); + String subModelJoin = materialCodeList0120.stream().map(Material::getSubModel).collect(Collectors.joining(",")); + + List<MailUser> mailUserList = mailUserService.getMailUserList(5); + mailDTO.setMailList(mailUserList.stream().map(MailUser::getMail).collect(Collectors.toList())); + mailDTO.setContent(user.getName() + "鍦ㄦ枃妗g鐞嗗钩鍙�"+now+"涓婁紶浜�0120寮�澶寸殑鐗╂枡,璇︾粏淇℃伅濡備笅:\n鐗╂枡缂栫爜:"+subCodeJoin+"\n鐗╂枡鍚嶇О:"+subNameJoin+"\n瑙勬牸鍨嬪彿:"+subModelJoin); + mailService.sendMail(mailDTO); + } + if (materialCodeList0809.size()>0) { + String subCodeJoin = materialCodeList0809.stream().map(Material::getSubCode).collect(Collectors.joining(",")); + String subNameJoin = materialCodeList0809.stream().map(Material::getSubName).collect(Collectors.joining(",")); + String subModelJoin = materialCodeList0809.stream().map(Material::getSubModel).collect(Collectors.joining(",")); + + List<MailUser> mailUserList = mailUserService.getMailUserList(6); + mailDTO.setMailList(mailUserList.stream().map(MailUser::getMail).collect(Collectors.toList())); + mailDTO.setContent(user.getName() + "鍦ㄦ枃妗g鐞嗗钩鍙�"+now+"涓婁紶浜�0108鎴�0109寮�澶寸殑鐗╂枡,璇︾粏淇℃伅濡備笅:\n鐗╂枡缂栫爜:"+subCodeJoin+"\n鐗╂枡鍚嶇О:"+subNameJoin+"\n瑙勬牸鍨嬪彿:"+subModelJoin); + mailService.sendMail(mailDTO); + } + } return new Response().set(1,true,"鏂板瀹屾垚"); } @@ -220,6 +262,10 @@ public List<Material> getListByCodeAndModelList2(List<ProductBom> bomList) { return mapper.getListByCodeAndModelList2(bomList); + } + + public List<Material> getListByCodeAndModelList3(List<ProductBom> bomList) { + return mapper.getListByCodeAndModelList3(bomList); } /** @@ -260,8 +306,11 @@ File parentFile = new File(filePath); String originalFilename = file.getOriginalFilename(); File zipFile = new File(filePath+File.separator+ originalFilename); - if(!zipFile.exists()){ + /*if(!zipFile.exists()){ zipFile.mkdirs(); + }*/ + if (!parentFile.exists()) { + parentFile.mkdirs(); } file.transferTo(zipFile); //瑙e帇鏂囦欢澶� @@ -424,28 +473,33 @@ public Response addAttachment(List<MultipartFile> multipartFileList, Material material) throws IOException { List<String> currentFileList = new LinkedList<>(); List<String> uploadingFileList = new LinkedList<>(); - + String subCode = material.getSubCode(); 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; + String dirPathDB = "doc_file" + File.separator + "material" + File.separator + material.getId() + "-"+ subCode + "-" + subModel; + String dirPath = CommonUtil.getRootFile() + "material" + File.separator + material.getId() + "-"+ subCode + "-" + subModel; File dirFile = new File(dirPath); Date now = new Date(); //long timestamp = now.getTime(); String formattedTimestamp = DateUtil.YYYY_MM_DD_HH_MM_SS_UNION.format(now); + String formattedNow = DateUtil.YYYY_MM_DD_HH_MM_SS.format(now); boolean dirFileExist = true; if(!dirFile.exists()){ dirFile.mkdirs(); dirFileExist = false; } + StringBuilder fileNameJoin = new StringBuilder(); for (int i = 0; i < multipartFileList.size(); i++) { MultipartFile multipartFile = multipartFileList.get(i); String originalFilename = multipartFile.getOriginalFilename(); + fileNameJoin.append(originalFilename).append(","); File zipFile = new File(dirPath + File.separator + originalFilename.substring(0,originalFilename.lastIndexOf(".")) + "_" + formattedTimestamp + originalFilename.substring(originalFilename.lastIndexOf("."))); multipartFile.transferTo(zipFile); } + //fileNameJoin鍘婚櫎鏈�鍚庝竴涓厓绱� + fileNameJoin.deleteCharAt(fileNameJoin.length()-1); /*//瑙e帇鏂囦欢澶�,鍒犻櫎鍘焭ip鏂囦欢 String unPackageDir = dirPath + File.separator + timestamp; Zip4jUtil.unPackZip(zipFile, null, unPackageDir); @@ -487,39 +541,55 @@ //涓婁紶鐨勬枃浠跺す杞Щ鍒版寮忚矾寰� org.aspectj.util.FileUtil.copyDir(unPackageFile,dirFile); FileUtil.deleteFile(unPackageFile);*/ - + /*0120寮�澶寸殑鐗╂枡涓婁紶鍚庯紝绯荤粺鑷姩鍙戦偖浠跺搴斾汉鍛橈細鍚存禋銆侀檲鍗撱�佺唺瀹舵澃銆侀挶闀滃厓銆佹柤濂� + 0108銆�0109寮�澶寸殑鐗╂枡涓婁紶鍚庯紝绯荤粺鑷姩鍙戦偖浠跺搴斾汉鍛橈細鍠昏壋銆佽鎴愩�佺唺蹇楀钩銆佸彾鑳滆摑 */ + MailDTO mailDTO = new MailDTO(); + DocUser user = ActionUtil.getUser(); + Material materialById = mapper.getMaterialById(material.getId()); + mailDTO.setTitle("銆愰檮浠舵洿鏂版彁閱掋��"); + if(subCode.startsWith("0120")){ + List<MailUser> mailUserList = mailUserService.getMailUserList(5); + mailDTO.setMailList(mailUserList.stream().map(MailUser::getMail).collect(Collectors.toList())); + mailDTO.setContent(user.getName()+"鍦ㄦ枃妗g鐞嗗钩鍙�"+formattedNow+"涓婁紶浜嗛檮浠�,璇︾粏淇℃伅濡備笅:\n鐗╂枡缂栫爜:"+subCode+"\n鐗╂枡鍚嶇О:"+materialById.getSubName()+"\n鐗╂枡鍨嬪彿:"+subModel+"\n闄勪欢鍚嶇О:"+fileNameJoin.toString()); + mailService.sendMail(mailDTO); + }else if (subCode.startsWith("0108")|| subCode.startsWith("0109")){ + List<MailUser> mailUserList = mailUserService.getMailUserList(6); + mailDTO.setMailList(mailUserList.stream().map(MailUser::getMail).collect(Collectors.toList())); + mailDTO.setContent(user.getName()+"鍦ㄦ枃妗g鐞嗗钩鍙�"+formattedNow+"涓婁紶浜嗛檮浠�,璇︾粏淇℃伅濡備笅:\n鐗╂枡缂栫爜:"+subCode+"\n鐗╂枡鍚嶇О:"+materialById.getSubName()+"\n鐗╂枡鍨嬪彿:"+subModel+"\n闄勪欢鍚嶇О:"+fileNameJoin.toString()); + mailService.sendMail(mailDTO); + } return new Response().set(1,true,"涓婁紶瀹屾垚"); } /** * 杞Щ 琚鍒剁殑闄勪欢,鍒版柊鐨勭墿鏂� - * @param fileUrlDir 琚鍒剁殑闄勪欢璺緞,渚嬪:doc_file\material\8468-0109000512-SHIDA-2455-OLD-ZX_A01 + * @param materialDB .fileUrl 琚鍒剁殑闄勪欢璺緞,渚嬪:doc_file\material\8468-0109000512-SHIDA-2455-OLD-ZX_A01 * @param material 鏂扮殑鐗╂枡 * @return 杩斿洖琚拷鍔犳枃浠剁殑鏂囦欢澶硅矾寰� */ @Transactional - public Response transferCopiedAttachment(String fileUrlDir, Material material) throws IOException { + 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); - boolean dirFileExist = true; if(!dirFile.exists()){ dirFile.mkdirs(); - dirFileExist = false; } FileUtil.copyDirectory(new File(CommonUtil.getProjectDir() + File.separator + fileUrlDir),dirFile); - if(!dirFileExist){ - //璺緞涓嶅瓨鍦�,璇存槑鏄娆′笂浼�,璁剧疆鐗╂枡瀵瑰簲鐨刦ileUrl - Material temp = new Material(); - temp.setId(material.getId()); - temp.setFileUrl(dirPathDB); - mapper.updateById(temp); - } + //璁剧疆鐗╂枡瀵瑰簲鐨刦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,"涓婁紶瀹屾垚"); } @@ -532,15 +602,17 @@ public Response updatePicOrDwg(MultipartFile multipartFile, Material material) throws IOException { List<String> currentFileList = new LinkedList<>(); List<String> uploadingFileList = new LinkedList<>(); + String subCode = material.getSubCode(); String subModel = material.getSubModel(); subModel = MaterialSpecialCharUtil.transfer(subModel); - String dirPathDB = "doc_file" + File.separator + "material" + File.separator + material.getSubCode() + "-" + subModel; - String dirPath = CommonUtil.getRootFile() + "material" + File.separator + material.getSubCode() + "-" + subModel; + String dirPathDB = "doc_file" + File.separator + "material" + File.separator + subCode + "-" + subModel; + String dirPath = CommonUtil.getRootFile() + "material" + File.separator + subCode + "-" + subModel; File dirFile = new File(dirPath); Date now = new Date(); //long timestamp = now.getTime(); String formattedTimestamp = DateUtil.YYYY_MM_DD_HH_MM_SS_UNION.format(now); + String formattedNow = DateUtil.YYYY_MM_DD_HH_MM_SS.format(now); if (!dirFile.exists()) { dirFile.mkdirs(); @@ -573,6 +645,23 @@ mapper.updateById(temp); mhService.insert(mh); + /*0120寮�澶寸殑鐗╂枡涓婁紶鍚庯紝绯荤粺鑷姩鍙戦偖浠跺搴斾汉鍛橈細鍚存禋銆侀檲鍗撱�佺唺瀹舵澃銆侀挶闀滃厓銆佹柤濂� + 0108銆�0109寮�澶寸殑鐗╂枡涓婁紶鍚庯紝绯荤粺鑷姩鍙戦偖浠跺搴斾汉鍛橈細鍠昏壋銆佽鎴愩�佺唺蹇楀钩銆佸彾鑳滆摑 */ + Material materialById = mapper.getMaterialById(material.getId()); + MailDTO mailDTO = new MailDTO(); + DocUser user = ActionUtil.getUser(); + mailDTO.setTitle("銆愬浘绾稿浘鐗囨洿鏂版彁閱掋��"); + if(subCode.startsWith("0120")){ + List<MailUser> mailUserList = mailUserService.getMailUserList(5); + mailDTO.setMailList(mailUserList.stream().map(MailUser::getMail).collect(Collectors.toList())); + mailDTO.setContent(user.getName()+"鍦ㄦ枃妗g鐞嗗钩鍙�"+formattedNow+"涓婁紶浜嗗浘绾告垨鍥剧墖,璇︾粏淇℃伅濡備笅:\n鐗╂枡缂栫爜:"+subCode+"\n鐗╂枡鍚嶇О:"+materialById.getSubName()+"\n鐗╂枡鍨嬪彿:"+subModel+"\n鍥剧焊鍥剧墖鍚嶇О:"+originalFilename); + mailService.sendMail(mailDTO); + }else if (subCode.startsWith("0108")|| subCode.startsWith("0109")){ + List<MailUser> mailUserList = mailUserService.getMailUserList(6); + mailDTO.setMailList(mailUserList.stream().map(MailUser::getMail).collect(Collectors.toList())); + mailDTO.setContent(user.getName()+"鍦ㄦ枃妗g鐞嗗钩鍙�"+formattedNow+"涓婁紶浜嗗浘绾告垨鍥剧墖,璇︾粏淇℃伅濡備笅:\n鐗╂枡缂栫爜:"+subCode+"\n鐗╂枡鍚嶇О:"+materialById.getSubName()+"\n鐗╂枡鍨嬪彿:"+subModel+"\n鍥剧焊鍥剧墖鍚嶇О:"+originalFilename); + mailService.sendMail(mailDTO); + } return new Response().set(1, true, "涓婁紶瀹屾垚"); } public Response dwgCompare(int materialId, int materialId2) throws IOException { -- Gitblit v1.9.1