From 84a995c146ce6ab74709a503d010b03fb469e022 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期二, 21 七月 2026 15:01:57 +0800
Subject: [PATCH] 代码提交

---
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceReimbursementServiceImpl.java |  122 +++++++++++++++++++++++++---------------
 1 files changed, 76 insertions(+), 46 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 df1c025..ff4b821 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
@@ -25,6 +25,7 @@
 import com.ruoyi.project.domain.vo.SpFinancialExpensesReimbursementOut;
 import com.ruoyi.project.mapper.*;
 import com.ruoyi.project.service.*;
+import com.ruoyi.system.mapper.SysUserMapper;
 import com.ruoyi.system.mapper.SysUserRoleMapper;
 import com.ruoyi.system.service.ISysPostService;
 import com.ruoyi.system.service.ISysUserService;
@@ -76,6 +77,12 @@
 
     @Autowired
     IServiceReimbursementpayeeSharedService payeeSharedService;
+
+    @Autowired
+    IServiceReimbursementpayeeService payeeService;
+
+    @Autowired
+    SysUserMapper sysUserMapper;
 
     @Autowired
     IServiceFundflowruleService serviceFundflowruleService;
@@ -210,7 +217,17 @@
         List<ServiceReimbursementShared> serviceReimbursementShareds = sharedService.queryList(reimbursementShared1);
         log.info("serviceReimbursementShareds鐨勬煡璇㈢粨鏋� :{}", serviceReimbursementShareds.size());
         if (!CollectionUtils.isEmpty(serviceReimbursementShareds)) {
-            return true;
+            //濡傛灉涓嶄负绌猴紝鍒欏皢鍒嗕韩琛ㄩ噷鐨勬暟鎹垹闄わ紙鍥犱负鎺ヤ笅鍘伙紝鑰佹暟鎹笂浼犵殑闄勪欢锛屽彲鑳戒笉鏄兂瑕佺殑浜嗭紝杩樼敤鑰侀檮浠讹紝鏄湁闂鐨勶紱鎵�浠ラ渶瑕佸皢鑰佺殑share鏁版嵁鍒犻櫎锛岀劧鍚庡啀鏂板锛屼笂浼犳柊闄勪欢锛�
+            for (ServiceReimbursementShared serviceReimbursementShared : serviceReimbursementShareds) {
+                sharedService.removeById(serviceReimbursementShared.getId());
+
+                ServiceReimbursementdetailShared srds = new ServiceReimbursementdetailShared();
+                srds.setRbid(serviceReimbursementShared.getId());
+                List<ServiceReimbursementdetailShared> serviceReimbursementdetailShareds = detailSharedService.queryList(srds);
+                for (ServiceReimbursementdetailShared serviceReimbursementdetailShared : serviceReimbursementdetailShareds) {
+                    detailSharedService.removeById(serviceReimbursementdetailShared.getId());
+                }
+            }
         }
 
         //濡傛灉娌℃湁鎻掑叆锛屽垯璧颁笅闈㈢殑娴佺▼
@@ -234,7 +251,7 @@
 //        //涓婁紶OA鏂囦欢
         //灏唖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).setRdid(details.get(i).getId());
             serviceReimbursementdetailShareds.get(i).setRbid(serviceReimbursementShared.getId());
             serviceReimbursementdetailShareds.get(i).setId(null);
             //涓婁紶OA鏂囦欢
@@ -257,7 +274,16 @@
 //        detailSharedService.saveBatch(serviceReimbursementdetailShareds);
         for (ServiceReimbursementdetailShared serviceReimbursementdetailShared : serviceReimbursementdetailShareds) {
             if (ObjectUtils.isNotEmpty(serviceReimbursementdetailShared)) {
+                log.info("鏇存柊serviceReimbursementdetail琛ㄩ噷鐨勫�间负:{}", serviceReimbursementdetailShared);
                 detailSharedService.save(serviceReimbursementdetailShared);
+
+                log.info("鏇存柊serviceReimbursementdetail琛ㄩ噷鐨勯檮浠跺瓧娈�:{},{}", serviceReimbursementdetailShared.getAnnexfiles(), serviceReimbursementdetailShared.getInvoicefiles());
+                //鏇存柊serviceReimbursementdetail琛ㄩ噷鐨勯檮浠跺瓧娈�
+                ServiceReimbursementdetail serviceReimbursementdetail = new ServiceReimbursementdetail();
+                serviceReimbursementdetail.setId(serviceReimbursementdetailShared.getRdid());
+                serviceReimbursementdetail.setAnnexfiles(serviceReimbursementdetailShared.getAnnexfiles());
+                serviceReimbursementdetail.setInvoicefiles(serviceReimbursementdetailShared.getInvoicefiles());
+                serviceReimbursementdetailMapper.updateById(serviceReimbursementdetail);
             } else {
                 log.info("serviceReimbursementdetailShared涓虹┖浜�");
             }
@@ -421,7 +447,8 @@
                 map.put("瀹℃壒浜猴細", loginUser.getUser().getUserName());
                 map.put("瀹℃壒鏃堕棿锛�", new Date());
                 map.put("鎰忚锛�", "涓嶉�氳繃");
-                if (StringUtils.isNotBlank(checkFundVO.getFlowcontent())) map.put("鎰忚锛�", checkFundVO.getFlowcontent());
+                if (StringUtils.isNotBlank(checkFundVO.getFlowcontent()))
+                    map.put("鎰忚锛�", checkFundVO.getFlowcontent());
                 contentList.add(map);
                 DingTalkReqVo dingTalkReqVo = new DingTalkReqVo();
                 dingTalkReqVo.setTitle("璐㈠姟绯荤粺椹冲洖淇℃伅");
@@ -467,13 +494,20 @@
                 }
 
             }
