From 39405c053391f29d2f2c0e2c3104bea111e0e460 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期三, 08 五月 2024 10:25:31 +0800
Subject: [PATCH] 代码提交

---
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceReimbursementServiceImpl.java |  113 +++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 90 insertions(+), 23 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 bd69001..e6cda1b 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
@@ -100,8 +100,14 @@
         if (serviceReimbursement.getRecordstatus() != null) {
             wrappers.eq(ServiceReimbursement::getRecordstatus, serviceReimbursement.getRecordstatus());
         }
+        if (serviceReimbursement.getUploadStates() != null) {
+            wrappers.eq(ServiceReimbursement::getUploadStates, serviceReimbursement.getUploadStates());
+        }
         if (StringUtils.isNotBlank(serviceReimbursement.getUploadflag())) {
             wrappers.eq(ServiceReimbursement::getUploadflag, serviceReimbursement.getUploadflag());
+        }
+        if (serviceReimbursement.getFlowlevel() != null) {
+            wrappers.eq(ServiceReimbursement::getFlowlevel, serviceReimbursement.getFlowlevel());
         }
 
        /* if (serviceReimbursement.getStarttime()!=null && serviceReimbursement.getEndtime()!=null){
@@ -125,6 +131,7 @@
         for (int j = 0; j < rbDetailList.size(); j++) {
             ServiceReimbursementdetail serviceReimbursementdetail = rbDetailList.get(j);
             String annexfiles = serviceReimbursementdetail.getAnnexfiles();
+            String invoicefiles = serviceReimbursementdetail.getInvoicefiles();
             ServiceReimbursementdetailVO serviceReimbursementdetailVO = DtoConversionUtils.sourceToTarget(serviceReimbursementdetail, ServiceReimbursementdetailVO.class);
             if (StringUtils.isNotBlank(annexfiles)) {
                 try {
@@ -135,15 +142,34 @@
                     }
                 }
             }
+            if (StringUtils.isNotBlank(invoicefiles)) {
+                try {
+                    serviceReimbursementdetailVO.setInvoicefilesList(JSON.parseArray(invoicefiles));
+                } catch (Exception e) {
+                    if (e.getMessage().equals("invalid comment")) {
+                    }
+                }
+            }
             serviceReimbursementdetailVOS.add(serviceReimbursementdetailVO);
         }
         return serviceReimbursementdetailVOS;
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Boolean addSharedData(Long id) {
         log.info("addSharedData鏂规硶鐨勫叆鍙俰d :{}", id);
+        //鍏堝垽鏂竴涓媠hare琛ㄦ槸鍚﹀凡缁忔彃鍏�
+        ServiceReimbursementShared reimbursementShared1 = new ServiceReimbursementShared();
+        reimbursementShared1.setReimid(id);
+        reimbursementShared1.setDelFlag(0L);
+        List<ServiceReimbursementShared> serviceReimbursementShareds = sharedService.queryList(reimbursementShared1);
+        log.info("serviceReimbursementShareds鐨勬煡璇㈢粨鏋� :{}", serviceReimbursementShareds.size());
+        if (!CollectionUtils.isEmpty(serviceReimbursementShareds)) {
+            return true;
+        }
+
+        //濡傛灉娌℃湁鎻掑叆锛屽垯璧颁笅闈㈢殑娴佺▼
         ServiceReimbursement serviceReimbursement = serviceReimbursementMapper.selectById(id);
         Map<String, Object> columnMap = new HashMap<>();
         columnMap.put("rbid", id);
@@ -170,10 +196,28 @@
             serviceReimbursementdetailShareds.get(i).setId(null);
             //涓婁紶OA鏂囦欢
             log.info("涓婁紶OA鏂囦欢鏂规硶鐨勫叆鍙�:{}", serviceReimbursementdetailShareds.get(i));
-            uploadOAFileAndUpdateDb(serviceReimbursementdetailShareds.get(i));
+            try {
+                uploadOAFileAndUpdateDb(serviceReimbursementdetailShareds.get(i));
+            } catch (Exception e) {
+                log.error("Exception涓璻eimShare鐨勫叆鍙俰d涓猴細{}", serviceReimbursementShared.getId());
+                if (serviceReimbursementShared.getId() != null) {
+                    Boolean aBoolean = sharedService.delResharedInfoById(serviceReimbursementShared.getId());
+                    log.error("鏂囦欢涓婁紶澶辫触锛屽皢鍒嗕韩琛ㄦ暟鎹洖婊氾細{}", aBoolean);
+                }
+                e.getMessage();
+                return false;
+            }
+
         }
 
-        detailSharedService.saveBatch(serviceReimbursementdetailShareds);
+//        detailSharedService.saveBatch(serviceReimbursementdetailShareds);
+        for (ServiceReimbursementdetailShared serviceReimbursementdetailShared : serviceReimbursementdetailShareds) {
+            if (ObjectUtils.isNotEmpty(serviceReimbursementdetailShared)) {
+                detailSharedService.save(serviceReimbursementdetailShared);
+            } else {
+                log.info("serviceReimbursementdetailShared涓虹┖浜�");
+            }
+        }
 
         //灏唖erviceReimbursementpayee琛ㄩ噷鐨刬d璧嬪�肩粰Rpid; 灏唖erviceReimbursementShared閲岀殑ID璧嬪�肩粰RBID,骞跺皢serviceReimbursementpayeeShared琛ㄩ噷鐨刬d缃┖锛岀敱鏁版嵁搴撻噸鏂扮敓鎴�
         for (int i = 0; i < serviceReimbursementpayees.size(); i++) {
@@ -181,8 +225,14 @@
             serviceReimbursementpayeeShareds.get(i).setRbid(serviceReimbursementShared.getId());
             serviceReimbursementpayeeShareds.get(i).setId(null);
         }
-        payeeSharedService.saveBatch(serviceReimbursementpayeeShareds);
 
+        for (ServiceReimbursementpayeeShared serviceReimbursementpayeeShared : serviceReimbursementpayeeShareds) {
+            if (ObjectUtils.isNotEmpty(serviceReimbursementpayeeShared)) {
+                payeeSharedService.save(serviceReimbursementpayeeShared);
+            } else {
+                log.info("serviceReimbursementpayeeShared涓虹┖浜嗭紒");
+            }
+        }
         return true;
     }
 
@@ -192,8 +242,8 @@
     }
 
     @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, Integer CHECKSTATUS, String donorname) {
+        return serviceReimbursementMapper.getListBypower(PAUSERNO, PAFUNDTYPE, PAAPPLICANT, PAAPPLICATIONBEGTIME, PAAPPLICATIONENDTIME, PADEPARTMENT, CHECKFLAG, APPLYTYPE, CHECKSTATUS, donorname);
     }
 
     @Override
@@ -212,7 +262,7 @@
     }
 
 
-    public int uploadOAFileAndUpdateDb(ServiceReimbursementdetailShared remShare) {
+    public int uploadOAFileAndUpdateDb(ServiceReimbursementdetailShared remShare) throws Exception {
         log.info("uploadOAFileAndUpdate鏂规硶鐨勫叆鍙�:{}", remShare);
         System.out.println("uploadOAFileAndUpdate鏂规硶鐨勫叆鍙�:" + remShare);
         //涓婁紶OA鏂囦欢
@@ -238,19 +288,32 @@
         String strFUrl = "http://129.88.242.39:8899/seeyon/rest/attachment?token=" + strRes;
 
         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);
+        List<RbDetailFile> invoicefilesList = new ArrayList<>();
 
-            log.info("filePath鐨勪慨鏀�:{}", filePath);
-            String url = rbDetailFile.getUrl();
-            //file鐢ㄧ殑鏄粷瀵逛綅缃�
-            String substring = url.substring(url.indexOf("/profile/upload") + "/profile/upload".length());
-            String strFile = rbDetailFile.getUrl().replace(filePath, "/profile/upload");
-            File filetest = new File(filePath + substring);
-            try {
+        //鏅�氭枃浠朵笂浼�
+        List<RbDetailFile> parseArray = JSON.parseArray(remShare.getAnnexfiles(), RbDetailFile.class);
+        //鍙戠エ鏂囦欢涓婁紶
+        List<RbDetailFile> invoicefilesArray = JSON.parseArray(remShare.getInvoicefiles(), RbDetailFile.class);
+        //鏅�氶檮浠�
+        uploadFile(filePath, strFUrl, parseArray2, parseArray, remShare, "1");
+        //鍙戠エ闄勪欢
+        uploadFile(filePath, strFUrl, invoicefilesList, invoicefilesArray, remShare, "2");
+        return 0;
+    }
+
+    private Integer uploadFile(String filePath, String strFUrl, List<RbDetailFile> parseArray2, List<RbDetailFile> parseArray, ServiceReimbursementdetailShared remShare, String flag) throws Exception {
+        if (!CollectionUtils.isEmpty(parseArray)) {
+            for (int i = 0; i < parseArray.size(); i++) {
+                RbDetailFile rbDetailFile = parseArray.get(i);
+
+                log.info("filePath鐨勪慨鏀�:{}", filePath);
+                String url = rbDetailFile.getUrl();
+                //file鐢ㄧ殑鏄粷瀵逛綅缃�
+                String substring = url.substring(url.indexOf("/profile/upload") + "/profile/upload".length());
+                String strFile = rbDetailFile.getUrl().replace(filePath, "/profile/upload");
+                System.out.println("reimbursement鏈嶅姟鐨刦ilePath + substring鏄贡鐮佸悧: " + filePath + substring);
+                File filetest = new File(filePath + substring);
                 log.info("璇锋眰绗笁鏂圭殑鍏ュ弬strFile : {}, strFUrl : {}", strFile, filePath);
-                System.out.println("璇锋眰绗笁鏂圭殑鍏ュ弬:" + filePath + substring);
                 String struploadResult = HttpClientKit.sendPostWithFile(filetest, strFUrl);
                 log.info("绗笁鏂逛紶鍥炵殑鏁版嵁: {}", struploadResult);
                 if (StringUtils.isEmpty(struploadResult)) {
@@ -266,13 +329,17 @@
                     JSONObject jsonRet = jsonArr.getJSONObject(j);
                     rbDetailFile.setFileid(jsonRet.get("fileUrl").toString());
                 }
-            } catch (Exception e) {
-                e.printStackTrace();
-                log.error("HttpClientKit.sendPostWithFile 鎶ラ敊浜� : " + e.getMessage());
+                parseArray2.add(rbDetailFile);
             }
-            parseArray2.add(rbDetailFile);
         }
-        remShare.setAnnexfiles(JSON.toJSONString(parseArray2));
+        if (flag.equals("1")) {
+            //濡傛灉flag涓�1,鍒欐槸鏅��
+            remShare.setAnnexfiles(JSON.toJSONString(parseArray2));
+
+        } else if (flag.equals("2")) {
+            //濡傛灉flag涓�2,鍒欐槸鍙戠エ
+            remShare.setInvoicefiles(JSON.toJSONString(parseArray2));
+        }
         log.info("ServiceReimbursementdetailShared 鏄惁鍔犱笂浜唂ileid : {}", remShare);
         return 0;
     }

--
Gitblit v1.9.3