diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/dashboard/vo/PrisonerDashboardStatsRespVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/dashboard/vo/PrisonerDashboardStatsRespVO.java index 576d8b0832..19abc50c26 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/dashboard/vo/PrisonerDashboardStatsRespVO.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/dashboard/vo/PrisonerDashboardStatsRespVO.java @@ -72,6 +72,9 @@ public class PrisonerDashboardStatsRespVO { @Schema(description = "剩余刑期天数", example = "1000") private Integer remainingDays; + @Schema(description = "刑期总天数", example = "1276") + private Integer sentenceDays; + @Schema(description = "累计违规次数", example = "5") private Integer violationCount; diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/dashboard/impl/PrisonDashboardServiceImpl.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/dashboard/impl/PrisonDashboardServiceImpl.java index a0f43eb6b1..135f7befb3 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/dashboard/impl/PrisonDashboardServiceImpl.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/dashboard/impl/PrisonDashboardServiceImpl.java @@ -200,17 +200,28 @@ public class PrisonDashboardServiceImpl implements PrisonDashboardService { } // 入狱和出狱时间 - if (prisoner.getImprisonmentDate() != null) { + if (prisoner.getImprisonmentDate() != null && prisoner.getReleaseDate() != null) { vo.setImprisonmentDate(prisoner.getImprisonmentDate().toString()); - vo.setServedDays((int) ChronoUnit.DAYS.between(prisoner.getImprisonmentDate(), LocalDate.now())); - } - if (prisoner.getReleaseDate() != null) { vo.setReleaseDate(prisoner.getReleaseDate().toString()); - // 计算剩余刑期天数 + // 计算刑期总天数(从入监日期到释放日期) + long sentenceDays = ChronoUnit.DAYS.between(prisoner.getImprisonmentDate(), prisoner.getReleaseDate()); + vo.setSentenceDays((int) sentenceDays); + // 计算已服刑天数(从入监日期到当前日期) + vo.setServedDays((int) ChronoUnit.DAYS.between(prisoner.getImprisonmentDate(), LocalDate.now())); + // 计算剩余刑期天数(从当前日期到释放日期) long remainingDays = ChronoUnit.DAYS.between(LocalDate.now(), prisoner.getReleaseDate()); vo.setRemainingDays(remainingDays > 0 ? (int) remainingDays : 0); + } else if (prisoner.getImprisonmentDate() != null) { + vo.setImprisonmentDate(prisoner.getImprisonmentDate().toString()); + vo.setServedDays((int) ChronoUnit.DAYS.between(prisoner.getImprisonmentDate(), LocalDate.now())); + if (prisoner.getReleaseDate() != null) { + vo.setReleaseDate(prisoner.getReleaseDate().toString()); + long remainingDays = ChronoUnit.DAYS.between(LocalDate.now(), prisoner.getReleaseDate()); + vo.setRemainingDays(remainingDays > 0 ? (int) remainingDays : 0); + } } else { vo.setRemainingDays(null); + vo.setSentenceDays(null); } // 监区信息(查询实际监区名称)