From 43b617a3de865633cc142cee25ac8204e4eea2fe Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期四, 20 七月 2023 15:39:07 +0800
Subject: [PATCH] 获取fileid

---
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceReimbursementServiceImpl.java |  269 ++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 173 insertions(+), 96 deletions(-)

diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceReimbursementServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceReimbursementServiceImpl.java
index 6da9c5e..2ffa53f 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceReimbursementServiceImpl.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceReimbursementServiceImpl.java
@@ -1,9 +1,11 @@
 package com.ruoyi.project.service.impl;
 
 import java.io.File;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.ruoyi.common.config.RuoYiConfig;
@@ -114,8 +116,26 @@
     }
 
     @Override
-    public List<ServiceReimbursementdetail> getRBDetailList(Long id) {
-        return serviceReimbursementdetailMapper.getRBDetailList(id);
+    public List<ServiceReimbursementdetailVO> getRBDetailList(Long id) {
+        List<ServiceReimbursementdetailVO> serviceReimbursementdetailVOS = new ArrayList<>();
+        List<ServiceReimbursementdetail> rbDetailList = serviceReimbursementdetailMapper.getRBDetailList(id);
+        for (int j = 0; j < rbDetailList.size(); j++) {
+
+            ServiceReimbursementdetail serviceReimbursementdetail = rbDetailList.get(j);
+            String annexfiles = serviceReimbursementdetail.getAnnexfiles();
+            ServiceReimbursementdetailVO serviceReimbursementdetailVO = DtoConversionUtils.sourceToTarget(serviceReimbursementdetail, ServiceReimbursementdetailVO.class);
+            if (StringUtils.isNotBlank(annexfiles)) {
+                try {
+                    serviceReimbursementdetailVO.setAnnexfilesList(JSON.parseArray(annexfiles));
+                } catch (Exception e) {
+                    if (e.getMessage().equals("invalid comment")) {
+                        log.error("鎶ュ紓甯镐簡锛岃�佸ぇ涓嶈鎴戝鐞�");
+                    }
+                }
+            }
+            serviceReimbursementdetailVOS.add(serviceReimbursementdetailVO);
+        }
+        return serviceReimbursementdetailVOS;
     }
 
     @Override
@@ -136,14 +156,17 @@
         List<ServiceReimbursementpayeeShared> serviceReimbursementpayeeShareds = DtoConversionUtils.sourceToTarget(serviceReimbursementpayees, ServiceReimbursementpayeeShared.class);
         //灏嗙粍瑁呭ソ鐨勬暟鎹彃鍏ュ埌鍒嗕韩琛ㄤ腑
         sharedService.save(serviceReimbursementShared);
-        //涓婁紶OA鏂囦欢
-        uploadOAFileAndUpdateDb(serviceReimbursementShared);
+//        //涓婁紶OA鏂囦欢
+//        uploadOAFileAndUpdateDb(serviceReimbursementShared);
         //灏唖erviceReimbursementdetail琛ㄩ噷鐨刬d璧嬪�肩粰Rdid; 灏唖erviceReimbursementShared閲岀殑ID璧嬪�肩粰RBID,骞跺皢serviceReimbursementdetailShared琛ㄩ噷鐨刬d缃┖锛岀敱鏁版嵁搴撻噸鏂扮敓鎴�
         for (int i = 0; i < details.size(); i++) {
             serviceReimbursementdetailShareds.get(i).setRdid(serviceReimbursementdetailShareds.get(i).getId());
             serviceReimbursementdetailShareds.get(i).setRbid(serviceReimbursementShared.getId());
             serviceReimbursementdetailShareds.get(i).setId(null);
+            //涓婁紶OA鏂囦欢
+            uploadOAFileAndUpdateDb(serviceReimbursementdetailShareds.get(i));
         }
+
         detailSharedService.saveBatch(serviceReimbursementdetailShareds);
 
         //灏唖erviceReimbursementpayee琛ㄩ噷鐨刬d璧嬪�肩粰Rpid; 灏唖erviceReimbursementShared閲岀殑ID璧嬪�肩粰RBID,骞跺皢serviceReimbursementpayeeShared琛ㄩ噷鐨刬d缃┖锛岀敱鏁版嵁搴撻噸鏂扮敓鎴�
@@ -182,14 +205,12 @@
         return serviceReimbursementMapper.getRDInfoByItem(serviceReimbursementEo);
     }
 
