From 3165f71939bf0783787fbe19ac77063c23ec22bc Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期五, 12 九月 2025 15:01:55 +0800
Subject: [PATCH] 通过生日算年龄

---
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundServiceImpl.java |   42 +++++++++++++++++++++++++++++++++++-------
 1 files changed, 35 insertions(+), 7 deletions(-)

diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundServiceImpl.java
index cfea81f..852b27d 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundServiceImpl.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundServiceImpl.java
@@ -514,7 +514,7 @@
 
         //053瀹℃壒閫氳繃涔嬪悗锛屽氨闇�瑕佹妸鈥滃姙鍏涓讳换鈥濈殑鍚嶅瓧濉笂
         if (checkFundVO.getFlowconclusion() == 1 && user.getUserName().equals("053")) {
-            serviceFund.setOfficedirector("瀹℃壒浜猴細" + user.getNickName() + " & 瀹℃壒鏃堕棿" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + " & 瀹℃壒缁撴灉锛氶�氳繃");
+            serviceFund.setOfficedirector(user.getNickName());
             serviceFund.setUploadStates(1);
             //鏁版嵁鍙戦��
             Boolean aBoolean1 = null;
@@ -528,8 +528,6 @@
             }
         }
         System.out.println("serviceFund鐨勫�兼槸--------:" + serviceFund);
-        log.info("寮�濮嬫洿鏂扮殑鐨勫�兼槸--------");
-
         Boolean aBoolean1 = updateById(serviceFund);
         log.info("integer鏇存柊鐨勭殑鍊兼槸-------- :{}", aBoolean1);
         ServiceSystemmessage serviceSystemmessage = new ServiceSystemmessage();
@@ -747,6 +745,11 @@
 
 
     private Map<String, Object> getformmain_0831(ServiceFund serviceFund) {
+        ServiceFundflow serviceFundflow = new ServiceFundflow();
+        serviceFundflow.setFundid(serviceFund.getId());
+        serviceFundflow.setFundtype(2);
+        List<ServiceFundflow> serviceFundflows = serviceFundflowService.queryList(serviceFundflow);
+
         Map<String, Object> formmain_0831 = new HashMap<>();
         formmain_0831.put("鎹愮尞鑰呭鍚�", serviceFund.getDonorname());
         formmain_0831.put("鎶ラ攢浜哄憳", serviceFund.getUsername());
@@ -757,14 +760,14 @@
         formmain_0831.put("涓婁紶闄勪欢", null);
         formmain_0831.put("澶囨敞", null);
         formmain_0831.put("璐㈠姟瀹℃壒", null);
-        formmain_0831.put("璐㈠姟閮ㄨ礋璐d汉瀹℃壒", serviceFund.getFinancedirector());
-        formmain_0831.put("鍔炲叕瀹や富浠诲鎵�", serviceFund.getOfficedirector());
+        formmain_0831.put("璐㈠姟閮ㄨ礋璐d汉瀹℃壒", getLastApprovalInfo(serviceFundflows, serviceFund.getFinancedirector()));
+        formmain_0831.put("鍔炲叕瀹や富浠诲鎵�", getLastApprovalInfo(serviceFundflows, serviceFund.getOfficedirector()));
         formmain_0831.put("涓氬姟鍓櫌闀垮鎵�", serviceFund.getBusvicepresident());
         formmain_0831.put("璐㈠姟鍓櫌闀垮鎵�", serviceFund.getFinvicepresident());
         formmain_0831.put("涓績璐熻矗浜哄鎵�", serviceFund.getOpochecker());
         formmain_0831.put("鏀粯鏂瑰紡", serviceFund.getZffs());
-        formmain_0831.put("缁勯暱", serviceFund.getManagername());
-        formmain_0831.put("瀹℃壒浜哄憳", serviceFund.getFinancechecher());
+        formmain_0831.put("缁勯暱", getLastApprovalInfo(serviceFundflows, serviceFund.getManagername()));
+        formmain_0831.put("瀹℃壒浜哄憳", getLastApprovalInfo(serviceFundflows, serviceFund.getFinancechecher()));
         formmain_0831.put("鏀粯鏃ユ湡", serviceFund.getRiqi());
         formmain_0831.put("璇嗗埆浜�-浣滃簾", null);
         formmain_0831.put("璐㈠姟瀹℃壒绛惧瓧", serviceFund.getFinancedirector());
@@ -790,6 +793,31 @@
         return formmain_0831;
     }
 
+
+    public String getLastApprovalInfo(List<ServiceFundflow> serviceFundflows, String managerName) {
+        if (StringUtils.isEmpty(managerName)) return "";
+        if (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::getCheckTime));
+
+        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 "";
+    }
+
     @Override
     public Long getFundId(Long infoid) {
         return serviceFundMapper.getFundId(infoid);

--
Gitblit v1.9.3