Browse Source

feat:加上年龄计算

master
buaixuexideshitongxue 3 weeks ago
parent
commit
f8a59ad539
  1. 11
      src/main/java/com/biutag/supervision/pojo/vo/ExportNegativeBlameLeaderVo.java
  2. 18
      src/main/java/com/biutag/supervision/pojo/vo/ExportNegativeBlameVo.java
  3. 28
      src/main/java/com/biutag/supervision/service/NegativeTaskService.java
  4. 24
      src/main/java/com/biutag/supervision/util/TimeUtil.java

11
src/main/java/com/biutag/supervision/pojo/vo/ExportNegativeBlameLeaderVo.java

@ -8,6 +8,8 @@ import lombok.Setter;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.ExcelIgnore;
/**
* @ClassName ExportNegativeBlameLeaderVo
* @Description 问责领导信息
@ -104,10 +106,19 @@ public class ExportNegativeBlameLeaderVo {
@ExcelProperty({"责任领导身份证"})
private String leadIdCode;
@ExcelProperty({"责任领导当前年龄"})
private Integer leadAgeNow;
@ExcelProperty({"责任领导录入时年龄"})
private Integer leadAgeAtCrtTime;
// 领导处理结果
@ExcelProperty("责任领导责任追责")
private String leadHandleResultName;
@ExcelProperty({"问题录入时间"})
private LocalDateTime crtTime;
// 问题类型
// @ExcelProperty({"问题类型"})

18
src/main/java/com/biutag/supervision/pojo/vo/ExportNegativeBlameVo.java

@ -7,6 +7,9 @@ import lombok.Setter;
import java.time.LocalDateTime;
// 仅用于导出前计算年龄(不导出为列)
import com.alibaba.excel.annotation.ExcelIgnore;
@Setter
@Getter
public class ExportNegativeBlameVo {
@ -78,6 +81,12 @@ public class ExportNegativeBlameVo {
@ExcelProperty({"身份证"})
private String blameIdCode;
@ExcelProperty({"当前年龄"})
private Integer blameAgeNow;
@ExcelProperty({"录入时年龄"})
private Integer blameAgeAtCrtTime;
@ExcelProperty({"人员属性"})
private String ivPersonType;
@ -96,6 +105,12 @@ public class ExportNegativeBlameVo {
@ExcelProperty({"责任领导身份证"})
private String leadIdCode;
@ExcelProperty({"责任领导当前年龄"})
private Integer leadAgeNow;
@ExcelProperty({"责任领导录入时年龄"})
private Integer leadAgeAtCrtTime;
// 领导处理结果
@ExcelProperty("责任领导责任追责")
private String leadHandleResultName;
@ -113,4 +128,7 @@ public class ExportNegativeBlameVo {
@ExcelProperty({"禁闭时长"})
private String confinementTime;
@ExcelProperty({"问题录入时间"})
private LocalDateTime crtTime;
}

28
src/main/java/com/biutag/supervision/service/NegativeTaskService.java

@ -221,6 +221,8 @@ public class NegativeTaskService extends ServiceImpl<NegativeTaskMapper, Negativ
if (confinement != null) {
blameVo.setConfinementTime(confinement.getConfinementTime());
}
fillBlameAndLeaderAges(blameVo);
blameVoList.add(blameVo);
}
vo.setFirstApproveTime(TimeUtil.getTimeoutStatus(NumberUtil.nullToZero(item.getFirstApproveTime())));
@ -238,6 +240,7 @@ public class NegativeTaskService extends ServiceImpl<NegativeTaskMapper, Negativ
.map(one -> {
ExportNegativeBlameLeaderVo exportNegativeBlameLeaderVo = new ExportNegativeBlameLeaderVo();
BeanUtils.copyProperties(one, exportNegativeBlameLeaderVo);
fillLeaderAges(exportNegativeBlameLeaderVo);
return exportNegativeBlameLeaderVo;
}
).toList();
@ -292,6 +295,31 @@ public class NegativeTaskService extends ServiceImpl<NegativeTaskMapper, Negativ
}
private void fillBlameAndLeaderAges(ExportNegativeBlameVo vo) {
if (vo == null) {
return;
}
LocalDate now = LocalDate.now();
LocalDate crtDate = vo.getCrtTime() == null ? null : vo.getCrtTime().toLocalDate();
vo.setBlameAgeNow(TimeUtil.calcAgeFromIdCard(vo.getBlameIdCode(), now));
vo.setBlameAgeAtCrtTime(TimeUtil.calcAgeFromIdCard(vo.getBlameIdCode(), crtDate));
vo.setLeadAgeNow(TimeUtil.calcAgeFromIdCard(vo.getLeadIdCode(), now));
vo.setLeadAgeAtCrtTime(TimeUtil.calcAgeFromIdCard(vo.getLeadIdCode(), crtDate));
}
private void fillLeaderAges(ExportNegativeBlameLeaderVo vo) {
if (vo == null) {
return;
}
LocalDate now = LocalDate.now();
LocalDate crtDate = vo.getCrtTime() == null ? null : vo.getCrtTime().toLocalDate();
vo.setLeadAgeNow(TimeUtil.calcAgeFromIdCard(vo.getLeadIdCode(), now));
vo.setLeadAgeAtCrtTime(TimeUtil.calcAgeFromIdCard(vo.getLeadIdCode(), crtDate));
}
private String getHandleTimeout(Long time) {
if (time == null || time <= 0) {
return "未超时";

24
src/main/java/com/biutag/supervision/util/TimeUtil.java

@ -7,14 +7,38 @@ import com.biutag.supervision.constants.enums.FlowNodeEnum;
import com.biutag.supervision.service.HolidayService;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.Period;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
import java.time.temporal.ChronoUnit;
import java.util.Date;
import java.util.Objects;
public class TimeUtil {
public static Integer calcAgeFromIdCard(String idCard, LocalDate onDate) {
if (StrUtil.isBlank(idCard) || onDate == null) {
return null;
}
if (idCard.length() != 18) {
return null;
}
String birthStr = idCard.substring(6, 14);
LocalDate birth;
try {
birth = LocalDate.parse(birthStr, DateTimeFormatter.BASIC_ISO_DATE);
} catch (DateTimeParseException ex) {
return null;
}
if (birth.isAfter(onDate)) {
return null;
}
return Period.between(birth, onDate).getYears();
}
// 一天86400秒
public static final Long SECONDS_OF_A_DAY = 86400L;

Loading…
Cancel
Save