-
-    int uploadOAFileAndUpdateDb(ServiceReimbursementShared remShare) {
+    public int uploadOAFileAndUpdateDb(ServiceReimbursementdetailShared remShare) {
         //涓婁紶OA鏂囦欢
         //String strUrl = "http://129.88.242.39:8899/seeyon/rest/token?userName=opo&password=127814f8-84e8-4304-84a5-a71573567efd&loginName=demo3";
         String strUrl = "http://129.88.242.39:8899/seeyon/rest/token";
         //String strUrl = "http://slb.hospitalstar.com:8899/seeyon/rest/token";
         //涓婁紶鏂囦欢鎴愬姛鍚庯紝鍘绘洿鏂扮浉鍏崇殑鏁版嵁搴�
-
 
         Map<String, Object> map = new HashMap<String, Object>();
         map.put("userName", "opo");
@@ -205,106 +226,162 @@
         JSONObject json1 = JSONObject.parseObject(strRes);
         strRes = json1.get("id").toString();
 
-        ///if(strRes.isEmpty() || "" == strRes) return -1;// 涓虹┖浠h〃澶辫触
-
-        //涓嬮潰闇�姹傝皟鐢ㄦ枃浠剁殑鎺ュ彛锛岃皟鐢ㄦ垚鍔熻繑鍥炲悗锛屽緱鍒癴ilename鍜宖ileid 鐢ㄨ繖浜屼釜鍊煎幓鏇存柊鏁版嵁
-
         String filePath = RuoYiConfig.getUploadPath();
-        // String strMutfileUrl = remShare.getFileurl();//鍙兘瀛樺湪澶氫釜鍦板潃锛屼互,鍒嗗紑
-        String strMutfileUrl = remShare.getAnnexfiles();
         String strFUrl = "http://129.88.242.39:8899/seeyon/rest/attachment?token=" + strRes;
-        //String strFUrl = "http://slb.hospitalstar.com:8899/seeyon/rest/attachment?token="+strRes;
-        //strFUrl = String.format(strFUrl, strRes);
 
-        /*File test = null;
-        File file = new File("E:\\YYJQ\\OPO\\WEB\\Upload\\upload\\2023\\02\\17");
-        if (file.exists() && file.isDirectory()) {
-            // 鑾峰彇鎵�鏈夌洸鐩掓枃浠跺す
-            File[] ones = file.listFiles();
-            for (File one : ones) {
-                test = one;
-            }
-        }*/
-
-        String filename = "";
-        String fileid = "";
-
-        String[] urlArray = strMutfileUrl.split(",");
-        for (int i = 0; i < urlArray.length; i++) {
-            String strOneFileName = urlArray[i];
-            String strTemp = strOneFileName.substring(15);
-            String strFile = filePath + strTemp;
-            //FileUploadUtils.getAbsoluteFile(filePath,strOneFileName);
-            String struploadResult = "";
+        List<RbDetailFile> parseArray2 = new ArrayList<>();
+        List<RbDetailFile> parseArray = JSON.parseArray(remShare.getAnnexfiles(), RbDetailFile.class);
+        for (int i = 0; i < parseArray.size(); i++) {
+            RbDetailFile rbDetailFile = parseArray.get(i);
+            String strFile = rbDetailFile.getUrl().replaceAll("/profile/upload", filePath);
             File filetest = new File(strFile);
             try {
-                struploadResult = HttpClientKit.sendPostWithFile(filetest, strFUrl);
+                String struploadResult = HttpClientKit.sendPostWithFile(filetest, strFUrl);
+                if (StringUtils.isEmpty(struploadResult)) {
+                    log.info("HttpClientKit.sendPostWithFile 璇锋眰涓虹┖浜� filetest:{},  strFUrl:{} ",filetest,strFUrl);
+                    return 0;
+                }
+
+                //鑾峰彇fileid
+                JSONObject jsonR = JSONObject.parseObject(struploadResult);
+                JSONArray jsonArr = jsonR.getJSONArray("atts");
+                for (int j = 0; j < jsonArr.size(); j++) {
+                    JSONObject jsonRet = jsonArr.getJSONObject(j);
+                    rbDetailFile.setFileid(jsonRet.get("fileUrl").toString());
+                }
             } catch (Exception e) {
                 e.printStackTrace();
+                log.error("HttpClientKit.sendPostWithFile 鎶ラ敊浜� : " + e.getMessage());
             }
-
-
-            /*CloseableHttpClient httpClient = HttpClients.createDefault();
-            //鍒涘缓post鏂规硶杩炴帴瀹炰緥锛屽湪post鏂规硶涓紶鍏ュ緟杩炴帴鍦板潃
-            HttpPost httpPost = new HttpPost(strFUrl);
-            CloseableHttpResponse response = null;
-
-            String struploadResult = "";
-            try {
-                //璁剧疆璇锋眰鍙傛暟锛堢被浼糷tml椤甸潰涓璶ame灞炴�э級
-                MultipartEntityBuilder entity = MultipartEntityBuilder.create();
-                //entity.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
-                entity.setCharset(Charset.forName("UTF-8"));
-
-                byte[] fileBytes = Files.readAllBytes(Paths.get(strFile));
-                if (fileBytes != null) {
-                    //鍐呭绫诲瀷锛岀敤浜庡畾涔夌綉缁滄枃浠剁殑绫诲瀷鍜岀綉椤电殑缂栫爜锛屽喅瀹氭枃浠舵帴鏀舵柟灏嗕互浠�涔堝舰寮忋�佷粈涔堢紪鐮佽鍙栬繖涓枃浠�
-                    ContentType OCTEC_STREAM = ContentType.create("application/octet-stream", Charset.forName("UTF-8"));
-                    //娣诲姞鏂囦欢
-                    entity.addBinaryBody("file", fileBytes, OCTEC_STREAM, strTemp);
-                }
-
-                httpPost.setEntity(entity.build());
-                //鍙戣捣璇锋眰锛屽苟杩斿洖璇锋眰鍝嶅簲
-                response = httpClient.execute(httpPost);
-                struploadResult = EntityUtils.toString(response.getEntity(), "utf-8");
-            }
-            catch (Exception e)
-            {
-                e.printStackTrace();
-            }*/
-
-            //String strFRes = HttpClientKit.postMsg(strFUrl,jsonFObj);
-            if (struploadResult == null) return 0;
-            if (struploadResult.isEmpty()) return 0;
-
-            JSONObject jsonR = JSONObject.parseObject(struploadResult);
-
-            JSONArray jsonArr = jsonR.getJSONArray("atts");
-            for (int j = 0; j < jsonArr.size(); j++) {
-                JSONObject jsonRet = jsonArr.getJSONObject(j);
-                String name1 = jsonRet.get("filename").toString();
-                String id1 = jsonRet.get("fileUrl").toString();
-                filename += name1;
-                fileid += id1;
-                if (i != urlArray.length - 1) {
-                    filename += ",";
-                    fileid += ",";
-                }
-            }
-
+            parseArray2.add(rbDetailFile);
         }
-
-        long nId = remShare.getId();
-        remShare.setId(nId);
-        remShare.setFilename(filename);
-        remShare.setFileid(fileid);
-        log.info("remShare鐨勬暟鎹负 : {}:", remShare.toString());
-        boolean bRet = sharedService.updateById(remShare);
-        if (!bRet) return -1;
-
+        remShare.setAnnexfiles(JSON.toJSONString(parseArray2));
+        log.info("ServiceReimbursementdetailShared 鏄惁鍔犱笂浜唂ileid : {}",remShare);
         return 0;
     }
 
+//    int uploadOAFileAndUpdateDb(ServiceReimbursementShared remShare) {
+//        //涓婁紶OA鏂囦欢
+//        //String strUrl = "http://129.88.242.39:8899/seeyon/rest/token?userName=opo&password=127814f8-84e8-4304-84a5-a71573567efd&loginName=demo3";
+//        String strUrl = "http://129.88.242.39:8899/seeyon/rest/token";
+//        //String strUrl = "http://slb.hospitalstar.com:8899/seeyon/rest/token";
+//        //涓婁紶鏂囦欢鎴愬姛鍚庯紝鍘绘洿鏂扮浉鍏崇殑鏁版嵁搴�
+//
+//
+//        Map<String, Object> map = new HashMap<String, Object>();
+//        map.put("userName", "opo");
+//        map.put("password", "4126407a-9821-4874-be41-6568abd6dbe5");
+//        map.put("loginName", "demo3");
+//
+//        JSONObject jsonObj = new JSONObject(map);
+//
+//        System.out.println("uploadOAFileAndUpdateDb + jsonObject" + jsonObj.toString() + "\r\n" + jsonObj.toJSONString());
+//        String strRes = HttpClientKit.postOpr(strUrl, jsonObj.toString());//
+//        //String strRes = HttpClientKit.postMsg(strUrl,jsonObj);//寰楀埌杩斿洖鐨則oken?
+//
+//        JSONObject json1 = JSONObject.parseObject(strRes);
+//        strRes = json1.get("id").toString();
+//
+//        ///if(strRes.isEmpty() || "" == strRes) return -1;// 涓虹┖浠h〃澶辫触
+//
+//        //涓嬮潰闇�姹傝皟鐢ㄦ枃浠剁殑鎺ュ彛锛岃皟鐢ㄦ垚鍔熻繑鍥炲悗锛屽緱鍒癴ilename鍜宖ileid 鐢ㄨ繖浜屼釜鍊煎幓鏇存柊鏁版嵁
+//
+//        String filePath = RuoYiConfig.getUploadPath();
+//        // String strMutfileUrl = remShare.getFileurl();//鍙兘瀛樺湪澶氫釜鍦板潃锛屼互,鍒嗗紑
+//        String strMutfileUrl = remShare.getAnnexfiles();
+//        String strFUrl = "http://129.88.242.39:8899/seeyon/rest/attachment?token=" + strRes;
+//        //String strFUrl = "http://slb.hospitalstar.com:8899/seeyon/rest/attachment?token="+strRes;
+//        //strFUrl = String.format(strFUrl, strRes);
+//
+//        /*File test = null;
+//        File file = new File("E:\\YYJQ\\OPO\\WEB\\Upload\\upload\\2023\\02\\17");
+//        if (file.exists() && file.isDirectory()) {
+//            // 鑾峰彇鎵�鏈夌洸鐩掓枃浠跺す
+//            File[] ones = file.listFiles();
+//            for (File one : ones) {
+//                test = one;
+//            }
+//        }*/
+//
+//        String filename = "";
+//        String fileid = "";
+//
+//        String[] urlArray = strMutfileUrl.split(",");
+//        for (int i = 0; i < urlArray.length; i++) {
+//            String strOneFileName = urlArray[i];
+//            String strTemp = strOneFileName.substring(15);
+//            String strFile = filePath + strTemp;
+//            //FileUploadUtils.getAbsoluteFile(filePath,strOneFileName);
+//            String struploadResult = "";
+//            File filetest = new File(strFile);
+//            try {
+//                struploadResult = HttpClientKit.sendPostWithFile(filetest, strFUrl);
+//            } catch (Exception e) {
+//                e.printStackTrace();
+//            }
+//
+//
+//            /*CloseableHttpClient httpClient = HttpClients.createDefault();
+//            //鍒涘缓post鏂规硶杩炴帴瀹炰緥锛屽湪post鏂规硶涓紶鍏ュ緟杩炴帴鍦板潃
+//            HttpPost httpPost = new HttpPost(strFUrl);
+//            CloseableHttpResponse response = null;
+//
+//            String struploadResult = "";
+//            try {
+//                //璁剧疆璇锋眰鍙傛暟锛堢被浼糷tml椤甸潰涓璶ame灞炴�э級
+//                MultipartEntityBuilder entity = MultipartEntityBuilder.create();
+//                //entity.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
+//                entity.setCharset(Charset.forName("UTF-8"));
+//
+//                byte[] fileBytes = Files.readAllBytes(Paths.get(strFile));
+//                if (fileBytes != null) {
+//                    //鍐呭绫诲瀷锛岀敤浜庡畾涔夌綉缁滄枃浠剁殑绫诲瀷鍜岀綉椤电殑缂栫爜锛屽喅瀹氭枃浠舵帴鏀舵柟灏嗕互浠�涔堝舰寮忋�佷粈涔堢紪鐮佽鍙栬繖涓枃浠�
+//                    ContentType OCTEC_STREAM = ContentType.create("application/octet-stream", Charset.forName("UTF-8"));
+//                    //娣诲姞鏂囦欢
+//                    entity.addBinaryBody("file", fileBytes, OCTEC_STREAM, strTemp);
+//                }
+//
+//                httpPost.setEntity(entity.build());
+//                //鍙戣捣璇锋眰锛屽苟杩斿洖璇锋眰鍝嶅簲
+//                response = httpClient.execute(httpPost);
+//                struploadResult = EntityUtils.toString(response.getEntity(), "utf-8");
+//            }
+//            catch (Exception e)
+//            {
+//                e.printStackTrace();
+//            }*/
+//
+//            //String strFRes = HttpClientKit.postMsg(strFUrl,jsonFObj);
+//            if (struploadResult == null) return 0;
+//            if (struploadResult.isEmpty()) return 0;
+//
+//            JSONObject jsonR = JSONObject.parseObject(struploadResult);
+//
+//            JSONArray jsonArr = jsonR.getJSONArray("atts");
+//            for (int j = 0; j < jsonArr.size(); j++) {
+//                JSONObject jsonRet = jsonArr.getJSONObject(j);
+//                String name1 = jsonRet.get("filename").toString();
+//                String id1 = jsonRet.get("fileUrl").toString();
+//                filename += name1;
+//                fileid += id1;
+//                if (i != urlArray.length - 1) {
+//                    filename += ",";
+//                    fileid += ",";
+//                }
+//            }
+//
+//        }
+//
+//        long nId = remShare.getId();
+//        remShare.setId(nId);
+//        remShare.setFilename(filename);
+//        remShare.setFileid(fileid);
+//        log.info("remShare鐨勬暟鎹负 : {}:", remShare.toString());
+//        boolean bRet = sharedService.updateById(remShare);
+//        if (!bRet) return -1;
+//
+//        return 0;
+//    }
+
 
 }

--
Gitblit v1.9.3