重要提交,可能会影响到其他模块及工作流。*****
This commit is contained in:
1 parent
bab7b53074
commit
e06d8fca2c
78 files changed
+3545
-3471
No files matched your search
@@ -135,6 +135,13 @@
|
||||
<version>${revision}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- 奖惩补贴管理模块 -->
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-jcbt</artifactId>
|
||||
<version>${revision}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- 社团管理模块 -->
|
||||
<!-- <dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
<module>ruoyi-cw</module>
|
||||
<module>ruoyi-rs</module>
|
||||
<module>ruoyi-xljk</module>
|
||||
<module>ruoyi-jcbt</module>
|
||||
<!-- <module>ruoyi-stgl</module> -->
|
||||
</modules>
|
||||
|
||||
|
||||
+72
-27
@@ -36,6 +36,8 @@ import org.dromara.system.domain.bo.SysDeptBo;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
import org.dromara.common.core.utils.SpringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
|
||||
/**
|
||||
* 审批记录Service业务层处理
|
||||
@@ -54,6 +56,9 @@ public class CwApprovalRecordServiceImpl implements ICwApprovalRecordService {
|
||||
private final ISysUserService sysUserService;
|
||||
private final ISysDeptService sysDeptService;
|
||||
|
||||
@Autowired
|
||||
private JdbcTemplate jdbcTemplate;
|
||||
|
||||
/**
|
||||
* 根据主键查询审批记录
|
||||
*/
|
||||
@@ -1119,51 +1124,91 @@ public class CwApprovalRecordServiceImpl implements ICwApprovalRecordService {
|
||||
return checkApprovalPermission(applicationId, "dept_approve");
|
||||
}
|
||||
|
||||
/**
|
||||
/**
|
||||
* 获取可选审批人列表(院领导)
|
||||
* 修改为基于权限角色查找:查找具有cw:approval:leader权限的用户
|
||||
*/
|
||||
@Override
|
||||
public List<Map<String, Object>> getAvailableApprovers(Long applicationId) {
|
||||
log.info("开始查询院领导审批人列表,applicationId: {}", applicationId);
|
||||
log.info("开始查询院领导审批人列表(基于权限角色),applicationId: {}", applicationId);
|
||||
|
||||
List<Map<String, Object>> approvers = new ArrayList<>();
|
||||
|
||||
try {
|
||||
// 1. 查询部门名称包含"院领导"的部门
|
||||
SysDeptBo deptBo = new SysDeptBo();
|
||||
deptBo.setDeptName("院领导"); // 设置查询条件
|
||||
List<SysDeptVo> leaderDepts = sysDeptService.selectDeptList(deptBo);
|
||||
// 使用原生SQL查询具有cw:approval:leader权限的用户
|
||||
String sql = """
|
||||
SELECT DISTINCT
|
||||
u.user_id,
|
||||
u.user_name,
|
||||
u.nick_name,
|
||||
COALESCE(d.dept_name, '未分配部门') as dept_name,
|
||||
COALESCE(d.dept_id, 0) as dept_id
|
||||
FROM sys_user u
|
||||
LEFT JOIN sys_dept d ON u.dept_id = d.dept_id
|
||||
INNER JOIN sys_user_role ur ON u.user_id = ur.user_id
|
||||
INNER JOIN sys_role r ON ur.role_id = r.role_id
|
||||
INNER JOIN sys_role_menu rm ON r.role_id = rm.role_id
|
||||
INNER JOIN sys_menu m ON rm.menu_id = m.menu_id
|
||||
WHERE m.perms = 'cw:approval:leader'
|
||||
AND u.status = '0'
|
||||
AND u.del_flag = '0'
|
||||
AND r.status = '0'
|
||||
ORDER BY u.user_name
|
||||
""";
|
||||
|
||||
log.info("找到院领导部门数量: {}", leaderDepts.size());
|
||||
for (SysDeptVo dept : leaderDepts) {
|
||||
log.info("院领导部门: ID={}, 名称={}", dept.getDeptId(), dept.getDeptName());
|
||||
log.info("执行权限查询SQL查找具有cw:approval:leader权限的用户");
|
||||
|
||||
// 执行SQL查询
|
||||
List<Map<String, Object>> results = jdbcTemplate.queryForList(sql);
|
||||
|
||||
log.info("SQL查询结果:找到 {} 个具有院领导审批权限的用户", results.size());
|
||||
|
||||
// 转换查询结果为返回格式
|
||||
for (Map<String, Object> row : results) {
|
||||
Map<String, Object> approver = new HashMap<>();
|
||||
approver.put("userId", row.get("user_id"));
|
||||
approver.put("userName", row.get("user_name"));
|
||||
approver.put("nickName", row.get("nick_name"));
|
||||
approver.put("deptName", row.get("dept_name"));
|
||||
approver.put("deptId", row.get("dept_id"));
|
||||
approvers.add(approver);
|
||||
|
||||
log.info("添加院领导审批人: userId={}, userName={}, nickName={}, deptName={}",
|
||||
row.get("user_id"), row.get("user_name"), row.get("nick_name"), row.get("dept_name"));
|
||||
}
|
||||
|
||||
// 2. 查询院领导部门下的所有用户
|
||||
for (SysDeptVo dept : leaderDepts) {
|
||||
List<SysUserVo> users = sysUserService.selectUserListByDept(dept.getDeptId());
|
||||
// 如果基于权限查询没有找到用户,使用原有的部门查询作为备选方案
|
||||
if (approvers.isEmpty()) {
|
||||
log.warn("基于权限查询未找到院领导,尝试使用部门查询作为备选方案");
|
||||
|
||||
log.info("部门[{}]下的用户数量: {}", dept.getDeptName(), users.size());
|
||||
SysDeptBo deptBo = new SysDeptBo();
|
||||
deptBo.setDeptName("院领导");
|
||||
List<SysDeptVo> leaderDepts = sysDeptService.selectDeptList(deptBo);
|
||||
|
||||
// 3. 将用户信息转换为Map格式
|
||||
for (SysUserVo user : users) {
|
||||
// 只返回状态正常的用户
|
||||
if ("0".equals(user.getStatus())) {
|
||||
Map<String, Object> approver = new HashMap<>();
|
||||
approver.put("userId", user.getUserId());
|
||||
approver.put("userName", user.getUserName());
|
||||
approver.put("nickName", user.getNickName());
|
||||
approver.put("deptName", dept.getDeptName());
|
||||
approver.put("deptId", dept.getDeptId());
|
||||
approvers.add(approver);
|
||||
log.info("备选方案:找到院领导部门数量: {}", leaderDepts.size());
|
||||
|
||||
log.info("添加院领导审批人: userId={}, userName={}, nickName={}",
|
||||
user.getUserId(), user.getUserName(), user.getNickName());
|
||||
for (SysDeptVo dept : leaderDepts) {
|
||||
List<SysUserVo> users = sysUserService.selectUserListByDept(dept.getDeptId());
|
||||
log.info("备选方案:部门[{}]下的用户数量: {}", dept.getDeptName(), users.size());
|
||||
|
||||
for (SysUserVo user : users) {
|
||||
if ("0".equals(user.getStatus())) {
|
||||
Map<String, Object> approver = new HashMap<>();
|
||||
approver.put("userId", user.getUserId());
|
||||
approver.put("userName", user.getUserName());
|
||||
approver.put("nickName", user.getNickName());
|
||||
approver.put("deptName", dept.getDeptName());
|
||||
approver.put("deptId", dept.getDeptId());
|
||||
approvers.add(approver);
|
||||
|
||||
log.info("备选方案:添加院领导审批人: userId={}, userName={}, nickName={}",
|
||||
user.getUserId(), user.getUserName(), user.getNickName());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
log.info("查询院领导审批人完成,共找到 {} 个院领导", approvers.size());
|
||||
log.info("查询院领导审批人完成,共找到 {} 个院领导(权限验证+部门备选)", approvers.size());
|
||||
|
||||
} catch (Exception e) {
|
||||
log.error("查询院领导审批人失败:{}", e.getMessage(), e);
|
||||
|
||||
+18
-2
@@ -86,13 +86,29 @@ public class CwProjectApplicationServiceImpl implements ICwProjectApplicationSer
|
||||
log.info("✅ [统计页面-项目清单] 查询完成");
|
||||
log.info("📊 [统计页面-项目清单] 查询结果: 总数={}, 当前页记录数={}", result.getTotal(), result.getRecords().size());
|
||||
|
||||
// 🔧 为每个项目补充绩效指标数据(修复统计页面详情缺少绩效指标的问题)
|
||||
if (!result.getRecords().isEmpty()) {
|
||||
log.info("🔄 [统计页面-项目清单] 开始补充绩效指标数据...");
|
||||
for (CwProjectApplicationVo record : result.getRecords()) {
|
||||
try {
|
||||
List<CwPerformanceIndicatorVo> performanceIndicators = performanceIndicatorService.queryByApplicationId(record.getId());
|
||||
record.setPerformanceIndicators(performanceIndicators);
|
||||
log.debug(" ✅ 项目ID: {} 绩效指标数量: {}", record.getId(), performanceIndicators.size());
|
||||
} catch (Exception e) {
|
||||
log.error(" ❌ 获取项目ID: {} 的绩效指标数据失败: {}", record.getId(), e.getMessage());
|
||||
// 设置空列表,避免前端报错
|
||||
record.setPerformanceIndicators(new ArrayList<>());
|
||||
}
|
||||
}
|
||||
log.info("✅ [统计页面-项目清单] 绩效指标数据补充完成");
|
||||
|
||||
log.info("📝 [统计页面-项目清单] 前3条数据示例:");
|
||||
for (int i = 0; i < Math.min(result.getRecords().size(), 3); i++) {
|
||||
CwProjectApplicationVo record = result.getRecords().get(i);
|
||||
log.info(" {}. ID: {}, 申报编号: {}, 项目名称: {}, 状态: {}, 申报人: {}, 部门: {}",
|
||||
int indicatorCount = record.getPerformanceIndicators() != null ? record.getPerformanceIndicators().size() : 0;
|
||||
log.info(" {}. ID: {}, 申报编号: {}, 项目名称: {}, 状态: {}, 申报人: {}, 部门: {}, 绩效指标数: {}",
|
||||
i + 1, record.getId(), record.getApplicationNo(), record.getProjectName(),
|
||||
record.getApprovalStatus(), record.getApplicantName(), record.getDepartmentName());
|
||||
record.getApprovalStatus(), record.getApplicantName(), record.getDepartmentName(), indicatorCount);
|
||||
}
|
||||
} else {
|
||||
log.warn("⚠️ [统计页面-项目清单] 查询结果为空!");
|
||||
|
||||
Reference in new issue
Block a user