|
|
|
|
@ -27,7 +27,10 @@ import org.springframework.web.multipart.MultipartFile; |
|
|
|
|
import javax.servlet.http.HttpServletRequest; |
|
|
|
|
import java.io.IOException; |
|
|
|
|
import java.math.BigDecimal; |
|
|
|
|
import java.time.Duration; |
|
|
|
|
import java.util.*; |
|
|
|
|
import java.util.regex.Matcher; |
|
|
|
|
import java.util.regex.Pattern; |
|
|
|
|
|
|
|
|
|
@Slf4j |
|
|
|
|
@RestController |
|
|
|
|
@ -129,6 +132,7 @@ public class HighDangerController { |
|
|
|
|
@RequestParam(defaultValue = "1") Integer pageNum, |
|
|
|
|
@RequestParam(defaultValue = "10") Integer pageSize, |
|
|
|
|
@RequestParam(defaultValue = "") String search, |
|
|
|
|
@RequestParam(defaultValue = "") String reportDept, |
|
|
|
|
HttpServletRequest request |
|
|
|
|
) { |
|
|
|
|
log.info("/getHigDangerDealt(查询首页各个状态的数据列表)接口被调用,调用ip: {}, 入参:{},{},{},{}", request.getRemoteAddr(), highDangerBaseVO, pageNum, pageSize, search); |
|
|
|
|
@ -146,7 +150,7 @@ public class HighDangerController { |
|
|
|
|
//Page<HighDangerBase> page = new Page<>(pageNum, pageSize);
|
|
|
|
|
PageHelper.startPage(pageNum, pageSize); |
|
|
|
|
// 将要查询的状态和部门id查询数据库,获得隐患排查表
|
|
|
|
|
List<HighDangerBase> statusCounts = highDangerMapper.getHigDangerDealt(highDangerBaseVO.getStatus(), cdepartmentid, search); |
|
|
|
|
List<HighDangerBase> statusCounts = highDangerMapper.getHigDangerDealt(highDangerBaseVO.getStatus(), cdepartmentid, search,reportDept); |
|
|
|
|
|
|
|
|
|
// 待办
|
|
|
|
|
/*if("20".equals(highDangerBaseVO.getStatus())){ |
|
|
|
|
@ -154,131 +158,218 @@ public class HighDangerController { |
|
|
|
|
statusCounts.addAll(statusCount); |
|
|
|
|
}*/ |
|
|
|
|
|
|
|
|
|
for (HighDangerBase base : statusCounts) { |
|
|
|
|
Date nowDate = new Date(); |
|
|
|
|
Date pcEndTime = base.getPcEndTime(); |
|
|
|
|
Date pcStartTime = base.getPcStartTime(); |
|
|
|
|
|
|
|
|
|
if (pcEndTime != null) { |
|
|
|
|
long diff = nowDate.getTime() - pcEndTime.getTime(); |
|
|
|
|
// 时间差,天数
|
|
|
|
|
long diffDays = diff / (24 * 60 * 60 * 1000); |
|
|
|
|
diffDays = Math.abs(diffDays); |
|
|
|
|
|
|
|
|
|
// 小时
|
|
|
|
|
long remainingHours = (diff % (24 * 60 * 60 * 1000)) / (60 * 60 * 1000); |
|
|
|
|
remainingHours = Math.abs(remainingHours); |
|
|
|
|
|
|
|
|
|
// 判断不足一小时
|
|
|
|
|
long diffHours = diff / (60 * 60 * 1000); |
|
|
|
|
diffHours = Math.abs(diffHours); |
|
|
|
|
|
|
|
|
|
int comparison = nowDate.compareTo(pcEndTime); |
|
|
|
|
if (comparison > 0) { // 超期逻辑
|
|
|
|
|
if (diffHours < 1) { |
|
|
|
|
base.setDeadlineStatus("超期不足一小时"); |
|
|
|
|
base.setDeadlineType("1"); |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
if(diffDays == 0){ |
|
|
|
|
base.setDeadlineStatus("超期" + remainingHours + "小时"); |
|
|
|
|
base.setDeadlineType("1"); |
|
|
|
|
continue; |
|
|
|
|
}else if(remainingHours == 0){ |
|
|
|
|
base.setDeadlineStatus("超期" + diffDays + "天"); |
|
|
|
|
base.setDeadlineType("1"); |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
base.setDeadline(diffDays); |
|
|
|
|
base.setDeadlineStatus("超期" + diffDays + "天" + remainingHours + "小时"); |
|
|
|
|
base.setDeadlineType("1"); |
|
|
|
|
} else if (comparison < 0 && diffDays <= 3) { // 临期逻辑
|
|
|
|
|
if (diffHours < 1) { |
|
|
|
|
base.setDeadlineStatus("临期不足一小时"); |
|
|
|
|
base.setDeadlineType("2"); |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
base.setDeadline(diffDays); |
|
|
|
|
if(diffDays == 0){ |
|
|
|
|
base.setDeadlineStatus("临期" + remainingHours + "小时"); |
|
|
|
|
base.setDeadlineType("2"); |
|
|
|
|
continue; |
|
|
|
|
}else if(remainingHours == 0){ |
|
|
|
|
base.setDeadlineStatus("临期" + diffDays + "天"); |
|
|
|
|
base.setDeadlineType("2"); |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
base.setDeadlineStatus("临期" + diffDays + "天" + remainingHours + "小时"); |
|
|
|
|
base.setDeadlineType("2"); |
|
|
|
|
} else { // 正常
|
|
|
|
|
base.setDeadline(diffDays); |
|
|
|
|
base.setDeadlineStatus("正常"); |
|
|
|
|
base.setDeadlineType("3"); |
|
|
|
|
for (HighDangerBase base : statusCounts) { |
|
|
|
|
if(base.getTimeStatus() == null || base.getTimeStatus().equals("9")){ |
|
|
|
|
base.setDeadlineStatus("正常"); |
|
|
|
|
base.setDeadlineType("3"); |
|
|
|
|
} |
|
|
|
|
// 超期
|
|
|
|
|
if(Objects.equals(base.getTimeStatus(), "1")){ |
|
|
|
|
|
|
|
|
|
double timeDiffSeconds = Double.parseDouble(base.getTimeDiffEnd()); |
|
|
|
|
// 计算天数
|
|
|
|
|
int days = (int) (timeDiffSeconds / (24 * 3600)); |
|
|
|
|
// 计算剩余的秒数
|
|
|
|
|
int remainingSeconds = (int) (timeDiffSeconds % (24 * 3600)); |
|
|
|
|
// 计算小时数
|
|
|
|
|
int hours = remainingSeconds / 3600; |
|
|
|
|
|
|
|
|
|
if(days == 0){ |
|
|
|
|
base.setDeadlineStatus("超期" + hours + "小时"); |
|
|
|
|
}else if(hours == 0){ |
|
|
|
|
base.setDeadlineStatus("超期" + days + "天"); |
|
|
|
|
}else if(days == 0 && hours == 0){ |
|
|
|
|
base.setDeadlineStatus("超期不足一小时"); |
|
|
|
|
}else{ |
|
|
|
|
base.setDeadlineStatus("超期" + days + "天" + hours + "小时"); |
|
|
|
|
} |
|
|
|
|
// 排查开始时间判断
|
|
|
|
|
} else if(pcStartTime != null){ |
|
|
|
|
// 无排查结束时间,根据开始时间判断
|
|
|
|
|
long diff = nowDate.getTime() - pcStartTime.getTime(); |
|
|
|
|
|
|
|
|
|
// 时间差,天数
|
|
|
|
|
long diffDays = diff / (24 * 60 * 60 * 1000); |
|
|
|
|
diffDays = Math.abs(diffDays); |
|
|
|
|
|
|
|
|
|
// 小时
|
|
|
|
|
long remainingHours = (diff % (24 * 60 * 60 * 1000)) / (60 * 60 * 1000); |
|
|
|
|
remainingHours = Math.abs(remainingHours); |
|
|
|
|
|
|
|
|
|
// 判断不足一小时
|
|
|
|
|
long diffHours = diff / (60 * 60 * 1000); |
|
|
|
|
diffHours = Math.abs(diffHours); |
|
|
|
|
|
|
|
|
|
int comparison = nowDate.compareTo(pcStartTime); |
|
|
|
|
if (comparison > 0) { // 超期
|
|
|
|
|
if (diffHours < 1) { |
|
|
|
|
base.setDeadlineStatus("超期不足一小时"); |
|
|
|
|
base.setDeadlineType("1"); |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
if(diffDays == 0){ |
|
|
|
|
base.setDeadlineStatus("超期" + remainingHours + "小时"); |
|
|
|
|
base.setDeadlineType("1"); |
|
|
|
|
continue; |
|
|
|
|
}else if(remainingHours == 0){ |
|
|
|
|
base.setDeadlineStatus("超期" + diffDays + "天"); |
|
|
|
|
base.setDeadlineType("1"); |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
base.setDeadline(diffDays); |
|
|
|
|
base.setDeadlineStatus("超期" + diffDays + "天" + remainingHours + "小时"); |
|
|
|
|
base.setDeadlineType("1"); |
|
|
|
|
} else if (comparison < 0 && diffDays <= termTime) { // 临期
|
|
|
|
|
if (diffHours < 1) { |
|
|
|
|
base.setDeadlineStatus("临期不足一小时"); |
|
|
|
|
base.setDeadlineType("2"); |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
base.setDeadline(diffDays); |
|
|
|
|
if (diffDays == 0) { |
|
|
|
|
base.setDeadlineStatus("临期" + remainingHours + "小时"); |
|
|
|
|
base.setDeadlineType("2"); |
|
|
|
|
continue; |
|
|
|
|
} else if (remainingHours == 0) { |
|
|
|
|
base.setDeadlineStatus("临期" + diffDays + "天"); |
|
|
|
|
base.setDeadlineType("2"); |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
base.setDeadlineStatus("临期" + diffDays + "天" + remainingHours + "小时"); |
|
|
|
|
base.setDeadlineType("2"); |
|
|
|
|
base.setDeadlineType("1"); |
|
|
|
|
// System.out.println("时间差为 " + days + " 天 " + hours + " 小时");
|
|
|
|
|
|
|
|
|
|
// String[] split = base.getTimeDiffEnd().split(" ");
|
|
|
|
|
// if(split.length > 1){
|
|
|
|
|
// base.setDeadlineStatus("正常");
|
|
|
|
|
// base.setDeadlineType("3");
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// // 使用正则表达式匹配天数和小时数
|
|
|
|
|
// Pattern pattern = Pattern.compile("(\\d+) days (\\d+):(\\d+):(\\d+\\.\\d+)");
|
|
|
|
|
// Matcher matcher = pattern.matcher(base.getTimeDiffEnd());
|
|
|
|
|
//
|
|
|
|
|
// if (matcher.find()) {
|
|
|
|
|
// int days = Integer.parseInt(matcher.group(1));
|
|
|
|
|
// int hours = Integer.parseInt(matcher.group(2));
|
|
|
|
|
// int minutes = Integer.parseInt(matcher.group(3));
|
|
|
|
|
// int seconds = Integer.parseInt(matcher.group(4));
|
|
|
|
|
// base.setDeadlineStatus("超期" + days + " 天 " + hours + " 小时");
|
|
|
|
|
// base.setDeadlineType("1");
|
|
|
|
|
// System.out.println("时间差为: " + days + " 天 " + hours + " 小时 " + minutes + " 分钟 " + seconds + " 秒");
|
|
|
|
|
// } else {
|
|
|
|
|
// System.out.println("无法匹配时间差格式");
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// Duration timeDiffEnd = Duration.parse(base.getTimeDiffEnd());
|
|
|
|
|
// // 获取总的秒数
|
|
|
|
|
// long totalSeconds = timeDiffEnd.getSeconds();
|
|
|
|
|
//
|
|
|
|
|
// // 计算天数
|
|
|
|
|
// long days = totalSeconds / (24 * 3600);
|
|
|
|
|
// // 计算剩余小时数
|
|
|
|
|
// long hours = (totalSeconds % (24 * 3600)) / 3600;
|
|
|
|
|
//
|
|
|
|
|
// base.setDeadlineStatus("超期" + days + " 天 " + hours + " 小时");
|
|
|
|
|
//
|
|
|
|
|
//// System.out.println("时间差为: " + days + " 天 " + hours + " 小时");
|
|
|
|
|
// base.setDeadlineType("1");
|
|
|
|
|
// continue;
|
|
|
|
|
} |
|
|
|
|
if(Objects.equals(base.getTimeStatus(), "2")){ |
|
|
|
|
double timeDiffSeconds = Math.abs(Double.parseDouble(base.getTimeDiffStart())); |
|
|
|
|
// 计算天数
|
|
|
|
|
int days = (int) (timeDiffSeconds / (24 * 3600)); |
|
|
|
|
// 计算剩余的秒数
|
|
|
|
|
int remainingSeconds = (int) (timeDiffSeconds % (24 * 3600)); |
|
|
|
|
// 计算小时数
|
|
|
|
|
int hours = remainingSeconds / 3600; |
|
|
|
|
|
|
|
|
|
if(days == 0){ |
|
|
|
|
base.setDeadlineStatus("临期" + hours + "小时"); |
|
|
|
|
}else if(hours == 0){ |
|
|
|
|
base.setDeadlineStatus("临期" + days + "天"); |
|
|
|
|
}else if(days == 0 && hours == 0){ |
|
|
|
|
base.setDeadlineStatus("临期不足一小时"); |
|
|
|
|
}else{ |
|
|
|
|
base.setDeadlineStatus("正常"); |
|
|
|
|
base.setDeadlineType("3"); |
|
|
|
|
base.setDeadlineStatus("临期" + days + "天" + hours + "小时"); |
|
|
|
|
} |
|
|
|
|
// base.setDeadlineStatus("无排查结束时间");
|
|
|
|
|
// base.setDeadlineType("3");
|
|
|
|
|
}else{ |
|
|
|
|
base.setDeadlineStatus("无排查结束和开始时间"); |
|
|
|
|
base.setDeadlineType("3"); |
|
|
|
|
base.setDeadlineType("2"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// Date pcEndTime = base.getPcEndTime();
|
|
|
|
|
// Date pcStartTime = base.getPcStartTime();
|
|
|
|
|
//
|
|
|
|
|
// if (pcEndTime != null) {
|
|
|
|
|
// long diff = nowDate.getTime() - pcEndTime.getTime();
|
|
|
|
|
// // 时间差,天数
|
|
|
|
|
// long diffDays = diff / (24 * 60 * 60 * 1000);
|
|
|
|
|
// diffDays = Math.abs(diffDays);
|
|
|
|
|
//
|
|
|
|
|
// // 小时
|
|
|
|
|
// long remainingHours = (diff % (24 * 60 * 60 * 1000)) / (60 * 60 * 1000);
|
|
|
|
|
// remainingHours = Math.abs(remainingHours);
|
|
|
|
|
//
|
|
|
|
|
// // 判断不足一小时
|
|
|
|
|
// long diffHours = diff / (60 * 60 * 1000);
|
|
|
|
|
// diffHours = Math.abs(diffHours);
|
|
|
|
|
//
|
|
|
|
|
// int comparison = nowDate.compareTo(pcEndTime);
|
|
|
|
|
// if (comparison > 0) { // 超期逻辑
|
|
|
|
|
// if (diffHours < 1) {
|
|
|
|
|
// base.setDeadlineStatus("超期不足一小时");
|
|
|
|
|
// base.setDeadlineType("1");
|
|
|
|
|
// continue;
|
|
|
|
|
// }
|
|
|
|
|
// if(diffDays == 0){
|
|
|
|
|
// base.setDeadlineStatus("超期" + remainingHours + "小时");
|
|
|
|
|
// base.setDeadlineType("1");
|
|
|
|
|
// continue;
|
|
|
|
|
// }else if(remainingHours == 0){
|
|
|
|
|
// base.setDeadlineStatus("超期" + diffDays + "天");
|
|
|
|
|
// base.setDeadlineType("1");
|
|
|
|
|
// continue;
|
|
|
|
|
// }
|
|
|
|
|
// base.setDeadline(diffDays);
|
|
|
|
|
// base.setDeadlineStatus("超期" + diffDays + "天" + remainingHours + "小时");
|
|
|
|
|
// base.setDeadlineType("1");
|
|
|
|
|
// } else if (comparison < 0 && diffDays <= 3) { // 临期逻辑
|
|
|
|
|
// if (diffHours < 1) {
|
|
|
|
|
// base.setDeadlineStatus("临期不足一小时");
|
|
|
|
|
// base.setDeadlineType("2");
|
|
|
|
|
// continue;
|
|
|
|
|
// }
|
|
|
|
|
// base.setDeadline(diffDays);
|
|
|
|
|
// if(diffDays == 0){
|
|
|
|
|
// base.setDeadlineStatus("临期" + remainingHours + "小时");
|
|
|
|
|
// base.setDeadlineType("2");
|
|
|
|
|
// continue;
|
|
|
|
|
// }else if(remainingHours == 0){
|
|
|
|
|
// base.setDeadlineStatus("临期" + diffDays + "天");
|
|
|
|
|
// base.setDeadlineType("2");
|
|
|
|
|
// continue;
|
|
|
|
|
// }
|
|
|
|
|
// base.setDeadlineStatus("临期" + diffDays + "天" + remainingHours + "小时");
|
|
|
|
|
// base.setDeadlineType("2");
|
|
|
|
|
// } else { // 正常
|
|
|
|
|
// base.setDeadline(diffDays);
|
|
|
|
|
// base.setDeadlineStatus("正常");
|
|
|
|
|
// base.setDeadlineType("3");
|
|
|
|
|
// }
|
|
|
|
|
// // 排查开始时间判断
|
|
|
|
|
// } else if(pcStartTime != null){
|
|
|
|
|
// // 无排查结束时间,根据开始时间判断
|
|
|
|
|
// long diff = nowDate.getTime() - pcStartTime.getTime();
|
|
|
|
|
//
|
|
|
|
|
// // 时间差,天数
|
|
|
|
|
// long diffDays = diff / (24 * 60 * 60 * 1000);
|
|
|
|
|
// diffDays = Math.abs(diffDays);
|
|
|
|
|
//
|
|
|
|
|
// // 小时
|
|
|
|
|
// long remainingHours = (diff % (24 * 60 * 60 * 1000)) / (60 * 60 * 1000);
|
|
|
|
|
// remainingHours = Math.abs(remainingHours);
|
|
|
|
|
//
|
|
|
|
|
// // 判断不足一小时
|
|
|
|
|
// long diffHours = diff / (60 * 60 * 1000);
|
|
|
|
|
// diffHours = Math.abs(diffHours);
|
|
|
|
|
//
|
|
|
|
|
// int comparison = nowDate.compareTo(pcStartTime);
|
|
|
|
|
// if (comparison > 0) { // 超期
|
|
|
|
|
// if (diffHours < 1) {
|
|
|
|
|
// base.setDeadlineStatus("超期不足一小时");
|
|
|
|
|
// base.setDeadlineType("1");
|
|
|
|
|
// continue;
|
|
|
|
|
// }
|
|
|
|
|
// if(diffDays == 0){
|
|
|
|
|
// base.setDeadlineStatus("超期" + remainingHours + "小时");
|
|
|
|
|
// base.setDeadlineType("1");
|
|
|
|
|
// continue;
|
|
|
|
|
// }else if(remainingHours == 0){
|
|
|
|
|
// base.setDeadlineStatus("超期" + diffDays + "天");
|
|
|
|
|
// base.setDeadlineType("1");
|
|
|
|
|
// continue;
|
|
|
|
|
// }
|
|
|
|
|
// base.setDeadline(diffDays);
|
|
|
|
|
// base.setDeadlineStatus("超期" + diffDays + "天" + remainingHours + "小时");
|
|
|
|
|
// base.setDeadlineType("1");
|
|
|
|
|
// } else if (comparison < 0 && diffDays <= termTime) { // 临期
|
|
|
|
|
// if (diffHours < 1) {
|
|
|
|
|
// base.setDeadlineStatus("临期不足一小时");
|
|
|
|
|
// base.setDeadlineType("2");
|
|
|
|
|
// continue;
|
|
|
|
|
// }
|
|
|
|
|
// base.setDeadline(diffDays);
|
|
|
|
|
// if (diffDays == 0) {
|
|
|
|
|
// base.setDeadlineStatus("临期" + remainingHours + "小时");
|
|
|
|
|
// base.setDeadlineType("2");
|
|
|
|
|
// continue;
|
|
|
|
|
// } else if (remainingHours == 0) {
|
|
|
|
|
// base.setDeadlineStatus("临期" + diffDays + "天");
|
|
|
|
|
// base.setDeadlineType("2");
|
|
|
|
|
// continue;
|
|
|
|
|
// }
|
|
|
|
|
// base.setDeadlineStatus("临期" + diffDays + "天" + remainingHours + "小时");
|
|
|
|
|
// base.setDeadlineType("2");
|
|
|
|
|
// }else{
|
|
|
|
|
// base.setDeadlineStatus("正常");
|
|
|
|
|
// base.setDeadlineType("3");
|
|
|
|
|
// }
|
|
|
|
|
//// base.setDeadlineStatus("无排查结束时间");
|
|
|
|
|
//// base.setDeadlineType("3");
|
|
|
|
|
// }else{
|
|
|
|
|
// base.setDeadlineStatus("无排查结束和开始时间");
|
|
|
|
|
// base.setDeadlineType("3");
|
|
|
|
|
// }
|
|
|
|
|
} |
|
|
|
|
PageInfo<HighDangerBase> pageInfo = new PageInfo<>(statusCounts); |
|
|
|
|
|
|
|
|
|
|