From 18fd554eb8c17bafedd3d98ec00585df0679a55d Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期五, 30 六月 2023 13:45:35 +0800
Subject: [PATCH] 更新ReimbursementShared表的fileid

---
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceReimbursementServiceImpl.java |  251 +++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 219 insertions(+), 32 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 f96033b..8057b77 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,34 +1,41 @@
 package com.ruoyi.project.service.impl;
 
+import java.io.File;
+import java.util.HashMap;
 import java.util.List;
-import com.ruoyi.common.utils.DateUtils;
-import com.ruoyi.project.domain.ServiceReimbursementEo;
-import com.ruoyi.project.domain.ServiceReimbursementdetail;
-import com.ruoyi.project.domain.ServiceRelativesconfirmation;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.ruoyi.common.config.RuoYiConfig;
+import com.ruoyi.common.utils.HttpClientKit;
+import com.ruoyi.common.utils.bean.DtoConversionUtils;
+import com.ruoyi.project.domain.*;
 import com.ruoyi.project.domain.dto.ServiceReimbursementDto;
 import com.ruoyi.project.domain.vo.SpFinancialExpensesReimbursementOut;
-import com.ruoyi.project.mapper.ServiceReimbursementdetailMapper;
+import com.ruoyi.project.mapper.*;
+import com.ruoyi.project.service.IServiceReimbursementSharedService;
+import com.ruoyi.project.service.IServiceReimbursementdetailSharedService;
+import com.ruoyi.project.service.IServiceReimbursementpayeeSharedService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import java.util.ArrayList;
+
 import java.util.Map;
+
 import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.project.mapper.ServiceReimbursementMapper;
-import com.ruoyi.project.domain.ServiceReimbursement;
 import com.ruoyi.project.service.IServiceReimbursementService;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * 鎶ラ攢鐢宠Service涓氬姟灞傚鐞�
- * 
+ *
  * @author ruoyi
  * @date 2022-01-24
  */
 @Service
