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/BOMFeedbakService.java | 182 ++++++++++++++++++++++++++++++++++++++------ 1 files changed, 155 insertions(+), 27 deletions(-) diff --git a/src/main/java/com/whyc/service/BOMFeedbakService.java b/src/main/java/com/whyc/service/BOMFeedbakService.java index b39999c..b7767da 100644 --- a/src/main/java/com/whyc/service/BOMFeedbakService.java +++ b/src/main/java/com/whyc/service/BOMFeedbakService.java @@ -5,21 +5,22 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; -import com.whyc.constant.UserOperation; import com.whyc.dto.FileDirPath; +import com.whyc.dto.MailDTO; import com.whyc.dto.Response; -import com.whyc.dto.ZipUtils; import com.whyc.mapper.BOMFeedbakMapper; import com.whyc.mapper.DocUserMapper; +import com.whyc.mapper.ProductHistoryMapper; import com.whyc.pojo.BOMFeedback; import com.whyc.pojo.DocUser; +import com.whyc.pojo.Product; +import com.whyc.pojo.ProductHistory; import com.whyc.util.ActionUtil; import com.whyc.util.CommonUtil; -import com.whyc.util.MailUtil; +import com.whyc.util.DateUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; @@ -35,12 +36,22 @@ @Autowired(required = false) private BOMFeedbakMapper mapper; @Autowired - private MailUtil mailUtil; + private MailService mailService; @Resource private DocUserMapper userMapper; @Autowired private DocLogService logService; + + @Autowired + private ProductHistoryService phisService; + + @Resource + private ProductHistoryMapper phisMapper; + + @Autowired + private ProductService productService; + //缁熻 public Map<String, Integer> getFkStatistic(DocUser user,Map<String, Integer> map) { int sendFk=0; @@ -50,7 +61,9 @@ case "1001": map.put("sendFk",0); sendFk=mapper.selectSender(user.getId()); + recevierFk=mapper.selectReceiver(user.getId()); map.put("sendFk",sendFk); + map.put("recevierFk",recevierFk); break; //椤圭洰缁忕悊 case "1002": @@ -76,7 +89,27 @@ //鏌ヨ鍙戦�佽�呭弽棣堜笉鍚岀姸鎬� public Response getSenderStatus(int[] flags,int pageCurr,int pageSize) { PageHelper.startPage(pageCurr,pageSize); - List list=mapper.getSenderStatus(ActionUtil.getUser().getId(),flags); + List<BOMFeedback> list=mapper.getSenderStatus(ActionUtil.getUser().getId(),flags); + //鑾峰彇璺緞 + String fileDirName = FileDirPath.getFileDirName(); + if(list!=null&&list.size()>0){ + for (int i=0;i<list.size();i++) { + BOMFeedback feedback=list.get(i); + String attachFilePath=fileDirName+File.separator+feedback.getFile(); + File start = new File(attachFilePath); + String[] files =new String[]{}; + List attachList=new ArrayList(); + if(start.exists()) { + files= start.list();//鑾峰彇璇ユ枃浠跺す涓嬬殑鎵�鏈夋枃浠跺悕瀛� + if(files.length>=0){ + for(int j=0;j<files.length;j++) { + attachList.add(feedback.getFile()+files[j]); + } + } + } + feedback.setAttachFiles(attachList); + } + } PageInfo pageInfo = new PageInfo(list); return new Response().setII(1,list.size()>0,pageInfo,"鍙戦�佽�呭弽棣�"); } @@ -85,12 +118,32 @@ PageHelper.startPage(pageCurr,pageSize); String name=ActionUtil.getUser().getName(); long id=ActionUtil.getUser().getId(); - List list=new ArrayList(); + List<BOMFeedback> list=new ArrayList(); if(name.equals("鏉ㄧ孩鍏�")){ //褰撴槸鏉ㄧ孩鍏版煡鐪嬫椂锛屽彧鏈夋潹绾㈠叞鐨勬帓鍦ㄦ渶鍓嶉潰 list=mapper.getRecevierYHL(id,name,flags); }else{ list=mapper.getRecevierStatus(id,flags); + } + //鑾峰彇璺緞 + String fileDirName = FileDirPath.getFileDirName(); + if(list!=null&&list.size()>0){ + for (int i=0;i<list.size();i++) { + BOMFeedback feedback=list.get(i); + String attachFilePath=fileDirName+File.separator+feedback.getFile(); + File start = new File(attachFilePath); + String[] files =new String[]{}; + List attachList=new ArrayList(); + if(start.exists()) { + files= start.list();//鑾峰彇璇ユ枃浠跺す涓嬬殑鎵�鏈夋枃浠跺悕瀛� + if(files.length>=0){ + for(int j=0;j<files.length;j++) { + attachList.add(feedback.getFile()+files[j]); + } + } + } + feedback.setAttachFiles(attachList); + } } PageInfo pageInfo = new PageInfo(list); return new Response().setII(1,list.size()>0,pageInfo,"鎺ユ敹鑰呭弽棣�"); @@ -102,6 +155,7 @@ * @param feedback * @return */ + @Transactional public Response confirmFeedback(BOMFeedback feedback) { DocUser user = ActionUtil.getUser(); int userId = user.getId().intValue(); @@ -172,6 +226,25 @@ int count=mapper.update(null,wrapper); bl=count>0; msg="鎺ユ敹鑰呯‘璁ゅ弽棣�"; + + if(confirmStatus == 2){ + //瑙i攣浜у搧 + Integer productId = mapper.selectById(id).getProductId(); + Product product = productService.getById(productId); + //瑙i攣浜у搧鏃惰В閿侀攣瀹氭椂鐨勭増鏈彿 + QueryWrapper<BOMFeedback> query = Wrappers.query(); + query.eq("id",id).last(" limit 1"); + BOMFeedback feed = mapper.selectOne(query); + int nowVersion=feed.getNowVersion(); + if(product!=null){ + if(nowVersion!=-1){ + phisService.setpHistoryEnable(product.getParentCode(),product.getCustomCode(),nowVersion,1,"闂鍙嶉鍚�"+ username +"纭涓嶉渶瑕佷慨鏀筨om,绯荤粺鎵ц浜у搧瑙i攣",DateUtil.YYYY_MM_DD_HH_MM_SS.format(product.getVersionTime())); + } + }else{ + ProductHistory phis = phisService.getById(productId); + phisService.setpHistoryEnable(phis.getParentCode(),phis.getCustomCode(),phis.getVersion(),1,"闂鍙嶉鍚�"+ username +"纭涓嶉渶瑕佷慨鏀筨om,绯荤粺鎵ц浜у搧瑙i攣",DateUtil.YYYY_MM_DD_HH_MM_SS.format(phis.getVersionTime())); + } + } } return new Response().set(1,bl,msg); } @@ -190,10 +263,16 @@ //鍘嬬缉鍖呯殑璺緞鍙婃牸寮忎负: doc_file/feedback_bom/username_time.zip String username = ActionUtil.getUser().getName(); long time = date.getTime(); - String feedbackZipPath = "feedback_bom" + File.separator + username + "_" + time+".zip"; - List<File> fileList = new LinkedList<>(); + //String feedbackZipPath = "feedback_bom" + File.separator + username + "_" + time+".zip"; + //List<File> fileList = new LinkedList<>(); String rootFile = CommonUtil.getRootFile(); if(multipartFileList!=null && multipartFileList.size()!=0){ + String feedbackDirSuffix = "feedback_bom" + File.separator + username + File.separator + time + File.separator; + String feedbackDir = rootFile + feedbackDirSuffix; + File fileDir = new File(feedbackDir); + if (!fileDir.exists()) { + fileDir.mkdirs(); + } for (int i = 0; i < multipartFileList.size(); i++) { MultipartFile multipartFile = multipartFileList.get(i); //瀛樺偍鏂囦欢 @@ -201,24 +280,29 @@ String originalFilename = multipartFile.getOriginalFilename(); String fileName = originalFilename.substring(0, originalFilename.lastIndexOf(".")); String suffix = originalFilename.substring(originalFilename.lastIndexOf(".")); - String feedbackPath = "feedback_bom" + File.separator + fileName + "_" + time + suffix; - File file = new File(rootFile + feedbackPath); - if (!file.exists()) { - file.mkdirs(); - } + String feedbackPath = feedbackDir + fileName + suffix; + File file = new File(feedbackPath); + multipartFile.transferTo(file); - fileList.add(file); + //fileList.add(file); } - ZipUtils.toZip(fileList,new FileOutputStream(new File(rootFile+feedbackZipPath))); - feedback.setFile("doc_file" + File.separator + feedbackZipPath); + //ZipUtils.toZip(fileList,new FileOutputStream(new File(rootFile+feedbackZipPath))); + feedback.setFile("doc_file" + File.separator + feedbackDirSuffix); } //鍒犻櫎宸茬粡琚帇缂╃殑鏂囦欢 - for (File file : fileList) { - file.delete(); - } + //for (File file : fileList) { + // file.delete(); + //} + + //鏌ヨ浜у搧鐨勪俊鎭� + QueryWrapper hisWrapper=new QueryWrapper(); + hisWrapper.eq("id",feedback.getProductId()); + hisWrapper.last("limit 1"); + ProductHistory phis=phisMapper.selectOne(hisWrapper); //淇濆瓨 feedback.setCreateTime(date); feedback.setConfirmStatus(0); + feedback.setNowVersion(phis.getVersion()); mapper.insert(feedback); //鍙戦�侀偖浠� String receiverIds = feedback.getReceiverIds(); @@ -248,9 +332,20 @@ } } - String subject = "Bom闂鍙嶉-"+senderName; - String content = feedback.getContent(); - mailUtil.sendMailBatch(senderName,receiverMailList,subject,content); + String subject = "銆怋om闂鍙嶉銆�-"+senderName; + //閭欢鍐呭,娣诲姞浜у搧鐨勭浉鍏充俊鎭� + Product product = productService.getById(feedback.getProductId()); + + String content ="浜у搧鏂欏彿:"+product.getParentCode() + "\n浜у搧鍚嶇О:"+product.getParentName() + "\n浜у搧鍨嬪彿:"+product.getParentModel() + "\n鐗堟湰鏃堕棿:"+ DateUtil.YYYY_MM_DD_HH_MM_SS.format(product.getVersionTime()) + "\n瀹氬埗鍗曞彿:"+product.getCustomCode() + "\n浜у搧鍙嶉鍐呭:"+ feedback.getContent(); + + MailDTO mailDTO = new MailDTO(); + mailDTO.setTitle(subject); + mailDTO.setContent(content); + mailDTO.setMailList(receiverMailList); + mailService.sendMail(mailDTO); + //mailUtil.sendMailBatch(senderName,receiverMailList,subject,content); + //鍙嶉鏃剁洿鎺ユ牴鎹畃roductid鐩存帴閿佸畾 + phisService.setpHistoryEnable(phis.getParentCode(),phis.getCustomCode(),phis.getVersion(),0,feedback.getContent(),ActionUtil.sdfwithALL.format(phis.getVersionTime())); return new Response().set(1,true,"鍙嶉瀹屾垚"); } //鏍规嵁鏂囦欢璺緞涓嬭浇 @@ -304,21 +399,54 @@ String appendUsername = ActionUtil.getUser().getName(); //鍙嶉鍙戦�佽�呭悕绉� QueryWrapper<DocUser> userQuery1 = Wrappers.query(); - userQuery1.eq("uid",feedback.getSenderId()).last(" limit 1"); + userQuery1.eq("id",feedback.getSenderId()).last(" limit 1"); String senderName = userMapper.selectOne(userQuery1).getName(); //鍙嶉鎺ユ敹鑰呴偖绠� QueryWrapper<DocUser> userQuery2 = Wrappers.query(); - userQuery2.eq("uid",userId).last(" limit 1"); + userQuery2.eq("id",userId).last(" limit 1"); String mail = userMapper.selectOne(userQuery2).getMail(); if(mail!=null && !mail.isEmpty()) { receiverMailList.add(mail); } if(receiverMailList.size()>0) { - String subject = "Bom闂鍙嶉-" + senderName + ",骞剁敱" + appendUsername + "杞彂缁欐偍"; + String subject = "銆怋om闂鍙嶉銆�-" + senderName + ",鐢�" + appendUsername + "杞彂缁欐偍"; String content = feedback.getContent(); - mailUtil.sendMailBatch(senderName, receiverMailList, subject, content); + MailDTO mailDTO = new MailDTO(); + mailDTO.setTitle(subject); + mailDTO.setContent(content); + mailDTO.setMailList(receiverMailList); + mailService.sendMail(mailDTO); + //mailUtil.sendMailBatch(senderName, receiverMailList, subject, content); } return new Response().setII(1,"杩藉姞鍙嶉鐢ㄦ埛瀹屾垚"); } + + public Response getListPage(BOMFeedback feedback, int pageNum, int pageSize) { + PageHelper.startPage(pageNum,pageSize); + List<BOMFeedback> list = mapper.getListPage(feedback); + //鑾峰彇璺緞 + String fileDirName = FileDirPath.getFileDirName(); + if(list!=null&&list.size()>0){ + for (int i=0;i<list.size();i++) { + BOMFeedback fb=list.get(i); + String attachFilePath=fileDirName+File.separator+fb.getFile(); + File start = new File(attachFilePath); + String[] files =new String[]{}; + List attachList=new ArrayList(); + if(start.exists()) { + files= start.list();//鑾峰彇璇ユ枃浠跺す涓嬬殑鎵�鏈夋枃浠跺悕瀛� + if(files.length>=0){ + for(int j=0;j<files.length;j++) { + attachList.add(fb.getFile()+files[j]); + } + } + } + fb.setAttachFiles(attachList); + } + } + PageInfo pageInfo = new PageInfo(list); + return new Response().set(1,pageInfo); + + } } -- Gitblit v1.9.1