fix: 修复罪犯工作台汇款记录显示问题

- 修复调用错误方法导致的汇款记录为空问题
- 修复金额解析异常(BigDecimal处理小数)
- 修改selectRecentRemittanceDetails替代selectRecentRemittances
- 优化selectRecentRiskAssessments方法注释
This commit is contained in:
tangweijie 2026-01-27 14:55:56 +08:00
parent 182b7a7b43
commit 984b95b6ed
2 changed files with 19 additions and 13 deletions

View File

@ -57,24 +57,30 @@ public interface PrisonDashboardMapper {
List<Map<String, Object>> selectRecentRemittanceDetails(@Param("prisonerId") Long prisonerId);
/**
* 查询最近6个月罪犯的奖惩记录
* 查询最近6个月罪犯的风险评估记录
*/
@Select("""
SELECT
id,
occur_date,
type,
category,
content
FROM prison_rewards_punishments
assessment_date,
assessment_type,
overall_score,
risk_level,
violence_risk,
escape_risk,
self_harm_risk,
mental_state,
recommendation,
assessor_name
FROM prison_risk
WHERE deleted = 0
AND status = 1
AND status = 3
AND prisoner_id = #{prisonerId}
AND occur_date >= DATE_SUB(CURDATE(), INTERVAL 6 MONTH)
ORDER BY occur_date DESC
AND assessment_date >= DATE_SUB(CURDATE(), INTERVAL 6 MONTH)
ORDER BY assessment_date DESC
LIMIT 10
""")
List<Map<String, Object>> selectRecentRewardsPunishments(@Param("prisonerId") Long prisonerId);
List<Map<String, Object>> selectRecentRiskAssessments(@Param("prisonerId") Long prisonerId);
/**
* 查询核心指标卡片数据

View File

@ -569,8 +569,8 @@ public class PrisonDashboardServiceImpl implements PrisonDashboardService {
vo.setInterviewRecords(interviewRecords);
// ==================== 构建汇款记录 ====================
// 查询最近6个月的汇款记录
List<Map<String, Object>> remittanceList = dashboardMapper.selectRecentRemittances(prisonerId);
// 查询最近6个月的汇款记录详情
List<Map<String, Object>> remittanceList = dashboardMapper.selectRecentRemittanceDetails(prisonerId);
List<PrisonerDashboardStatsRespVO.RemittanceRecord> remittanceRecords = remittanceList.stream()
.map(r -> {
Object dateObj = r.get("arrive_date");
@ -581,7 +581,7 @@ public class PrisonDashboardServiceImpl implements PrisonDashboardService {
.name(nameObj != null ? nameObj.toString() : "")
.nameColor("#67c23a")
.category("汇款")
.amount(amountObj != null ? Integer.parseInt(amountObj.toString()) : 0)
.amount(amountObj != null ? new java.math.BigDecimal(amountObj.toString()).intValue() : 0)
.build();
})
.collect(Collectors.toList());