Browse Source

feat:导出表格加上审批用时

master
buaixuexideshitongxue 4 weeks ago
parent
commit
9b4f30c0db
  1. 9
      src/main/java/com/biutag/supervision/pojo/vo/ExportNegativeVo.java
  2. 3
      src/main/java/com/biutag/supervision/service/NegativeTaskService.java
  3. 42
      src/main/java/com/biutag/supervision/util/TimeUtil.java

9
src/main/java/com/biutag/supervision/pojo/vo/ExportNegativeVo.java

@ -132,4 +132,13 @@ public class ExportNegativeVo {
@ExcelProperty({"","办理超时情况"})
private String handleTimeout;
@ExcelProperty({"核办情况","分局审批时长"})
private String secondApprovalTime;
// 问题类型
@ExcelProperty({"核办情况","市局审批时长"})
private String firstApproveTime;
}

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

@ -24,6 +24,7 @@ import com.biutag.supervision.pojo.vo.ExportNegativeBlameLeaderVo;
import com.biutag.supervision.pojo.vo.ExportNegativeBlameVo;
import com.biutag.supervision.pojo.vo.ExportNegativeVo;
import com.biutag.supervision.pojo.vo.NegativeQueryVo;
import com.biutag.supervision.util.TimeUtil;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.scheduling.annotation.Async;
@ -204,6 +205,8 @@ public class NegativeTaskService extends ServiceImpl<NegativeTaskMapper, Negativ
blameVoList.add(blameVo);
}
vo.setFirstApproveTime(TimeUtil.getTimeoutStatus(item.getFirstApproveTime()));
vo.setSecondApprovalTime(TimeUtil.getTimeoutStatus(item.getSecondApprovalTime()));
return vo;
}).toList();
}

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

@ -140,4 +140,46 @@ public class TimeUtil {
return duration;
}
/**
* 将秒数格式化为时分秒字符串
* @param seconds 秒数
* @return 时分秒字符串2时30分15秒15分30秒45秒
*/
public static String formatDuration(long seconds) {
if (seconds <= 0) {
return "0";
}
// 秒
if (seconds < 60) {
return seconds + "秒";
}
// 分钟
if (seconds < 3600) {
return (seconds / 60) + "分" + (seconds % 60) + "秒";
}
// 小时
if (seconds < 86400) {
return (seconds / 3600) + "时" + ((seconds % 3600) / 60) + "分";
}
// 天
return (seconds / 86400) + "天" + ((seconds % 86400) / 3600) + "时";
}
/**
* 判断指定时长是否超时 1 天为边界
* @param usedSeconds 已用时长例如从任务开始到现在的总耗时
* @return 格式"未超时/剩余时分秒" "已超时/超出时分秒"
* 剩余/超出时长通过 {@link #formatDuration(long)} 格式化
*/
public static String getTimeoutStatus(long usedSeconds) {
long limit = SECONDS_OF_A_DAY; // 86400秒 = 1天
long diff = limit - usedSeconds; // diff > 0 表示剩余时间,diff < 0 表示超出时间
if (diff >= 0) {
return "未超时/" + formatDuration(diff);
} else {
return "已超时/" + formatDuration(-diff);
}
}
}

Loading…
Cancel
Save