From e301d5c4e6de0aca423c54481d100e6ca2886b01 Mon Sep 17 00:00:00 2001
From: jinlin <jinlin>
Date: 星期六, 08 十一月 2025 22:57:12 +0800
Subject: [PATCH] 清洗数据库日期错误,并且导入日期通用化处理
---
src/main/java/com/example/server/progressTrack/service/DjJdgzTrackRecordService.java | 207 ++++++++++++++++++++++++++-------------------------
1 files changed, 105 insertions(+), 102 deletions(-)
diff --git a/src/main/java/com/example/server/progressTrack/service/DjJdgzTrackRecordService.java b/src/main/java/com/example/server/progressTrack/service/DjJdgzTrackRecordService.java
index 391d936..e01c126 100644
--- a/src/main/java/com/example/server/progressTrack/service/DjJdgzTrackRecordService.java
+++ b/src/main/java/com/example/server/progressTrack/service/DjJdgzTrackRecordService.java
@@ -1,5 +1,6 @@
package com.example.server.progressTrack.service;
+import com.example.client.utils.TranslateToPlainStrUtils;
import com.example.server.ExportExcel.dto.ExcelColumnDto;
import com.example.client.service.BaseService;
import com.example.server.ExportExcel.dto.ExprotExcelDto;
@@ -13,16 +14,10 @@
import com.example.server.progressTrack.model.DjJdgzTrackRecord;
import com.example.server.teamGroup.service.SysTeamGroupClassService;
import com.example.server.user.service.UserService;
-import com.example.server.utils.FileUtils;
-import com.example.server.utils.ImportUtil;
-import com.example.server.utils.TreeFieldUtils;
-import com.example.server.utils.UUIDUtil;
+import com.example.server.utils.*;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-import org.apache.poi.ss.usermodel.HorizontalAlignment;
-import org.apache.poi.ss.usermodel.Row;
-import org.apache.poi.ss.usermodel.Sheet;
-import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -58,7 +53,7 @@
private SysTeamGroupClassService sysTeamGroupClassService;
- public List<DjJdgzTrackRecord> getList(Long level1NetworkId, Long deptId, Long teamId, Long cabinId, String type, Integer status,Integer isealCabin, String name) {
+ public List<DjJdgzTrackRecord> getList(Long level1NetworkId, Long deptId, Long teamId, Long cabinId, String type, Integer status, Integer isealCabin, String name) {
Long userId = null;
/* Map adminRole = sysUserService.adminRole();
Object isTyRole = adminRole.get("isTyRole");
@@ -66,7 +61,7 @@
if (isTyRole.equals(true) || isYwzRole.equals(true)) {
userId = UserContext.getUser().getId();
}*/
- List<DjJdgzTrackRecord> list = baseDao.getList(level1NetworkId, deptId, teamId, cabinId, type, status, isealCabin,name);
+ List<DjJdgzTrackRecord> list = baseDao.getList(level1NetworkId, deptId, teamId, cabinId, type, status, isealCabin, name);
/*if (list != null && list.size() > 0) {
sysOssService.setListOsses(list, "ProjectProgressFileUpload");
}*/
@@ -76,90 +71,94 @@
Integer trackNum = baseDao.getTrackNum(data.getLevel3NodeId());
data.setActualCompletion(data.getEstimatedCompletionTime());
data.setTrackNum(trackNum);
- int weekNo = this.getWeekNo(data.getLevel1NetworkId());
- if (data.getWeekNo() != null) {
- if (data.getWeekNo() != weekNo) {
- data.setWeekNo(weekNo);
- data.setIsUpdate(false);
- } else {
- data.setIsUpdate(true);
- }
- } else {
- data.setWeekNo(weekNo);
- data.setIsUpdate(false);
- }
}
}
return list;
}
- /**
- * 鍒犻櫎
- *
- * @param ids
- */
+ public List<DjJdgzTrackRecord> getAll() {
+ List<DjJdgzTrackRecord> list = baseDao.getAll();
+ return list;
+ }
+
+ /**
+ * 鍒犻櫎
+ *
+ * @param ids
+ */
public void delete(Long[] ids) {
super.deleteLogic(ids);
}
- public Long save(DjJdgzTrackRecord djJdgzTrackRecord,String type) {
+ public Long save(DjJdgzTrackRecord djJdgzTrackRecord, String type) {
Long id = null;
- int weekNo = this.getWeekNo(djJdgzTrackRecord.getLevel1NetworkId());
- LocalDate currentDate = LocalDate.now();
- // 瀹氫箟鏃ユ湡鏍煎紡
- DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
- // 灏嗗綋鍓嶆棩鏈熸牸寮忓寲涓哄瓧绗︿覆
- String formattedDate = currentDate.format(formatter);
- djJdgzTrackRecord.setUpdateDate(formattedDate);
- if (djJdgzTrackRecord.getCurrentStatus() == 1 && type.equals("save")) {
- //鏃堕棿姣旇緝
- djJdgzTrackRecord.setEstimatedCompletionTime(formattedDate);
- }
- if (djJdgzTrackRecord.getIsUpdate()) {
- this.update(djJdgzTrackRecord);
- id = djJdgzTrackRecord.getId();
- } else {
- id = UUIDUtil.generateId();
- djJdgzTrackRecord.setWeekNo(weekNo);
- djJdgzTrackRecord.setId(id);
- djJdgzTrackRecord.setCreateDate(formattedDate);
- this.insert(djJdgzTrackRecord);
- id = djJdgzTrackRecord.getId();
- }
+ int weekNo = this.getWeekNo(djJdgzTrackRecord.getLevel1NetworkId(),new Date());
- if (djJdgzTrackRecord.getCurrentStatus() == 1) {
- DjJdgzNetworkLevel3List nextNode = djJdgzNetworkLevel3ListService.getNextNode(djJdgzTrackRecord.getLevel3NodeId(), djJdgzTrackRecord.getLevel3NetworkId());
- Long oldId = baseDao.getIsExit(nextNode.getNetworkId(),nextNode.getProcessName());
- if (nextNode != null && oldId == null) {
- DjJdgzTrackRecord data = new DjJdgzTrackRecord();
- data.setLevel3NodeId(nextNode.getId());
- data.setProcessName(nextNode.getProcessName());
- data.setLevel3NetworkId(djJdgzTrackRecord.getLevel3NetworkId());
- data.setLevel3NetworkName(djJdgzTrackRecord.getLevel3NetworkName());
- data.setEstimatedCompletionTime(nextNode.getRequiredCompletionTime());
- data.setGeneralRepairUnit(djJdgzTrackRecord.getGeneralRepairUnit());
- data.setGeneralRepairUnitContact(djJdgzTrackRecord.getGeneralRepairUnitContact());
- data.setGeneralRepairUnitDirector(djJdgzTrackRecord.getGeneralRepairUnitDirector());
- data.setRepairUnit(djJdgzTrackRecord.getRepairUnit());
- data.setRepairUnitContact(djJdgzTrackRecord.getRepairUnitContact());
- data.setRepairUnitDirector(djJdgzTrackRecord.getRepairUnitDirector());
- data.setTrackMethod(1);
- data.setWeekNo(weekNo);
- data.setUpdateDate(formattedDate);
- data.setCreateDate(formattedDate);
- this.insert(data);
+ if (type.equals("import")) {
+ Long oldId = baseDao.getIsExit(djJdgzTrackRecord.getLevel3NetworkId(), djJdgzTrackRecord.getProcessName(), djJdgzTrackRecord.getWeekNo());
+ if (oldId != null) {
+ djJdgzTrackRecord.setId(oldId);
+ djJdgzTrackRecord.setIsUpdate(true);
+ } else {
+ djJdgzTrackRecord.setIsUpdate(false);
+ }
+ }else{
+ if (djJdgzTrackRecord.getWeekNo() != null && djJdgzTrackRecord.getWeekNo() == weekNo) {
+ djJdgzTrackRecord.setIsUpdate(true);
+ } else {
+ djJdgzTrackRecord.setWeekNo(weekNo);
+ djJdgzTrackRecord.setIsUpdate(false);
+ }
+ LocalDate currentDate = LocalDate.now();
+ // 瀹氫箟鏃ユ湡鏍煎紡
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+ // 灏嗗綋鍓嶆棩鏈熸牸寮忓寲涓哄瓧绗︿覆
+ String formattedDate = currentDate.format(formatter);
+
+ if (djJdgzTrackRecord.getCurrentStatus() == 1) {
+ djJdgzTrackRecord.setEstimatedCompletionTime(formattedDate);
}
}
- //鏀瑰彉涓夌骇缃戠粶鍥剧姸鎬�
+
+ if (djJdgzTrackRecord.getIsUpdate()) {
+ this.update(djJdgzTrackRecord);
+ } else {
+ djJdgzTrackRecord.setId(null);
+ if(type.equals("save")){
+ djJdgzTrackRecord.setWeekNo(weekNo);
+ }
+ this.insert(djJdgzTrackRecord);
+ }
+ id = djJdgzTrackRecord.getId();
+
this.setLevel3Status(djJdgzTrackRecord.getLevel3NodeId(), djJdgzTrackRecord.getCurrentStatus(), djJdgzTrackRecord.getEstimatedCompletionTime());
+
+ if (djJdgzTrackRecord.getCurrentStatus() == 1) {
+ DjJdgzNetworkLevel3List nextNode = baseDao.isExistTrackRecord(djJdgzNetworkLevel3ListService.get(djJdgzTrackRecord.getLevel3NodeId()).getSort(), djJdgzTrackRecord.getLevel3NetworkId());
+ if (nextNode != null && nextNode.getTrackRecordId() == null) {
+ djJdgzTrackRecord.setId(null);
+ djJdgzTrackRecord.setLevel3NodeId(nextNode.getId());
+ djJdgzTrackRecord.setProcessName(nextNode.getProcessName());
+ djJdgzTrackRecord.setEstimatedCompletionTime(nextNode.getRequiredCompletionTime());
+ djJdgzTrackRecord.setWeekNo(weekNo);
+ djJdgzTrackRecord.setCurrentStatus(0);
+
+ djJdgzTrackRecord.setUpdateDate(null);
+ djJdgzTrackRecord.setCreateDate(null);
+ djJdgzTrackRecord.setCreator(null);
+ djJdgzTrackRecord.setUpdater(null);
+ this.insert(djJdgzTrackRecord);
+ this.setLevel3Status(djJdgzTrackRecord.getLevel3NodeId(), djJdgzTrackRecord.getCurrentStatus(), djJdgzTrackRecord.getEstimatedCompletionTime());
+ }
+ }
return id;
+
}
- public int getWeekNo(Long level1NetworkId) {
+ public int getWeekNo(Long level1NetworkId,Date nowDate) {
DjJdgzNetworkLevel1 level1Network = djJdgzNetworkLevel1Service.get(level1NetworkId);
SimpleDateFormat sdFormat = new SimpleDateFormat("yyyy-MM-dd");
- String formattedDate = sdFormat.format(new Date());
- Date nowDate = null;
+ String formattedDate = sdFormat.format(nowDate);
Date startDate = null;
try {
nowDate = sdFormat.parse(formattedDate);
@@ -207,8 +206,8 @@
if (isTyRole.equals(true) || isYwzRole.equals(true)) {
userId = UserContext.getUser().getId();
}*/
- int weekNo = this.getWeekNo(level1NetworkId);
- List<DjJdgzTrackRecord> data = baseDao.prompt(level1NetworkId, weekNo, userId,deptId,teamId,name);
+ int weekNo = this.getWeekNo(level1NetworkId,new Date());
+ List<DjJdgzTrackRecord> data = baseDao.prompt(level1NetworkId, weekNo, userId, deptId, teamId, name);
for (DjJdgzTrackRecord record : data) {
int i = weekNo - record.getWeekNo();
record.setStatus(i + "鍛ㄦ湭瀹屾垚");
@@ -220,8 +219,6 @@
Long level3NetworkId, Long level3NodeId, Integer status, Date beginDate,
Date endDate, Integer istq, List<ExcelColumnDto> columnDto) {
List<ExprotExcelDto> dtos = new ArrayList<>();
- /* Map<String, String> keywordMap = dailyPlanService.getReplacement();
- String keywordT = keywordMap.get("ting");*/
Map<Integer, String> trackMethodMap = new HashMap<>();
trackMethodMap.put(0, "绾夸笅");
@@ -296,7 +293,8 @@
}
}
- public List<DjJdgzTrackRecord> getListByImport(Long level1Id, Long level2Id, Long level2NodeId, String selectedIds) {
+ public List<DjJdgzTrackRecord> getListByImport(Long level1Id, Long level2Id, Long level2NodeId, String
+ selectedIds) {
return baseDao.getListByImport(level1Id, level2Id, level2NodeId, selectedIds);
}
@@ -361,7 +359,8 @@
String trackLocationStr = ImportUtil.getCellValue(row, 5, pattern);
String currentStatusStr = ImportUtil.getCellValue(row, 6, pattern);
String hasDelayRiskStr = ImportUtil.getCellValue(row, 7, pattern);
- String estimatedCompletionTimeStr = ImportUtil.getCellValue(row, 8, pattern);
+ Cell estimatedCompletionTimeStr = row.getCell(8);
+ //String estimatedCompletionTimeStr = ImportUtil.getCellValue(row, 8, pattern);
String problemStr = ImportUtil.getCellValue(row, 9, pattern);
String followupPlanStr = ImportUtil.getCellValue(row, 10, pattern);
String remarkStr = ImportUtil.getCellValue(row, 11, pattern);
@@ -388,7 +387,8 @@
isErr = true;
continue;
} else {
- int weekNo = this.getWeekNo(level1NetworkId);
+ Date parsedDate = new SimpleDateFormat("yyyy-MM-dd").parse(dataDate);
+ int weekNo = this.getWeekNo(level1NetworkId, parsedDate);
data.setWeekNo(weekNo);
data.setLevel1NetworkId(level1NetworkId);
data.setLevel3NetworkId(level3.getId());
@@ -441,17 +441,20 @@
data.setHasDelayRisk(hasDelayRiskMap.get(hasDelayRiskStr));
}
- if (StringUtils.isNotBlank(estimatedCompletionTimeStr)) {
- if (estimatedCompletionTimeStr.matches("[0-9/]+")) {
- estimatedCompletionTimeStr = estimatedCompletionTimeStr.replace("/", "-");
- data.setEstimatedCompletionTime(estimatedCompletionTimeStr);
- } else if (estimatedCompletionTimeStr.matches("[0-9.]+")) {
- estimatedCompletionTimeStr = estimatedCompletionTimeStr.replace(".", "-");
- data.setEstimatedCompletionTime(estimatedCompletionTimeStr);
- } else if (estimatedCompletionTimeStr.matches("[0-9-]+")) {
- data.setEstimatedCompletionTime(estimatedCompletionTimeStr);
- } else {
- result = "绗�" + j + "琛�" + "绗�" + 1 + "涓�" + "棰勮瀹屾垚鏃堕棿鏃ユ湡鏍煎紡涓嶈鑼�";
+ if (estimatedCompletionTimeStr != null) {
+ try {
+ String date = ImportUtil.getDateStrFromCell(estimatedCompletionTimeStr);
+
+ if (date == null) {
+ result = "绗�" + j + "琛�" + "棰勮瀹屾垚鏃堕棿涓嶈兘涓虹┖";
+ ImportUtil.updateErrMap(errMap, "棰勮瀹屾垚鏃堕棿涓嶈兘涓虹┖", sheetName, row1);
+ isErr = true;
+ } else {
+ data.setEstimatedCompletionTime(date);
+ }
+ } catch (ExcelImportException e) {
+ result = "绗�" + j + "琛�" + "绗�" + 1 + "涓�" + "棰勮瀹屾垚鏃堕棿鏃ユ湡鏍煎紡涓嶆纭�";
+ ImportUtil.updateErrMap(errMap, "棰勮瀹屾垚鏃堕棿鏃ユ湡鏍煎紡涓嶆纭�", sheetName, row1);
isErr = true;
}
}
@@ -473,6 +476,7 @@
}
if (StringUtils.isNotBlank(trackPersonContact)) {
+ trackPersonContact = TranslateToPlainStrUtils.translateToPlainStr(trackPersonContact);
data.setTrackPersonContact(trackPersonContact);
}
@@ -485,6 +489,7 @@
}
if (StringUtils.isNotBlank(trackedPersonContact)) {
+ trackedPersonContact = TranslateToPlainStrUtils.translateToPlainStr(trackedPersonContact);
data.setTrackedPersonContact(trackedPersonContact);
}
@@ -496,6 +501,7 @@
}
if (StringUtils.isNotBlank(generalRepairUnitContact)) {
+ generalRepairUnitContact = TranslateToPlainStrUtils.translateToPlainStr(generalRepairUnitContact);
data.setGeneralRepairUnitContact(generalRepairUnitContact);
}
if (StringUtils.isNotBlank(generalRepairUnitDirector)) {
@@ -505,6 +511,7 @@
data.setRepairUnit(repairUnit);
}
if (StringUtils.isNotBlank(generalRepairUnit)) {
+ generalRepairUnit = TranslateToPlainStrUtils.translateToPlainStr(generalRepairUnit);
data.setRepairUnitContact(repairUnitContact);
}
if (StringUtils.isNotBlank(generalRepairUnit)) {
@@ -512,15 +519,7 @@
}
if (!isErr) {
- Long oldId = baseDao.getIsExit(data.getLevel3NetworkId(),data.getProcessName());
- if (oldId!=null) {
- data.setId(oldId);
- data.setIsUpdate(true);
- }else{
- data.setIsUpdate(false);
- }
-
- this.save(data,"import");
+ this.save(data, "import");
}
if (isErr) {
err++;
@@ -548,4 +547,8 @@
public List<DjJdgzTrackRecord> getName(Long level3NetworkId) {
return baseDao.getName(level3NetworkId);
}
+
+ public List<DjJdgzTrackRecord> getRecordById(Long id) {
+ return baseDao.getRecordById(id);
+ }
}
--
Gitblit v1.9.1