-            //053瀹℃壒閫氳繃涔嬪悗锛屽氨闇�瑕佹妸鈥滃姙鍏涓讳换鈥濈殑鍚嶅瓧濉笂
-            if (checkFundVO.getFlowconclusion() == 1 && user.getUserName().equals("053")) {
+            //鍔炲叕瀹や富浠诲鎵归�氳繃涔嬪悗锛屽氨闇�瑕佹妸鈥滃姙鍏涓讳换鈥濈殑鍚嶅瓧濉笂
+            SysUser sysUser = null;
+            if (StringUtils.isNotEmpty(user.getUserName())) {
+                sysUser = sysUserMapper.selectUserByUserName(user.getUserName());
+                log.info("宸梾sysUsers杩斿洖鐨勫�间负:{}", sysUser);
+            }
+
+            if (checkFundVO.getFlowconclusion() == 1 && Objects.nonNull(sysUser) && sysUser.getRoles() != null && sysUser.getRoles().stream().anyMatch(role -> "officedirector".equals(role.getRoleKey()))) {
                 serviceReimbursement.setOfficedirector(user.getNickName());
                 serviceReimbursement.setUploadStates(1);
 
                 Boolean aBoolean1 = null;
                 if (newSwitch == 1) {
+                    log.info("宸梾newSwitch杩斿洖鐨勫�间负:{}", newSwitch);
                     aBoolean1 = sendData(serviceReimbursement);
                     if (!aBoolean1) {
                         allMap.put("500", "鍙戦�佸け璐�");
@@ -551,18 +585,15 @@
         addSharedData(serviceReimbursement.getId());
         List<ServiceReimbursementShared> serviceReimbursementSharedList = sharedService.getRemShareInfoByRemId(serviceReimbursement.getId());
         if (org.springframework.util.CollectionUtils.isEmpty(serviceReimbursementSharedList)) return false;
-
         log.info("serviceReimbursementSharedList鐨勬暟鎹噺涓猴細{}", serviceReimbursementSharedList.size());
 
         //detail璇︽儏
-        ServiceReimbursementdetailShared serviceReimbursementdetailShared = new ServiceReimbursementdetailShared();
-        serviceReimbursementdetailShared.setRbid(serviceReimbursementSharedList.get(0).getId());
-        List<ServiceReimbursementdetailShared> serviceReimbursementdetailShareds = detailSharedService.queryList(serviceReimbursementdetailShared);
+        List<ServiceReimbursementdetail> serviceReimbursementdetailList = serviceReimbursementdetailMapper.getAllDetailsByRBID(serviceReimbursement.getId());
 
         //payee璇︽儏
-        ServiceReimbursementpayeeShared serviceReimbursementpayeeShared = new ServiceReimbursementpayeeShared();
-        serviceReimbursementpayeeShared.setRbid(serviceReimbursementSharedList.get(0).getId());
-        List<ServiceReimbursementpayeeShared> serviceReimbursementpayeeShareds = payeeSharedService.queryList(serviceReimbursementpayeeShared);
+        ServiceReimbursementpayee serviceReimbursementpayee = new ServiceReimbursementpayee();
+        serviceReimbursementpayee.setRbid(serviceReimbursement.getId());
+        List<ServiceReimbursementpayee> serviceReimbursementpayees = payeeService.queryList(serviceReimbursementpayee);
 
 
         // 鏁版嵁鐨勫皝瑁�
@@ -576,10 +607,10 @@
         ServiceReimbursement sr = serviceReimbursementMapper.selectById(serviceReimbursement.getId());
         data2.put("formmain_1209", formmain_1209(sr));
         // 鏄庣粏琛ㄥ瓧娈垫暟鎹紝涓庨檮浠剁殑澶勭悊
-        Map<String, List<Map<String, Object>>> map1 = formson_1210(serviceReimbursementdetailShareds);
+        Map<String, List<Map<String, Object>>> map1 = formson_1210(serviceReimbursementdetailList);
         data2.put("formson_1210", map1.get("formson_1210"));
         data2.put("thirdAttachments", map1.get("annexfilesList"));
-        data2.put("formson_1211", formson_1211(serviceReimbursementpayeeShareds));
+        data2.put("formson_1211", formson_1211(serviceReimbursementpayees));
         data.put("data", data2);
         //妯℃澘缂栧彿锛岀敱鑷磋繙鏂规彁渚涳紝璇ュ弬鏁板喅瀹氬彂璧峰崗鍚岀郴缁熶腑鍝釜娴佺▼
         data.put("templateCode", "cyfbxd_rzhc_ceshi");
@@ -635,36 +666,36 @@
         return true;
     }
 
-    private Map<String, List<Map<String, Object>>> formson_1210(List<ServiceReimbursementdetailShared> serviceReimbursementdetailSharedList) {
+    private Map<String, List<Map<String, Object>>> formson_1210(List<ServiceReimbursementdetail> serviceReimbursementdetailList) {
         Map<String, List<Map<String, Object>>> allMap = new HashMap<>();
         List<Map<String, Object>> list = new ArrayList<>();
         List<Map<String, Object>> annexfilesList = new ArrayList<>();
-        for (ServiceReimbursementdetailShared reimbursementdetailShared : serviceReimbursementdetailSharedList) {
+        for (ServiceReimbursementdetail reimbursementdetail : serviceReimbursementdetailList) {
             Map<String, Object> map = new HashMap<>();
-            map.put("浜ら�氬伐鍏�", reimbursementdetailShared.getTraffictype());
-            map.put("浜ら�氳垂", reimbursementdetailShared.getTrafficexpense());
-            map.put("甯傚唴浜ら��", reimbursementdetailShared.getCityfee());
-            map.put("浣忓璐�", reimbursementdetailShared.getHotelexpense());
-            map.put("鏉傝垂", reimbursementdetailShared.getOtherexpense());
-            map.put("浼欓璐规姤閿�", reimbursementdetailShared.getFoodexpenses());
-            map.put("浼欓璐硅ˉ鍔�", reimbursementdetailShared.getFoodallowance());
-            map.put("鍏朵粬璐圭敤", reimbursementdetailShared.getOtherfeeamount());
-            map.put("鍏朵粬璐圭敤璇存槑", reimbursementdetailShared.getOtherfeedesc());
+            map.put("浜ら�氬伐鍏�", reimbursementdetail.getTraffictype());
+            map.put("浜ら�氳垂", reimbursementdetail.getTrafficexpense());
+            map.put("甯傚唴浜ら��", reimbursementdetail.getCityfee());
+            map.put("浣忓璐�", reimbursementdetail.getHotelexpense());
+            map.put("鏉傝垂", reimbursementdetail.getOtherexpense());
+            map.put("浼欓璐规姤閿�", reimbursementdetail.getFoodexpenses());
+            map.put("浼欓璐硅ˉ鍔�", reimbursementdetail.getFoodallowance());
+            map.put("鍏朵粬璐圭敤", reimbursementdetail.getOtherfeeamount());
+            map.put("鍏朵粬璐圭敤璇存槑", reimbursementdetail.getOtherfeedesc());
             map.put("閲戦鍚堣", "");
-            map.put("鍑哄樊鏃堕棿璧�", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(reimbursementdetailShared.getStarttime()));
-            map.put("鍑哄彂鍦扮偣", reimbursementdetailShared.getDeparture());
-            map.put("鍑哄樊鏃堕棿姝�", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(reimbursementdetailShared.getEndtime()));
-            map.put("鍑哄樊鐩殑鍦�", reimbursementdetailShared.getDestination());
-            map.put("澶╂暟", reimbursementdetailShared.getDays());
-            BigDecimal total = safe(reimbursementdetailShared.getCityfee()).add(safe(reimbursementdetailShared.getTrafficexpense())).add(safe(reimbursementdetailShared.getHotelexpense())).add(safe(reimbursementdetailShared.getOtherexpense())).add(safe(reimbursementdetailShared.getFoodexpenses())).add(safe(reimbursementdetailShared.getFoodallowance())).add(safe(reimbursementdetailShared.getOtherfeeamount()));
+            map.put("鍑哄樊鏃堕棿璧�", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(reimbursementdetail.getStarttime()));
+            map.put("鍑哄彂鍦扮偣", reimbursementdetail.getDeparture());
+            map.put("鍑哄樊鏃堕棿姝�", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(reimbursementdetail.getEndtime()));
+            map.put("鍑哄樊鐩殑鍦�", reimbursementdetail.getDestination());
+            map.put("澶╂暟", reimbursementdetail.getDays());
+            BigDecimal total = safe(reimbursementdetail.getCityfee()).add(safe(reimbursementdetail.getTrafficexpense())).add(safe(reimbursementdetail.getHotelexpense())).add(safe(reimbursementdetail.getOtherexpense())).add(safe(reimbursementdetail.getFoodexpenses())).add(safe(reimbursementdetail.getFoodallowance())).add(safe(reimbursementdetail.getOtherfeeamount()));
             map.put("瀹為檯鎶ラ攢閲戦", total);
-            map.put("璐㈠姟澶囨敞", reimbursementdetailShared.getRemark());
-            map.put("id", reimbursementdetailShared.getRdid());
-            map.put("鍑哄樊浜�", reimbursementdetailShared.getPersonname());
+            map.put("璐㈠姟澶囨敞", reimbursementdetail.getRemark());
+            map.put("id", reimbursementdetail.getId());
+            map.put("鍑哄樊浜�", reimbursementdetail.getPersonname());
             map.put("鍥炰氦閫氬伐鍏�", "");
-            map.put("浜哄憳绫诲埆", reimbursementdetailShared.getPersontype());
+            map.put("浜哄憳绫诲埆", reimbursementdetail.getPersontype());
             map.put("浣忓璐规爣鍑�", "");
-            map.put("浣忓璐规爣鍑嗗悎璁�", reimbursementdetailShared.getHotelexpense());
+            map.put("浣忓璐规爣鍑嗗悎璁�", reimbursementdetail.getHotelexpense());
             Long fpuuid = IdGeneratorUtils.nextId();
             map.put("鍙戠エ闄勪欢", fpuuid);
             map.put("绁ㄦ嵁璇嗗埆", "");
@@ -678,8 +709,8 @@
             list.add(map);
 
             //闄勪欢澶勭悊
-            String annexfiles = reimbursementdetailShared.getAnnexfiles();
-            String invoicefiles = reimbursementdetailShared.getInvoicefiles();
+            String annexfiles = reimbursementdetail.getAnnexfiles();
+            String invoicefiles = reimbursementdetail.getInvoicefiles();
 
             int i = 0;
             if (StringUtils.isNotEmpty(annexfiles)) {
@@ -714,18 +745,18 @@
         return val == null ? BigDecimal.ZERO : val;
     }
 
-    private List<Map<String, Object>> formson_1211(List<ServiceReimbursementpayeeShared> serviceReimbursementpayeeShareds) {
+    private List<Map<String, Object>> formson_1211(List<ServiceReimbursementpayee> serviceReimbursementpayees) {
         Map<String, List<Map<String, Object>>> allMap = new HashMap<>();
 
         List<Map<String, Object>> list = new ArrayList<>();
-        for (ServiceReimbursementpayeeShared serviceReimbursementpayeeShared : serviceReimbursementpayeeShareds) {
+        for (ServiceReimbursementpayee serviceReimbursementpayee : serviceReimbursementpayees) {
             Map<String, Object> map = new HashMap<>();
 
-            map.put("鏀舵浜�", serviceReimbursementpayeeShared.getPersonname());
-            map.put("鍗″彿", serviceReimbursementpayeeShared.getBankcardno());
-            map.put("寮�鎴烽摱琛�", serviceReimbursementpayeeShared.getBankname());
-            map.put("鎵撴閲戦", serviceReimbursementpayeeShared.getAmount());
-            map.put("浜哄憳绫诲埆鎵撴", serviceReimbursementpayeeShared.getPersontype());
+            map.put("鏀舵浜�", serviceReimbursementpayee.getPersonname());
+            map.put("鍗″彿", serviceReimbursementpayee.getBankcardno());
+            map.put("寮�鎴烽摱琛�", serviceReimbursementpayee.getBankname());
+            map.put("鎵撴閲戦", serviceReimbursementpayee.getAmount());
+            map.put("浜哄憳绫诲埆鎵撴", serviceReimbursementpayee.getPersontype());
             map.put("鏍哥畻椤圭洰", "");
             map.put("棰勭畻椤圭洰", "");
             map.put("鍊熸柟鎽樿", "");
@@ -808,7 +839,6 @@
 
     public int uploadOAFileAndUpdateDb(ServiceReimbursementdetailShared remShare) throws Exception {
         log.info("uploadOAFileAndUpdate鏂规硶鐨勫叆鍙�:{}", remShare);
-        System.out.println("uploadOAFileAndUpdate鏂规硶鐨勫叆鍙�:" + remShare);
         //涓婁紶OA鏂囦欢
         String strRes = getToken();
 

--
Gitblit v1.9.3