From 8c215c8be0f5076e8c95daf1b2203440ca7dfcad Mon Sep 17 00:00:00 2001
From: yxh <172933527@qq.com>
Date: 星期五, 23 十月 2026 13:42:50 +0800
Subject: [PATCH] 修改了报销校验

---
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatebaseinfoServiceImpl.java |  289 ++++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 213 insertions(+), 76 deletions(-)

diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatebaseinfoServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatebaseinfoServiceImpl.java
index 72578eb..06dea79 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatebaseinfoServiceImpl.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatebaseinfoServiceImpl.java
@@ -1,6 +1,10 @@
 package com.ruoyi.project.service.impl;
 
 import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.Period;
+import java.time.ZoneId;
+import java.time.temporal.ChronoUnit;
 import java.util.*;
 import java.util.concurrent.ConcurrentHashMap;
 
@@ -9,11 +13,14 @@
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.project.common.CalculateDateUtils;
 import com.ruoyi.project.domain.*;
 import com.ruoyi.project.domain.vo.TimeVO;
 import com.ruoyi.project.domain.vo.countByRecordStateVO;
 import com.ruoyi.project.mapper.*;
 import com.ruoyi.project.service.*;
+import com.ruoyi.system.mapper.SysUserMapper;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -30,6 +37,7 @@
  * @author ruoyi
  * @date 2021-11-13
  */