-public class ServiceReimbursementServiceImpl extends ServiceImpl<ServiceReimbursementMapper, ServiceReimbursement> implements IServiceReimbursementService 
-{
+public class ServiceReimbursementServiceImpl extends ServiceImpl<ServiceReimbursementMapper, ServiceReimbursement> implements IServiceReimbursementService {
 
     @Autowired
     ServiceReimbursementMapper serviceReimbursementMapper;
@@ -36,38 +43,56 @@
     @Autowired
     ServiceReimbursementdetailMapper serviceReimbursementdetailMapper;
 
+    @Autowired
+    ServiceReimbursementdetailSharedMapper serviceReimbursementdetailSharedMapper;
+
+    @Autowired
+    ServiceReimbursementpayeeMapper reimbursementpayeeMapper;
+
+    @Autowired
+    ServiceReimbursementpayeeSharedMapper reimbursementpayeeSharedMapper;
+
+    @Autowired
+    IServiceReimbursementdetailSharedService detailSharedService;
+
+    @Autowired
+    IServiceReimbursementSharedService sharedService;
+
+    @Autowired
+    IServiceReimbursementpayeeSharedService payeeSharedService;
+
     /**
      * 鏌ヨ鎶ラ攢鐢宠鍒楄〃
-     * 
+     *
      * @param serviceReimbursement 鎶ラ攢鐢宠
      * @return 鎶ラ攢鐢宠
      */
     @Override
     public List<ServiceReimbursement> queryList(ServiceReimbursement serviceReimbursement) {
         LambdaQueryWrapper<ServiceReimbursement> wrappers = Wrappers.lambdaQuery();
-        if (StringUtils.isNotBlank(serviceReimbursement.getCreateBy())){
-            wrappers.eq(ServiceReimbursement::getCreateBy ,serviceReimbursement.getCreateBy());
+        if (StringUtils.isNotBlank(serviceReimbursement.getCreateBy())) {
+            wrappers.eq(ServiceReimbursement::getCreateBy, serviceReimbursement.getCreateBy());
         }
-        if (serviceReimbursement.getCreateTime() != null){
-            wrappers.eq(ServiceReimbursement::getCreateTime ,serviceReimbursement.getCreateTime());
+        if (serviceReimbursement.getCreateTime() != null) {
+            wrappers.eq(ServiceReimbursement::getCreateTime, serviceReimbursement.getCreateTime());
         }
-        if (StringUtils.isNotBlank(serviceReimbursement.getUsername())){
-            wrappers.like(ServiceReimbursement::getUsername ,serviceReimbursement.getUsername());
+        if (StringUtils.isNotBlank(serviceReimbursement.getUsername())) {
+            wrappers.like(ServiceReimbursement::getUsername, serviceReimbursement.getUsername());
         }
-        if (StringUtils.isNotBlank(serviceReimbursement.getTravelers())){
-            wrappers.like(ServiceReimbursement::getTravelers ,serviceReimbursement.getTravelers());
+        if (StringUtils.isNotBlank(serviceReimbursement.getTravelers())) {
+            wrappers.like(ServiceReimbursement::getTravelers, serviceReimbursement.getTravelers());
         }
-        if (StringUtils.isNotBlank(serviceReimbursement.getDeptmentname())){
-            wrappers.like(ServiceReimbursement::getDeptmentname ,serviceReimbursement.getDeptmentname());
+        if (StringUtils.isNotBlank(serviceReimbursement.getDeptmentname())) {
+            wrappers.like(ServiceReimbursement::getDeptmentname, serviceReimbursement.getDeptmentname());
         }
-        if (StringUtils.isNotBlank(serviceReimbursement.getDonorno())){
-            wrappers.eq(ServiceReimbursement::getDonorno ,serviceReimbursement.getDonorno());
+        if (StringUtils.isNotBlank(serviceReimbursement.getDonorno())) {
+            wrappers.eq(ServiceReimbursement::getDonorno, serviceReimbursement.getDonorno());
         }
-        if (serviceReimbursement.getRecordstatus()!=null){
-            wrappers.eq(ServiceReimbursement::getRecordstatus ,serviceReimbursement.getRecordstatus());
+        if (serviceReimbursement.getRecordstatus() != null) {
+            wrappers.eq(ServiceReimbursement::getRecordstatus, serviceReimbursement.getRecordstatus());
         }
-        if (StringUtils.isNotBlank(serviceReimbursement.getUploadflag())){
-            wrappers.eq(ServiceReimbursement::getUploadflag ,serviceReimbursement.getUploadflag());
+        if (StringUtils.isNotBlank(serviceReimbursement.getUploadflag())) {
+            wrappers.eq(ServiceReimbursement::getUploadflag, serviceReimbursement.getUploadflag());
         }
 
        /* if (serviceReimbursement.getStarttime()!=null && serviceReimbursement.getEndtime()!=null){
@@ -88,13 +113,52 @@
     }
 
     @Override
+    @Transactional
+    public Boolean addSharedData(Long id) {
+        ServiceReimbursement serviceReimbursement = serviceReimbursementMapper.selectById(id);
+        Map<String, Object> columnMap = new HashMap<>();
+        columnMap.put("rbid", id);
+        //鑾峰彇璇︽儏鏁版嵁
+        List<ServiceReimbursementdetail> details = serviceReimbursementdetailMapper.selectByMap(columnMap);
+        //鑾峰彇鏀粯鏁版嵁
+        List<ServiceReimbursementpayee> serviceReimbursementpayees = reimbursementpayeeMapper.selectByMap(columnMap);
+        //鏁版嵁缁勮
+        ServiceReimbursementShared serviceReimbursementShared = DtoConversionUtils.sourceToTarget(serviceReimbursement, ServiceReimbursementShared.class);
+        serviceReimbursementShared.setReimid(id);
+        serviceReimbursementShared.setId(null);
+        List<ServiceReimbursementdetailShared> serviceReimbursementdetailShareds = DtoConversionUtils.sourceToTarget(details, ServiceReimbursementdetailShared.class);
+        List<ServiceReimbursementpayeeShared> serviceReimbursementpayeeShareds = DtoConversionUtils.sourceToTarget(serviceReimbursementpayees, ServiceReimbursementpayeeShared.class);
+        //灏嗙粍瑁呭ソ鐨勬暟鎹彃鍏ュ埌鍒嗕韩琛ㄤ腑
+        sharedService.save(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);
+        }
+        detailSharedService.saveBatch(serviceReimbursementdetailShareds);
+
+        //灏唖erviceReimbursementpayee琛ㄩ噷鐨刬d璧嬪�肩粰Rpid; 灏唖erviceReimbursementShared閲岀殑ID璧嬪�肩粰RBID,骞跺皢serviceReimbursementpayeeShared琛ㄩ噷鐨刬d缃┖锛岀敱鏁版嵁搴撻噸鏂扮敓鎴�
+        for (int i = 0; i < serviceReimbursementpayees.size(); i++) {
+            serviceReimbursementpayeeShareds.get(i).setRpid(Long.valueOf(serviceReimbursementpayees.get(i).getId()));
+            serviceReimbursementpayeeShareds.get(i).setRbid(serviceReimbursementShared.getId());
+            serviceReimbursementpayeeShareds.get(i).setId(null);
+        }
+        payeeSharedService.saveBatch(serviceReimbursementpayeeShareds);
+
+        return true;
+    }
+
+    @Override
     public List<ServiceReimbursement> selectSearchList(ServiceReimbursementDto serviceReimbursementdto) {
         return serviceReimbursementMapper.selectSearchList(serviceReimbursementdto);
     }
 
     @Override
-    public List<SpFinancialExpensesReimbursementOut> getListBypower(String PAUSERNO, Integer PAFUNDTYPE, String PAAPPLICANT, String PAAPPLICATIONBEGTIME, String PAAPPLICATIONENDTIME, String PADEPARTMENT,Integer CHECKFLAG,Integer APPLYTYPE) {
-        return serviceReimbursementMapper.getListBypower(PAUSERNO,  PAFUNDTYPE,  PAAPPLICANT,  PAAPPLICATIONBEGTIME,  PAAPPLICATIONENDTIME,  PADEPARTMENT,CHECKFLAG,APPLYTYPE);
+    public List<SpFinancialExpensesReimbursementOut> getListBypower(String PAUSERNO, Integer PAFUNDTYPE, String PAAPPLICANT, String PAAPPLICATIONBEGTIME, String PAAPPLICATIONENDTIME, String PADEPARTMENT, Integer CHECKFLAG, Integer APPLYTYPE) {
+        return serviceReimbursementMapper.getListBypower(PAUSERNO, PAFUNDTYPE, PAAPPLICANT, PAAPPLICATIONBEGTIME, PAAPPLICATIONENDTIME, PADEPARTMENT, CHECKFLAG, APPLYTYPE);
     }
 
     @Override
@@ -108,8 +172,131 @@
     }
 
     @Override
-   public List<ServiceReimbursementEo> getRDInfoByItem(ServiceReimbursementEo serviceReimbursementEo){
-   return serviceReimbursementMapper.getRDInfoByItem(serviceReimbursementEo);
+    public List<ServiceReimbursementEo> getRDInfoByItem(ServiceReimbursementEo serviceReimbursementEo) {
+        return serviceReimbursementMapper.getRDInfoByItem(serviceReimbursementEo);
+    }
+
+
+    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 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);
+        boolean bRet = sharedService.updateById(remShare);
+        if (!bRet) return -1;
+
+        return 0;
     }
 
 

--
Gitblit v1.9.3