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