package com.example.server.utils; import com.example.server.progressTrack.model.DjJdgzDismantTrack; import com.example.server.progressTrack.model.DjJdgzNetworkLevel3; import com.example.server.progressTrack.model.DjJdgzNetworkLevel3List; import com.example.server.progressTrack.model.DjJdgzTrackRecord; import com.example.server.progressTrack.service.DjJdgzDismantTrackService; import com.example.server.progressTrack.service.DjJdgzNetworkLevel3ListService; import com.example.server.progressTrack.service.DjJdgzNetworkLevel3Service; import com.example.server.progressTrack.service.DjJdgzTrackRecordService; import org.apache.commons.lang3.StringUtils; import org.apache.poi.ss.usermodel.DateUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.sql.Connection; import java.sql.DriverManager; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; import java.util.regex.Pattern; @Component public class NumToDate { @Autowired private DjJdgzNetworkLevel3ListService level3ListService; @Autowired private DjJdgzTrackRecordService recordService; @Autowired private DjJdgzDismantTrackService dismantTrackService; public void numDate() { Pattern numPattern = Pattern.compile("^\\d+$"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); List list = level3ListService.getAll(); List list1 = recordService.getAll(); List list2 = dismantTrackService.getAll(); for (DjJdgzNetworkLevel3List item : list) { String requiredCompletionTime = item.getRequiredCompletionTime(); String actualCompletion = item.getActualCompletion(); //判断是否为数字 boolean matches = false; boolean matches2 = false; if (StringUtils.isNotBlank(requiredCompletionTime)) { matches = numPattern.matcher(requiredCompletionTime).matches(); } if (StringUtils.isNotBlank(actualCompletion)) { matches2 = numPattern.matcher(actualCompletion).matches(); } if (matches) { //对数字进行转换日期yyyy-mm-dd Date date = excelToDateUsingPOI(Double.parseDouble(requiredCompletionTime)); String formatDate = sdf.format(date); item.setRequiredCompletionTime(formatDate); level3ListService.update(item); } if (matches2) { Date date2 = excelToDateUsingPOI(Double.parseDouble(actualCompletion)); String formatDate2 = sdf.format(date2); item.setActualCompletion(formatDate2); level3ListService.update(item); } } for (DjJdgzTrackRecord item : list1) { String estimatedCompletionTime = item.getEstimatedCompletionTime(); boolean matches = false; if (StringUtils.isNotBlank(estimatedCompletionTime)) { matches = numPattern.matcher(estimatedCompletionTime).matches(); } if (matches) { //对数字进行转换日期yyyy-mm-dd Date date = excelToDateUsingPOI(Double.parseDouble(estimatedCompletionTime)); String formatDate = sdf.format(date); item.setEstimatedCompletionTime(formatDate); recordService.update(item); } } for (DjJdgzDismantTrack item : list2) { String dismantTime = item.getDismantTime(); String exitTime = item.getExitTime(); String warehouseTime = item.getWarehouseTime(); String returnWeightTime = item.getReturnWeightTime(); //判断是否为数字 boolean matches = false; boolean matches2 = false; boolean matches3 = false; boolean matches4 = false; if (StringUtils.isNotBlank(dismantTime)) { matches = numPattern.matcher(dismantTime).matches(); } if (StringUtils.isNotBlank(exitTime)) { matches2 = numPattern.matcher(exitTime).matches(); } if (StringUtils.isNotBlank(warehouseTime)) { matches3 = numPattern.matcher(warehouseTime).matches(); } if (StringUtils.isNotBlank(returnWeightTime)) { matches4 = numPattern.matcher(returnWeightTime).matches(); } if (matches) { //对数字进行转换日期yyyy-mm-dd Date date = excelToDateUsingPOI(Double.parseDouble(dismantTime)); String formatDate = sdf.format(date); item.setDismantTime(formatDate); dismantTrackService.update(item); } if (matches2) { Date date2 = excelToDateUsingPOI(Double.parseDouble(exitTime)); String formatDate2 = sdf.format(date2); item.setExitTime(formatDate2); dismantTrackService.update(item); } if (matches3) { Date date3 = excelToDateUsingPOI(Double.parseDouble(warehouseTime)); String formatDate3 = sdf.format(date3); item.setWarehouseTime(formatDate3); dismantTrackService.update(item); } if (matches4) { Date date4 = excelToDateUsingPOI(Double.parseDouble(returnWeightTime)); String formatDate4 = sdf.format(date4); item.setReturnWeightTime(formatDate4); dismantTrackService.update(item); } } } public static Date excelToDateUsingPOI(double excelDate) { return DateUtil.getJavaDate(excelDate); } }