+@Slf4j
 @Service
 public class ServiceDonatebaseinfoServiceImpl extends ServiceImpl<ServiceDonatebaseinfoMapper, ServiceDonatebaseinfo> implements IServiceDonatebaseinfoService {
 
@@ -71,6 +79,8 @@
 
     @Autowired
     private IServiceDonatecompletioninfoService serviceDonatecompletioninfoService;
+    @Autowired
+    private SysUserMapper sysUserMapper;
 
 
     /**
@@ -206,38 +216,116 @@
     public List<ServiceDonatebaseinfo> selectServiceDonatebaseinfoList(ServiceDonatebaseinfo serviceDonatebaseinfo) {
 
         SysUser user = SecurityUtils.getLoginUser().getUser();
-        List<SysRole> l = user.getRoles();
-        int b = 0;
+        // 瓒呯骇绠$悊鍛樹笉鍙�"鍙湅鏈汉鎶ラ�� / 鍙湅鏈儴闂�"鐨勬暟鎹寖鍥撮檺鍒讹紝鍙煡鐪嬪叏閮ㄦ暟鎹�
+        if (!isSuperAdmin(user)) {
+            List<SysRole> l = user.getRoles();
+            int b = 0;
 
-        for (SysRole r : l) {
-            if (r.getRoleId().longValue() == 3) {
-                b = 1;
+            for (SysRole r : l) {
+                if (r.getRoleId().longValue() == 3) {
+                    b = 1;
+                }
+                if (r.getRoleId().longValue() == 13) {
+                    b = 2;
+                }
             }
-            if (r.getRoleId().longValue() == 13) {
-                b = 2;
+            if (b == 1) {
+//            serviceDonatebaseinfo.setCreateBy(user.getUserName());
+                log.info("user.getUserName()鐨勫�间负 ---- 锛歿}", user.getUserName());
+                serviceDonatebaseinfo.setReporterno(user.getUserName());
+            }
+            if (b == 2) {
+                serviceDonatebaseinfo.setDeptid(user.getDeptId());
             }
         }
-        if (b == 1) {
-            serviceDonatebaseinfo.setCreateBy(user.getUserName());
+        List<ServiceDonatebaseinfo> serviceDonatebaseinfos = serviceDonatebaseinfoMapper.selectServiceDonatebaseinfoList(serviceDonatebaseinfo);
+
+        // 涓�娆℃�у彇鍑哄悇鎹愮尞鍩虹瀵瑰簲鐨勬浜℃椂闂达紝閬垮厤鍦ㄥ惊鐜噷鎸� InfoID 閫愭潯鏌ヨ璇佽〃锛圢+1锛�
+        List<Long> infoIds = new ArrayList<>();
+        for (ServiceDonatebaseinfo item : serviceDonatebaseinfos) {
+            if (item.getId() != null) {
+                infoIds.add(item.getId());
+            }
         }
-        if (b == 2) {
-            serviceDonatebaseinfo.setDeptid(user.getDeptId());
+        Map<Long, Date> deathTimeMap = new HashMap<>();
+        if (!infoIds.isEmpty()) {
+            for (ServiceDonationwitness witness : serviceDonationwitnessMapper.selectDeathTimeByInfoIds(infoIds)) {
+                if (witness.getInfoid() != null && !deathTimeMap.containsKey(witness.getInfoid())) {
+                    deathTimeMap.put(witness.getInfoid(), witness.getDeathtime());
+                }
+            }
         }
-        return serviceDonatebaseinfoMapper.selectServiceDonatebaseinfoList(serviceDonatebaseinfo);
+
+        for (ServiceDonatebaseinfo serviceDonatebaseinfo1 : serviceDonatebaseinfos) {
+            //鍏堢粰涓勾榫勯粯璁ゅ�硷紙鍥犱负age鏄暟瀛楃被鍨嬶紝涓嶈兘鏀炬í鏉狅紝鎵�浠ュ氨鎵�妯墰鏀惧埌鍗曚綅涓婏級
+            serviceDonatebaseinfo1.setAgeunit("-");
+            serviceDonatebaseinfo1.setAge(null);
+            serviceDonatebaseinfo1.setAge2(null);
+
+            //鑾峰彇姝讳骸鏃堕棿锛屽鏋滆幏鍙栬璇侀噷鏈夋浜℃椂闂达紝鍒欒繘琛岃绠椾粬鐨勫勾榫�
+            Date deathtime = deathTimeMap.get(serviceDonatebaseinfo1.getId());
+            if (ObjectUtils.isNotEmpty(deathtime) && serviceDonatebaseinfo1.getBirthday() != null) {
+                Map<String, String> map = CalculateDateUtils.calculateAge(serviceDonatebaseinfo1.getBirthday().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(), deathtime.toInstant().atZone(ZoneId.systemDefault()).toLocalDate());
+                if (Objects.isNull(map)) {
+                    log.error("ServiceDonationwitness鍑虹敓鏃ユ湡锛歿},ServiceDonationwitness姝讳骸鏃ユ湡锛歿}", serviceDonatebaseinfo1.getBirthday(), deathtime);
+                    continue;
+                }
+                serviceDonatebaseinfo1.setAge(org.apache.commons.lang3.ObjectUtils.isNotEmpty(map.get("age")) ? Long.valueOf(map.get("age")) : null);
+                serviceDonatebaseinfo1.setAgeunit(map.get("ageUnit"));
+                serviceDonatebaseinfo1.setAge2(org.apache.commons.lang3.ObjectUtils.isNotEmpty(map.get("age2")) ? Long.valueOf(map.get("age2")) : null);
+                serviceDonatebaseinfo1.setAgeunit2(map.get("ageUnit2"));
+            }
+
+        }
+
+        return serviceDonatebaseinfos;
+    }
+
+    @Override
+    public List<ServiceDonatebaseinfo> getPatName(ServiceDonatebaseinfo serviceDonatebaseinfo) {
+
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+        // 瓒呯骇绠$悊鍛樹笉鍙楁暟鎹寖鍥撮檺鍒讹紝鍙煡鐪嬪叏閮ㄦ暟鎹�
+        if (!isSuperAdmin(user)) {
+            List<SysRole> l = user.getRoles();
+            int b = 0;
+
+            for (SysRole r : l) {
+                if (r.getRoleId().longValue() == 3) {
+                    b = 1;
+                }
+                if (r.getRoleId().longValue() == 13) {
+                    b = 2;
+                }
+            }
+            if (b == 1) {
+                log.info("user.getUserName()鐨勫�间负 ---- 锛歿}", user.getUserName());
+                serviceDonatebaseinfo.setReporterno(user.getUserName());
+            }
+            if (b == 2) {
+                serviceDonatebaseinfo.setDeptid(user.getDeptId());
+            }
+        }
+        List<ServiceDonatebaseinfo> serviceDonatebaseinfos = serviceDonatebaseinfoMapper.getPatName(serviceDonatebaseinfo);
+
+        return serviceDonatebaseinfos;
     }
 
     @Override
     public List<ServiceDonatebaseinfo> listForSearch(ServiceDonatebaseinfo serviceDonatebaseinfo) {
         SysUser user = SecurityUtils.getLoginUser().getUser();
-        List<SysRole> l = user.getRoles();
-        Boolean b = false;
-        for (SysRole r : l) {
-            if (r.getRoleId().longValue() == 3) {
-                b = true;
+        // 瓒呯骇绠$悊鍛樹笉鍙楁暟鎹寖鍥撮檺鍒讹紝鍙煡鐪嬪叏閮ㄦ暟鎹�
+        if (!isSuperAdmin(user)) {
+            List<SysRole> l = user.getRoles();
+            Boolean b = false;
+            for (SysRole r : l) {
+                if (r.getRoleId().longValue() == 3) {
+                    b = true;
+                }
             }
-        }
-        if (b) {
-            serviceDonatebaseinfo.setCreateBy(user.getUserName());
+            if (b) {
+                serviceDonatebaseinfo.setCreateBy(user.getUserName());
+            }
         }
 
         return serviceDonatebaseinfoMapper.listForSearch(serviceDonatebaseinfo);
@@ -270,6 +358,7 @@
 
     @Override
     public Map<String, Object> getWorkFlow(Long id) {
+        log.info("getWorkFlow鐨勫叆鍙侷D涓猴細{}", id);
         //鐢ㄤ簬杩斿洖
         Map<String, Object> map = new ConcurrentHashMap<>();
 
@@ -285,49 +374,54 @@
         donatebaseinfo.put("updatetime", serviceDonatebaseinfo.getUpdateTime() != null ? DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", serviceDonatebaseinfo.getUpdateTime()) : "");
         donatebaseinfo.put("createperson", null);
         if (StringUtils.isNotBlank(serviceDonatebaseinfo.getCreateBy())) {
-            ServiceFundflowrule serviceFundflowrule = new ServiceFundflowrule();
-            serviceFundflowrule.setCheckuserno(serviceDonatebaseinfo.getCreateBy());
-            List<ServiceFundflowrule> serviceFundflowrules = serviceFundflowruleService.queryList(serviceFundflowrule);
-            donatebaseinfo.put("createperson", serviceFundflowrules.get(0).getCheckusername());
+            SysUser sysUser = sysUserMapper.selectUserByUserName(serviceDonatebaseinfo.getCreateBy());
+            if (!ObjectUtils.isEmpty(sysUser)) {
+                donatebaseinfo.put("createperson", sysUser.getNickName());
+            }
         }
         donatebaseinfo.put("updateperson", null);
         if (StringUtils.isNotBlank(serviceDonatebaseinfo.getUpdateBy())) {
-            ServiceFundflowrule serviceFundflowrule = new ServiceFundflowrule();
-            serviceFundflowrule.setCheckuserno(serviceDonatebaseinfo.getUpdateBy());
-            List<ServiceFundflowrule> serviceFundflowrules = serviceFundflowruleService.queryList(serviceFundflowrule);
-            donatebaseinfo.put("updateperson", serviceFundflowrules.get(0).getCheckusername());
+            SysUser sysUser = sysUserMapper.selectUserByUserName(serviceDonatebaseinfo.getUpdateBy());
+            if (!ObjectUtils.isEmpty(sysUser)) {
+                donatebaseinfo.put("updateperson", sysUser.getNickName());
+            }
         }
         donatebaseinfo.put("process", "");
         //灏佽serviceDonateorgan娼滃湪鎹愮尞杩斿洖鏁版嵁
+        log.info("妫�鏌ュ皝瑁呮綔鍦ㄦ崘鐚繑鍥炴暟鎹甦onatebaseinfo鐨勫�间负锛歿}", donatebaseinfo);
         map.put("donatebaseinfo", donatebaseinfo);
 
         //灏佽鍖诲璇勪及
+        log.info("妫�鏌erviceDonatebaseinfo.getWorkflow()鐨勫�间负锛歿}", serviceDonatebaseinfo.getWorkflow());
         Map<String, String> medicalevaluation = new HashMap<>();
         if (serviceDonatebaseinfo.getWorkflow() >= 1) {
             ServiceMedicalevaluation serviceMedicalevaluation = new ServiceMedicalevaluation();
             serviceMedicalevaluation.setInfoid(id);
             List<ServiceMedicalevaluation> serviceMedicalevaluations = serviceMedicalevaluationService.queryList(serviceMedicalevaluation);
+            log.info("妫�鏌erviceMedicalevaluationService鐨勫�间负锛歿}", serviceMedicalevaluations.size());
             if (!CollectionUtils.isEmpty(serviceMedicalevaluations)) {
                 medicalevaluation.put("createtime", DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", serviceMedicalevaluations.get(0).getCreateTime()));
                 medicalevaluation.put("updatetime", serviceMedicalevaluations.get(0).getUpdateTime() != null ? DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", serviceMedicalevaluations.get(0).getUpdateTime()) : null);
                 medicalevaluation.put("createperson", null);
                 if (StringUtils.isNotBlank(serviceMedicalevaluations.get(0).getCreateBy())) {
-                    ServiceFundflowrule serviceFundflowrule = new ServiceFundflowrule();
-                    serviceFundflowrule.setCheckuserno(serviceMedicalevaluations.get(0).getCreateBy());
-                    List<ServiceFundflowrule> serviceFundflowrules = serviceFundflowruleService.queryList(serviceFundflowrule);
-                    medicalevaluation.put("createperson", serviceFundflowrules.get(0).getCheckusername());
+                    SysUser sysUser = sysUserMapper.selectUserByUserName(serviceMedicalevaluations.get(0).getCreateBy());
+                    if (!ObjectUtils.isEmpty(sysUser)) {
+                        medicalevaluation.put("createperson", sysUser.getNickName());
+                    }
                 }
                 medicalevaluation.put("updateperson", null);
                 if (StringUtils.isNotBlank(serviceMedicalevaluations.get(0).getUpdateBy())) {
-                    ServiceFundflowrule serviceFundflowrule = new ServiceFundflowrule();
-                    serviceFundflowrule.setCheckuserno(serviceMedicalevaluations.get(0).getUpdateBy());
-                    List<ServiceFundflowrule> serviceFundflowrules = serviceFundflowruleService.queryList(serviceFundflowrule);
-                    medicalevaluation.put("updateperson", serviceFundflowrules.get(0).getCheckusername());
+                    SysUser sysUser = sysUserMapper.selectUserByUserName(serviceMedicalevaluations.get(0).getUpdateBy());
+                    if (!ObjectUtils.isEmpty(sysUser)) {
+                        medicalevaluation.put("updateperson", sysUser.getNickName());
+                    }
+
                 }
                 medicalevaluation.put("process", "");
             }
         }
         //灏佽鍖诲璇勪及杩斿洖鏁版嵁
+        log.info("妫�鏌ュ皝瑁呭尰瀛﹁瘎浼拌繑鍥炴暟鎹甿edicalevaluation鐨勫�间负锛歿}", medicalevaluation);
         map.put("medicalevaluation", medicalevaluation);
 
         //灏佽鎹愮尞纭
@@ -336,27 +430,30 @@
             ServiceRelativesconfirmation serviceRelativesconfirmation = new ServiceRelativesconfirmation();
             serviceRelativesconfirmation.setInfoid(id);
             List<ServiceRelativesconfirmation> serviceRelativesconfirmations = serviceRelativesconfirmationService.queryList(serviceRelativesconfirmation);
+            log.info("妫�鏌erviceRelativesconfirmations鐨勫�间负锛歿}", serviceRelativesconfirmations.size());
             if (!CollectionUtils.isEmpty(serviceRelativesconfirmations)) {
                 relativesconfirmation.put("createtime", DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", serviceRelativesconfirmations.get(0).getCreateTime()));
                 relativesconfirmation.put("updatetime", serviceRelativesconfirmations.get(0).getUpdateTime() != null ? DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", serviceRelativesconfirmations.get(0).getUpdateTime()) : "");
                 relativesconfirmation.put("createperson", null);
                 if (StringUtils.isNotBlank(serviceRelativesconfirmations.get(0).getCreateBy())) {
-                    ServiceFundflowrule serviceFundflowrule = new ServiceFundflowrule();
-                    serviceFundflowrule.setCheckuserno(serviceRelativesconfirmations.get(0).getCreateBy());
-                    List<ServiceFundflowrule> serviceFundflowrules = serviceFundflowruleService.queryList(serviceFundflowrule);
-                    relativesconfirmation.put("createperson", serviceFundflowrules.get(0).getCheckusername());
+                    SysUser sysUser = sysUserMapper.selectUserByUserName(serviceRelativesconfirmations.get(0).getCreateBy());
+                    if (!ObjectUtils.isEmpty(sysUser)) {
+                        relativesconfirmation.put("createperson", sysUser.getNickName());
+                    }
+
                 }
                 relativesconfirmation.put("updateperson", null);
                 if (StringUtils.isNotBlank(serviceRelativesconfirmations.get(0).getUpdateBy())) {
-                    ServiceFundflowrule serviceFundflowrule = new ServiceFundflowrule();
-                    serviceFundflowrule.setCheckuserno(serviceRelativesconfirmations.get(0).getUpdateBy());
-                    List<ServiceFundflowrule> serviceFundflowrules = serviceFundflowruleService.queryList(serviceFundflowrule);
-                    relativesconfirmation.put("updateperson", serviceFundflowrules.get(0).getCheckusername());
+                    SysUser sysUser = sysUserMapper.selectUserByUserName(serviceRelativesconfirmations.get(0).getUpdateBy());
+                    if (!ObjectUtils.isEmpty(sysUser)) {
+                        relativesconfirmation.put("updateperson", sysUser.getNickName());
+                    }
                 }
                 relativesconfirmation.put("process", "");
             }
         }
         //灏佽鎹愮尞纭杩斿洖鏁版嵁
+        log.info("妫�鏌ュ皝瑁呮崘鐚‘璁よ繑鍥炴暟鎹畆elativesconfirmation鐨勫�间负锛歿}", relativesconfirmation);
         map.put("relativesconfirmation", relativesconfirmation);
 
 
@@ -366,27 +463,31 @@
             ServiceEthicalreviewopinions serviceDonateflowchart = new ServiceEthicalreviewopinions();
             serviceDonateflowchart.setInfoid(id);
             List<ServiceEthicalreviewopinions> serviceEthicalreviewopinionsList = iServiceEthicalreviewopinionsService.queryList(serviceDonateflowchart);
+            log.info("妫�鏌erviceEthicalreviewopinionsList鐨勫�间负锛歿}", serviceEthicalreviewopinionsList.size());
             if (!CollectionUtils.isEmpty(serviceEthicalreviewopinionsList)) {
                 donateflowcharts.put("createtime", DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", serviceEthicalreviewopinionsList.get(0).getCreateTime()));
                 donateflowcharts.put("updatetime", serviceEthicalreviewopinionsList.get(0).getUpdateTime() != null ? DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", serviceEthicalreviewopinionsList.get(0).getUpdateTime()) : "");
                 donateflowcharts.put("createperson", null);
                 if (StringUtils.isNotBlank(serviceEthicalreviewopinionsList.get(0).getCreateBy())) {
-                    ServiceFundflowrule serviceFundflowrule = new ServiceFundflowrule();
-                    serviceFundflowrule.setCheckuserno(serviceEthicalreviewopinionsList.get(0).getCreateBy());
-                    List<ServiceFundflowrule> serviceFundflowrules = serviceFundflowruleService.queryList(serviceFundflowrule);
-                    donateflowcharts.put("createperson", serviceFundflowrules.get(0).getCheckusername());
+                    SysUser sysUser = sysUserMapper.selectUserByUserName(serviceEthicalreviewopinionsList.get(0).getCreateBy());
+                    if (!ObjectUtils.isEmpty(sysUser)) {
+                        donateflowcharts.put("createperson", sysUser.getNickName());
+                    }
+
                 }
                 donateflowcharts.put("updateperson", null);
                 if (StringUtils.isNotBlank(serviceEthicalreviewopinionsList.get(0).getUpdateBy())) {
-                    ServiceFundflowrule serviceFundflowrule = new ServiceFundflowrule();
-                    serviceFundflowrule.setCheckuserno(serviceEthicalreviewopinionsList.get(0).getUpdateBy());
-                    List<ServiceFundflowrule> serviceFundflowrules = serviceFundflowruleService.queryList(serviceFundflowrule);
-                    donateflowcharts.put("updateperson", serviceFundflowrules.get(0).getCheckusername());
+                    SysUser sysUser = sysUserMapper.selectUserByUserName(serviceEthicalreviewopinionsList.get(0).getUpdateBy());
+                    if (!ObjectUtils.isEmpty(sysUser)) {
+                        donateflowcharts.put("updateperson", sysUser.getNickName());
+                    }
+
                 }
                 donateflowcharts.put("process", "");
             }
         }
         //灏佽浼︾悊瀹℃煡杩斿洖鏁版嵁
+        log.info("妫�鏌ュ皝瑁呬鸡鐞嗗鏌ヨ繑鍥炴暟鎹甦onateflowcharts鐨勫�间负锛歿}", donateflowcharts);
         map.put("donateflowcharts", donateflowcharts);
 
         //灏佽鍣ㄥ畼鍒嗛厤
@@ -395,27 +496,30 @@
             ServiceDonateorgan serviceDonateorgan = new ServiceDonateorgan();
             serviceDonateorgan.setInfoid(id);
             List<ServiceDonateorgan> serviceDonateorgans = serviceDonateorganService.queryList(serviceDonateorgan);
+            log.info("妫�鏌erviceDonateorgans鐨勫�间负锛歿}", serviceDonateorgans.size());
             if (!CollectionUtils.isEmpty(serviceDonateorgans)) {
                 donateorgansService.put("createtime", DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", serviceDonateorgans.get(0).getCreateTime()));
                 donateorgansService.put("updatetime", serviceDonateorgans.get(0).getUpdateTime() != null ? DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", serviceDonateorgans.get(0).getUpdateTime()) : "");
 
                 donateorgansService.put("createperson", null);
                 if (StringUtils.isNotBlank(serviceDonateorgans.get(0).getCreateBy())) {
-                    ServiceFundflowrule serviceFundflowrule = new ServiceFundflowrule();
-                    serviceFundflowrule.setCheckuserno(serviceDonateorgans.get(0).getCreateBy());
-                    List<ServiceFundflowrule> serviceFundflowrules = serviceFundflowruleService.queryList(serviceFundflowrule);
-                    donateorgansService.put("createperson", serviceFundflowrules.get(0).getCheckusername());
+                    SysUser sysUser = sysUserMapper.selectUserByUserName(serviceDonateorgans.get(0).getCreateBy());
+                    if (!ObjectUtils.isEmpty(sysUser)) {
+                        donateorgansService.put("createperson", sysUser.getNickName());
+                    }
+
                 }
                 donateorgansService.put("updateperson", null);
                 if (StringUtils.isNotBlank(serviceDonateorgans.get(0).getUpdateBy())) {
-                    ServiceFundflowrule serviceFundflowrule = new ServiceFundflowrule();
-                    serviceFundflowrule.setCheckuserno(serviceDonateorgans.get(0).getUpdateBy());
-                    List<ServiceFundflowrule> serviceFundflowrules = serviceFundflowruleService.queryList(serviceFundflowrule);
-                    donateorgansService.put("updateperson", serviceFundflowrules.get(0).getCheckusername());
+                    SysUser sysUser = sysUserMapper.selectUserByUserName(serviceDonateorgans.get(0).getUpdateBy());
+                    if (!ObjectUtils.isEmpty(sysUser)) {
+                        donateorgansService.put("updateperson", sysUser.getNickName());
+                    }
                 }
                 donateorgansService.put("process", "");
             }
         }
+        log.info("妫�鏌ュ皝瑁呭櫒瀹樺垎閰嶈繑鍥炴暟鎹甦onateorgansService鐨勫�间负锛歿}", donateorgansService);
         //灏佽鍣ㄥ畼鍒嗛厤杩斿洖鏁版嵁
         map.put("donateorgansService", donateorgansService);
 
@@ -423,28 +527,30 @@
         Map<String, String> donationwitness = new HashMap<>();
         if (serviceDonatebaseinfo.getWorkflow() >= 5) {
             ServiceDonationwitness serviceDonationwitness = serviceDonationwitnessService.getByInfoId(id);
+            log.info("妫�鏌erviceDonationwitness鐨勫�间负锛歿}", serviceDonationwitness);
             if (!ObjectUtils.isEmpty(serviceDonationwitness)) {
                 donationwitness.put("createtime", DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", serviceDonationwitness.getCreateTime()));
                 donationwitness.put("updatetime", serviceDonationwitness.getUpdateTime() != null ? DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", serviceDonationwitness.getUpdateTime()) : "");
 
                 donationwitness.put("createperson", null);
                 if (StringUtils.isNotBlank(serviceDonationwitness.getCreateBy())) {
-                    ServiceFundflowrule serviceFundflowrule = new ServiceFundflowrule();
-                    serviceFundflowrule.setCheckuserno(serviceDonationwitness.getCreateBy());
-                    List<ServiceFundflowrule> serviceFundflowrules = serviceFundflowruleService.queryList(serviceFundflowrule);
-                    donationwitness.put("createperson", serviceFundflowrules.get(0).getCheckusername());
+                    SysUser sysUser = sysUserMapper.selectUserByUserName(serviceDonationwitness.getCreateBy());
+                    if (!ObjectUtils.isEmpty(sysUser)) {
+                        donationwitness.put("createperson", sysUser.getNickName());
+                    }
                 }
                 donationwitness.put("updateperson", null);
                 if (StringUtils.isNotBlank(serviceDonationwitness.getUpdateBy())) {
-                    ServiceFundflowrule serviceFundflowrule = new ServiceFundflowrule();
-                    serviceFundflowrule.setCheckuserno(serviceDonationwitness.getUpdateBy());
-                    List<ServiceFundflowrule> serviceFundflowrules = serviceFundflowruleService.queryList(serviceFundflowrule);
-                    donationwitness.put("updateperson", serviceFundflowrules.get(0).getCheckusername());
+                    SysUser sysUser = sysUserMapper.selectUserByUserName(serviceDonationwitness.getUpdateBy());
+                    if (!ObjectUtils.isEmpty(sysUser)) {
+                        donationwitness.put("updateperson", sysUser.getNickName());
+                    }
                 }
 
                 donationwitness.put("process", "");
             }
         }
+        log.info("妫�鏌ュ皝瑁呰幏鍙栬璇佽繑鍥炴暟鎹甦onationwitness鐨勫�间负锛歿}", donationwitness);
         //灏佽鑾峰彇瑙佽瘉杩斿洖鏁版嵁
         map.put("donationwitness", donationwitness);
 
@@ -454,32 +560,63 @@
             ServiceDonatecompletioninfo serviceDonatecompletioninfo = new ServiceDonatecompletioninfo();
             serviceDonatecompletioninfo.setInfoid(id);
             List<ServiceDonatecompletioninfo> serviceDonatecompletioninfos = serviceDonatecompletioninfoService.queryList(serviceDonatecompletioninfo);
+            log.info("妫�鏌erviceDonatecompletioninfos鐨勫�间负锛歿}", serviceDonatecompletioninfos);
             if (!CollectionUtils.isEmpty(serviceDonatecompletioninfos)) {
                 donatecompletioninfo.put("createtime", DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", serviceDonatecompletioninfos.get(0).getCreateTime()));
                 donatecompletioninfo.put("updatetime", serviceDonatecompletioninfos.get(0).getUpdateTime() != null ? DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", serviceDonatecompletioninfos.get(0).getUpdateTime()) : "");
 
                 donatecompletioninfo.put("createperson", null);
                 if (StringUtils.isNotBlank(serviceDonatecompletioninfos.get(0).getCreateBy())) {
-                    ServiceFundflowrule serviceFundflowrule = new ServiceFundflowrule();
-                    serviceFundflowrule.setCheckuserno(serviceDonatecompletioninfos.get(0).getCreateBy());
-                    List<ServiceFundflowrule> serviceFundflowrules = serviceFundflowruleService.queryList(serviceFundflowrule);
-                    donatecompletioninfo.put("createperson", serviceFundflowrules.get(0).getCheckusername());
+                    SysUser sysUser = sysUserMapper.selectUserByUserName(serviceDonatecompletioninfos.get(0).getCreateBy());
+                    if (!ObjectUtils.isEmpty(sysUser)) {
+                        donatecompletioninfo.put("createperson", sysUser.getNickName());
+                    }
                 }
                 donatecompletioninfo.put("updateperson", null);
                 if (StringUtils.isNotBlank(serviceDonatecompletioninfos.get(0).getUpdateBy())) {
-                    ServiceFundflowrule serviceFundflowrule = new ServiceFundflowrule();
-                    serviceFundflowrule.setCheckuserno(serviceDonatecompletioninfos.get(0).getUpdateBy());
-                    List<ServiceFundflowrule> serviceFundflowrules = serviceFundflowruleService.queryList(serviceFundflowrule);
-                    donatecompletioninfo.put("updateperson", serviceFundflowrules.get(0).getCheckusername());
+                    SysUser sysUser = sysUserMapper.selectUserByUserName(serviceDonatecompletioninfos.get(0).getUpdateBy());
+                    if (!ObjectUtils.isEmpty(sysUser)) {
+                        donatecompletioninfo.put("updateperson", sysUser.getNickName());
+                    }
                 }
 
                 donatecompletioninfo.put("process", "");
             }
         }
+        log.info("妫�鏌ュ皝瑁呭畬鎴愮櫥璁拌繑鍥炴暟鎹甦onatecompletioninfo鐨勫�间负锛歿}", donatecompletioninfo);
         //灏佽瀹屾垚鐧昏杩斿洖鏁版嵁
         map.put("donatecompletioninfo", donatecompletioninfo);
 
         //灏嗘暟鎹皝闂紝骞惰繑鍥�
         return map;
     }
+
+    /**
+     * 鏄惁瓒呯骇绠$悊鍛樸��
+     *
+     * <p>鍒ゅ畾涓鸿秴绾х鐞嗗憳鐨勬儏褰細
+     * <ul>
+     *   <li>鍐呯疆绠$悊鍛樿处鍙凤紙userId = 1锛夛紱</li>
+     *   <li>璐﹀彿琚巿浜�"瓒呯骇绠$悊鍛�"瑙掕壊锛坮oleId = 1锛夈��</li>
+     * </ul>
+     * 瓒呯骇绠$悊鍛樹笉鍙�"鍙湅鏈汉鎶ラ�侊紙瑙掕壊3 涓撹亴浜哄憳锛�/ 鍙湅鏈儴闂紙瑙掕壊13 涓氬姟缁勯暱锛�"鐨勬暟鎹寖鍥撮檺鍒讹紝
+     * 鍙煡鐪嬪叏閮ㄦ暟鎹��
+     */
+    private boolean isSuperAdmin(SysUser user) {
+        if (user == null) {
+            return false;
+        }
+        if (SysUser.isAdmin(user.getUserId())) {
+            return true;
+        }
+        List<SysRole> roles = user.getRoles();
+        if (roles != null) {
+            for (SysRole role : roles) {
+                if (role.getRoleId() != null && role.getRoleId().longValue() == 1L) {
+                    return true;
+                }
+            }
+        }
+        return false;
+    }
 }

--
Gitblit v1.9.3