From f30f1da563de55f9e391cae2f53942d1cfde2965 Mon Sep 17 00:00:00 2001
From: whycxzp <perryhsu@163.com>
Date: 星期三, 01 三月 2023 17:06:32 +0800
Subject: [PATCH] bom反馈更新

---
 src/main/java/com/whyc/service/BOMFeedbakService.java |   47 +++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 43 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/whyc/service/BOMFeedbakService.java b/src/main/java/com/whyc/service/BOMFeedbakService.java
index ef71789..c28141d 100644
--- a/src/main/java/com/whyc/service/BOMFeedbakService.java
+++ b/src/main/java/com/whyc/service/BOMFeedbakService.java
@@ -97,6 +97,9 @@
      * @return
      */
     public Response confirmFeedback(BOMFeedback feedback) {
+        DocUser user = ActionUtil.getUser();
+        int userId = user.getId().intValue();
+        String username = user.getName();
         String msg="";
         boolean bl=true;
         int id = feedback.getId();
@@ -111,16 +114,52 @@
         //1.纭鍓嶅厛鍒ゆ柇鍙嶉鏄惁琚‘璁�
         QueryWrapper<BOMFeedback> queryWrapper=new QueryWrapper<>();
         queryWrapper.eq("id",id);
-        queryWrapper.ne("confirm_status",0);
-        List list=mapper.selectList(queryWrapper);
-        if(list!=null&&list.size()>0){
+        queryWrapper.ne("confirm_status",0).last(" limit 1");
+        BOMFeedback feedbackDB = mapper.selectOne(queryWrapper);
+        if(feedbackDB!=null){
             msg="璇ュ弽棣堝凡琚‘璁�";
             bl=false;
         }else{
+            if(confirmStatus == 1){ //涓庢垜鏃犲叧,瀹岀粨鍘熻褰�;鐢熸垚鏂拌褰�,鍓旈櫎褰撳墠纭浜�
+                QueryWrapper<BOMFeedback> query = Wrappers.query();
+                query.eq("id",id).last(" limit 1");
+                feedbackDB = mapper.selectOne(query);
+                feedbackDB.setId(null);
+                String receiverIdsNow = feedbackDB.getReceiverIds();
+                String receiverNamesNow = feedbackDB.getReceiverNames();
+                //鎺ュ彈鑰卛d鍓旈櫎褰撳墠鐢ㄦ埛id
+                String[] receiverIdArr = receiverIdsNow.split(",");
+                StringBuilder idsNextBuilder = new StringBuilder();
+                for (int i = 0; i < receiverIdArr.length; i++) {
+                    if(!receiverIdArr[i].equals(String.valueOf(userId))){
+                        if(idsNextBuilder.length()==0){
+                            idsNextBuilder.append(receiverIdArr[i]);
+                        }else{
+                            idsNextBuilder.append(",").append(receiverIdArr[i]);
+                        }
+                    }
+                }
+                feedbackDB.setReceiverIds(idsNextBuilder.toString());
+
+                //鎺ュ彈鑰呭悕瀛楀墧闄ゅ綋鍓嶇敤鎴峰悕
+                String[] receiverNamesArr = receiverNamesNow.split(",");
+                StringBuilder namesNextBuilder = new StringBuilder();
+                for (int i = 0; i < receiverNamesArr.length; i++) {
+                    if(!receiverNamesArr[i].equals(String.valueOf(username))){
+                        if(namesNextBuilder.length()==0){
+                            namesNextBuilder.append(receiverNamesArr[i]);
+                        }else{
+                            namesNextBuilder.append(",").append(receiverNamesArr[i]);
+                        }
+                    }
+                }
+                feedbackDB.setReceiverNames(namesNextBuilder.toString());
+                mapper.insert(feedbackDB);
+            }
             //2.纭鍙嶉
             UpdateWrapper<BOMFeedback> wrapper=new UpdateWrapper<>();
             wrapper.set("confirm_status",confirmStatus);
-            wrapper.set("confirm_user_name",ActionUtil.getUser().getName());
+            wrapper.set("confirm_user_name",username);
             wrapper.set("reply_content",replyContent);
             wrapper.set("reply_time",now);
             wrapper.eq("id",id);

--
Gitblit v1.9.1