From 1574cc259ecec7217d210c58d2bbf7b44a106234 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期五, 12 九月 2025 20:48:31 +0800
Subject: [PATCH] 通过生日算年龄

---
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceReimbursementServiceImpl.java |   69 +++++++++++++++++++++++++---------
 1 files changed, 51 insertions(+), 18 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 0cc543f..33f2c24 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
@@ -41,6 +41,7 @@
 import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.atomic.AtomicLong;
 
 /**
  * 鎶ラ攢鐢宠Service涓氬姟灞傚鐞�
@@ -358,7 +359,8 @@
                     log.info("鍑哄樊琛ヨ创琚� 璐㈠姟閫�鍥炲啀鎻愪氦锛屽嚭绾冲啀娆″鎵癸紝涔嬪悗鎻愪氦鍒拌储鍔�:{}", serviceReimbursement.getId());
                     //璇存槑鏄储鍔¢��鍥炲啀鎻愪氦鐨�.闇�瑕佸嚭绾冲啀鐪嬩竴閬嶏紝娌¢棶棰樹箣鍚庯紝寰�鍒嗕韩琛ㄩ噷鏂板
 //                    serviceReimbursementService.addSharedData(serviceReimbursement.getId());
-                    serviceReimbursement.setFinancechecher("瀹℃壒浜猴細" + user.getUserName() + " & 瀹℃壒鏃堕棿" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + " & 瀹℃壒缁撴灉锛氶�氳繃");
+//                    serviceReimbursement.setFinancechecher("瀹℃壒浜猴細" + user.getNickName() + " & 瀹℃壒鏃堕棿" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + " & 瀹℃壒缁撴灉锛氶�氳繃");
+                    serviceReimbursement.setFinancechecher(user.getNickName());
                     serviceReimbursement.setFlowlevel(serviceFundflowrules.get(0).getTotallevel().longValue());
                     serviceReimbursement.setRecordstatus(99);
                     serviceReimbursement.setUploadStates(1);
@@ -393,7 +395,8 @@
                 List<Integer> roleIds = sysUserRoleMapper.getUserRoleByUserId(user.getUserId());
                 if (roleIds != null && roleIds.contains(11)) {
                     //11涓鸿储鍔�
-                    serviceReimbursement.setFinancechecher("瀹℃壒浜猴細" + user.getUserName() + " & 瀹℃壒鏃堕棿" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + " & 瀹℃壒缁撴灉锛氶�氳繃");
+//                    serviceReimbursement.setFinancechecher("瀹℃壒浜猴細" + user.getNickName() + " & 瀹℃壒鏃堕棿" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + " & 瀹℃壒缁撴灉锛氶�氳繃");
+                    serviceReimbursement.setFinancechecher(user.getNickName());
                 }
 
             } else {
@@ -476,7 +479,9 @@
                     }
                 }
             }
-
+//            if (StringUtils.isNotEmpty(serviceReimbursement.getManagername()) && serviceReimbursement.getManagername().equals(loginUser.getUser().getNickName())) {
+//                serviceReimbursement.setManagername("瀹℃壒浜猴細" + serviceReimbursement.getManagername() + " & 瀹℃壒鏃堕棿" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + " & 瀹℃壒缁撴灉锛氶�氳繃");
+//            }
             updateById(serviceReimbursement);
 
             ServiceSystemmessage serviceSystemmessage = new ServiceSystemmessage();
@@ -515,6 +520,30 @@
     }
 
 
+    public String getLastApprovalInfo(List<ServiceFundflow> serviceFundflows, String managerName) {
+        if (StringUtils.isEmpty(managerName)) return null;
+        if (org.springframework.util.CollectionUtils.isEmpty(serviceFundflows)) {
+            //濡傛灉鏄渶鍚庝竴涓汉瀹℃壒锛岃繖涓椂鍊欏彲鑳絝low閲岃繕娌℃湁鐢熸垚杩涘幓
+            SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            return "瀹℃壒浜猴細" + managerName + " & 瀹℃壒鏃堕棿锛�" + sd.format(new Date()) + " & 瀹℃壒缁撴灉锛氶�氳繃";
+        }
+
+        Optional<ServiceFundflow> lastApproval = serviceFundflows.stream().filter(flow -> flow.getCheckusername().contains(managerName)).max(Comparator.comparing(ServiceFundflow::getCreateTime));
+
+        if (lastApproval.isPresent()) {
+            ServiceFundflow flow = lastApproval.get();
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            if (flow.getCheckTime() == null) {
+                flow.setCheckTime(new Date());
+            }
+            String formattedTime = sdf.format(flow.getCheckTime());
+
+            return "瀹℃壒浜猴細" + managerName + " & 瀹℃壒鏃堕棿锛�" + formattedTime + " & 瀹℃壒缁撴灉锛氶�氳繃";
+        }
+
+        return "鏈壘鍒板鎵硅褰�";
+    }
+
     public Boolean sendData(ServiceReimbursement serviceReimbursement) {
         // fund鍜宖unddetail鐨勬暟鎹幏鍙�
         addSharedData(serviceReimbursement.getId());
@@ -543,13 +572,11 @@
         // 涓昏〃瀛楁鏁版嵁
         Map<String, Object> data2 = new HashMap<>();
         data2.put("formmain_1209", formmain_1209(serviceReimbursementSharedList.get(0)));
-
         // 鏄庣粏琛ㄥ瓧娈垫暟鎹紝涓庨檮浠剁殑澶勭悊
         Map<String, List<Map<String, Object>>> map1 = formson_1210(serviceReimbursementdetailShareds);
         data2.put("formson_1210", map1.get("formson_1210"));
         data2.put("thirdAttachments", map1.get("annexfilesList"));
         data2.put("formson_1211", formson_1211(serviceReimbursementpayeeShareds));
-
         data.put("data", data2);
         //妯℃澘缂栧彿锛岀敱鑷磋繙鏂规彁渚涳紝璇ュ弬鏁板喅瀹氬彂璧峰崗鍚岀郴缁熶腑鍝釜娴佺▼
         data.put("templateCode", "cyfbxd_rzhc_ceshi");
@@ -563,7 +590,6 @@
         data.put("subject", "");
         ServiceReimbursement serviceReimbursement1 = serviceReimbursementMapper.selectById(serviceReimbursement.getId());
         data.put("summaryId", serviceReimbursement1.getSummaryId() == null ? "" : serviceReimbursement1.getSummaryId());
-
         map.put("data", data);
         String strRes = null;
         if (!active.equals("druid")) {
@@ -571,7 +597,6 @@
             String token = getToken();
             JSONObject json1 = JSONObject.parseObject(token);
             token = json1.get("id").toString();
-
             ObjectMapper objectMapper = new ObjectMapper();
             String json = null;
             try {
@@ -607,9 +632,10 @@
         return true;
     }
 
+    private static final AtomicLong COUNTER = new AtomicLong(System.currentTimeMillis());
+
     private Map<String, List<Map<String, Object>>> formson_1210(List<ServiceReimbursementdetailShared> serviceReimbursementdetailSharedList) {
         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) {
@@ -638,12 +664,12 @@
             map.put("浜哄憳绫诲埆", reimbursementdetailShared.getPersontype());
             map.put("浣忓璐规爣鍑�", "");
             map.put("浣忓璐规爣鍑嗗悎璁�", reimbursementdetailShared.getHotelexpense());
-            Long fpuuid = System.currentTimeMillis();
+            Long fpuuid = COUNTER.incrementAndGet();
             map.put("鍙戠エ闄勪欢", fpuuid);
             map.put("绁ㄦ嵁璇嗗埆", "");
             map.put("璇嗗埆浜�", "");
             map.put("搴忓彿1", "");
-            Long qtuuid = System.currentTimeMillis();
+            Long qtuuid = COUNTER.incrementAndGet();
             map.put("鍏朵粬闄勪欢", qtuuid);
             map.put("涓汉绁ㄥす鐢ㄦ埛", "");
             map.put("璇嗗埆绁ㄦ嵁", "");
@@ -709,12 +735,18 @@
     }
 
     private Map<String, Object> formmain_1209(ServiceReimbursementShared serviceReimbursementShared) {
+        ServiceFundflow serviceFundflow = new ServiceFundflow();
+        serviceFundflow.setFundid(serviceReimbursementShared.getReimid());
+        serviceFundflow.setFundtype(1);
+        List<ServiceFundflow> serviceFundflows = serviceFundflowService.queryList(serviceFundflow);
+
+
         Map<String, Object> formmain_1209 = new HashMap<>();
 
         formmain_1209.put("鎶ラ攢鏃ユ湡", new SimpleDateFormat("yyyy-MM-dd HH:mm").format(serviceReimbursementShared.getApplyTime()));
         formmain_1209.put("鍑哄樊浜�-浣滃簾", "");
         formmain_1209.put("鎶ラ攢浜�", serviceReimbursementShared.getUsername());
-        formmain_1209.put("鍖哄煙缁勯暱", serviceReimbursementShared.getManagername());
+        formmain_1209.put("鍖哄煙缁勯暱", getLastApprovalInfo(serviceFundflows, serviceReimbursementShared.getManagername()));
         formmain_1209.put("鍑哄樊浜嬬敱", serviceReimbursementShared.getReason());
         formmain_1209.put("澶╂暟鍚堣", 0.00);
         formmain_1209.put("浜ら�氳垂鍚堣", serviceReimbursementShared.getTotalamount());
@@ -726,9 +758,9 @@
         formmain_1209.put("鍏朵粬璐圭敤鍚堣", 0.00);
         formmain_1209.put("棰嗘閲戦澶у啓", serviceReimbursementShared.getBigstrmoney());
         formmain_1209.put("棰嗘閲戦", serviceReimbursementShared.getAmountrequested());
-        formmain_1209.put("璐㈠姟瀹℃壒", serviceReimbursementShared.getFinancechecher());
-        formmain_1209.put("璐㈠姟閮ㄨ礋璐d汉瀹℃壒", serviceReimbursementShared.getFinancedirector());
-        formmain_1209.put("鍔炲叕瀹や富浠诲鎵�", serviceReimbursementShared.getOfficedirector());
+        formmain_1209.put("璐㈠姟瀹℃壒", "");
+        formmain_1209.put("璐㈠姟閮ㄨ礋璐d汉瀹℃壒", getLastApprovalInfo(serviceFundflows, serviceReimbursementShared.getFinancedirector()));
+        formmain_1209.put("鍔炲叕瀹や富浠诲鎵�", getLastApprovalInfo(serviceFundflows, serviceReimbursementShared.getOfficedirector()));
         formmain_1209.put("澶囨敞", serviceReimbursementShared.getRemark());
         formmain_1209.put("涓氬姟鍓櫌闀垮鎵�", serviceReimbursementShared.getBusvicepresident());
         formmain_1209.put("璐㈠姟鍓櫌闀垮鎵�", serviceReimbursementShared.getFinvicepresident());
@@ -736,15 +768,15 @@
         formmain_1209.put("寮�鎴烽摱琛�-浣滃簾", "");
         formmain_1209.put("鍗″彿-浣滃簾", "");
         formmain_1209.put("鏀粯鏂瑰紡", serviceReimbursementShared.getZffs());
-        formmain_1209.put("缁勯暱", "");
-        formmain_1209.put("瀹℃壒浜哄憳", "");
+        formmain_1209.put("缁勯暱", serviceReimbursementShared.getManagername());
+        formmain_1209.put("瀹℃壒浜哄憳", getLastApprovalInfo(serviceFundflows, serviceReimbursementShared.getFinancechecher()));
         formmain_1209.put("鏀粯鏃ユ湡", serviceReimbursementShared.getRiqi());
         formmain_1209.put("涓婁紶闄勪欢", "");
         formmain_1209.put("鎵撴鍚堣", 0.00);
         formmain_1209.put("鍙戠エ璇嗗埆-浣滃簾", "");
         formmain_1209.put("璇嗗埆浜�-浣滃簾", "");
         formmain_1209.put("璐㈠姟瀹℃壒绛惧瓧", "");
-        formmain_1209.put("璐㈠姟閮ㄨ礋璐d汉瀹℃壒绛惧瓧", serviceReimbursementShared.getFinancedirector());
+        formmain_1209.put("璐㈠姟閮ㄨ礋璐d汉瀹℃壒绛惧瓧", getLastApprovalInfo(serviceFundflows, serviceReimbursementShared.getFinancedirector()));
         formmain_1209.put("琛ㄥ崟缂栧彿1", "");
         formmain_1209.put("CIF璐﹀閰嶇疆1", "");
         formmain_1209.put("闄㈠尯", "");
@@ -804,12 +836,13 @@
         Map<String, Object> map = new HashMap<String, Object>();
         map.put("userName", "opo");
         map.put("password", "4126407a-9821-4874-be41-6568abd6dbe5");
-        map.put("loginName", "demo");
+        map.put("loginName", "OPO绯荤粺");
 
         JSONObject jsonObj = new JSONObject(map);
 
         System.out.println("uploadOAFileAndUpdateDb + jsonObject" + jsonObj.toString() + "\r\n" + jsonObj.toJSONString());
         String strRes = HttpClientKit.postOpr(strUrl, jsonObj.toString());
+        log.info("-----------------strRes-----鐨勫�间负锛歿}", strRes);
         return strRes;
     }
 

--
Gitblit v1.9.3