From 8d43a661ec83371312c5b21f3e35788db4836eff Mon Sep 17 00:00:00 2001
From: jinlin <jinlin>
Date: 星期六, 22 三月 2025 17:56:17 +0800
Subject: [PATCH] 修改
---
src/main/java/com/example/server/progressTrack/service/DjJdgzTrackRecordService.java | 275 ++++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 250 insertions(+), 25 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 e011133..2d8cbc5 100644
--- a/src/main/java/com/example/server/progressTrack/service/DjJdgzTrackRecordService.java
+++ b/src/main/java/com/example/server/progressTrack/service/DjJdgzTrackRecordService.java
@@ -7,17 +7,26 @@
import com.example.server.progressTrack.Dto.StatistReportsDto;
import com.example.server.progressTrack.dao.DjJdgzTrackRecordDao;
import com.example.server.progressTrack.model.DjJdgzNetworkLevel1;
+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.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 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.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
-import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
@@ -41,12 +50,14 @@
@Autowired
private DjJdgzNetworkLevel3ListService djJdgzNetworkLevel3ListService;
@Autowired
+ private DjJdgzNetworkLevel3Service djJdgzNetworkLevel3Service;
+ @Autowired
private UserService sysUserService;
@Autowired
private SysTeamGroupClassService sysTeamGroupClassService;
- public List<DjJdgzTrackRecord> getList(Long level1NetworkId, Integer status) {
+ public List<DjJdgzTrackRecord> getList(Long level1NetworkId, Long deptId, Long teamId, Long cabinId, String type, Integer status, String name) {
Long userId = null;
/* Map adminRole = sysUserService.adminRole();
Object isTyRole = adminRole.get("isTyRole");
@@ -54,7 +65,7 @@
if (isTyRole.equals(true) || isYwzRole.equals(true)) {
userId = UserContext.getUser().getId();
}*/
- List<DjJdgzTrackRecord> list = baseDao.getList(level1NetworkId, status, userId);
+ List<DjJdgzTrackRecord> list = baseDao.getList(level1NetworkId,deptId,teamId,cabinId,type, status, name);
/*if (list != null && list.size() > 0) {
sysOssService.setListOsses(list, "ProjectProgressFileUpload");
}*/
@@ -205,7 +216,7 @@
public void exportExcel(String filePath, String teamgroupId, Long level1NetworkId,
Long level3NetworkId, Long level3NodeId, Integer status, Date beginDate,
- Date endDate, Integer istq) {
+ Date endDate, Integer istq, List<ExcelColumnDto> columnDto) {
List<ExprotExcelDto> dtos = new ArrayList<>();
/* Map<String, String> keywordMap = dailyPlanService.getReplacement();
String keywordT = keywordMap.get("ting");*/
@@ -225,26 +236,6 @@
ExprotExcelDto dto = new ExprotExcelDto();
dto.setSheetName("璺熻釜璁板綍鏄庣粏");
- List<ExcelColumnDto> columnDto = new ArrayList<>();
-
- columnDto.add(new ExcelColumnDto("涓�绾ц妭鐐�", "Level1NodeName", 20, HorizontalAlignment.LEFT));
- columnDto.add(new ExcelColumnDto("浜岀骇鑺傜偣", "Level2NodeName", 20, HorizontalAlignment.LEFT));
- columnDto.add(new ExcelColumnDto("椤圭洰鍚嶇О", "Level3NetworkName", 20, HorizontalAlignment.LEFT));
- columnDto.add(new ExcelColumnDto("褰撳墠鑺傜偣", "Level3NodeName", 20, HorizontalAlignment.LEFT));
- columnDto.add(new ExcelColumnDto("涓撲笟", "TeamGroupName", 20, HorizontalAlignment.CENTER));
- columnDto.add(new ExcelColumnDto("鎬绘壙淇崟浣嶅強璐熻矗浜�", "GeneralRepair", 25, HorizontalAlignment.LEFT));
- columnDto.add(new ExcelColumnDto("鍒嗘壙淇崟浣嶅強璐熻矗浜�", "Repair", 25, HorizontalAlignment.LEFT));
- columnDto.add(new ExcelColumnDto("璺熻釜鏂瑰紡", "trackMethodStr", 10, HorizontalAlignment.CENTER));
- columnDto.add(new ExcelColumnDto("鍔╀慨浜�", "TrackPerson", 25, HorizontalAlignment.LEFT));
- columnDto.add(new ExcelColumnDto("鍘傛柟", "TrackedPerson", 25, HorizontalAlignment.LEFT));
- columnDto.add(new ExcelColumnDto("璺熻釜鍦扮偣", "TrackLocation", 10, HorizontalAlignment.LEFT));
- columnDto.add(new ExcelColumnDto("鑺傜偣杩涘睍", "status", 10, HorizontalAlignment.CENTER));
- columnDto.add(new ExcelColumnDto("鑴辨湡椋庨櫓", "hasDelayRiskStr", 10, HorizontalAlignment.CENTER));
- columnDto.add(new ExcelColumnDto("棰勮瀹屾垚鏃堕棿", "EstimatedCompletionTime", 15, HorizontalAlignment.CENTER));
- columnDto.add(new ExcelColumnDto("瀛樺湪闂", "Problem", 20, HorizontalAlignment.LEFT));
- columnDto.add(new ExcelColumnDto("鍚庣画璁″垝", "FollowupPlan", 20, HorizontalAlignment.LEFT));
- columnDto.add(new ExcelColumnDto("澶囨敞", "Remark", 20, HorizontalAlignment.LEFT));
- columnDto.add(new ExcelColumnDto("濉啓鏃堕棿", "UpdateDate", 15, HorizontalAlignment.CENTER));
List<DjJdgzTrackRecord> list = baseDao.getdata(teamgroupId, level1NetworkId, level3NetworkId, level3NodeId, status, beginDate, endDate, istq);
@@ -304,6 +295,240 @@
}
public List<DjJdgzTrackRecord> getListByImport(Long level1Id, Long level2Id, Long level2NodeId, String selectedIds) {
- return baseDao.getListByImport(level1Id,level2Id,level2NodeId,selectedIds);
+ return baseDao.getListByImport(level1Id, level2Id, level2NodeId, selectedIds);
+ }
+
+ public String importDiagramFromExcel(String path) {
+ String result = "true";
+ Integer sum = 0; // 鎬诲叡鐨勬潯鏁�
+ Integer suc = 0; // 鎴愬姛鐨勬潯鏁�
+ Integer err = 0; // 澶辫触鐨勬潯鏁�
+ Map<String, Object> errMap = new HashMap<>();
+ MultipartFile mutFile = null;
+ try {
+ mutFile = FileUtils.convertFileToMultipartFile(path);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ String sheetName = null;
+ int row1 = 0;
+ try {
+ // 鑾峰彇瀵煎叆鏂囦欢鐨勫悗缂�鍚�
+ String fileName = mutFile.getOriginalFilename();
+ Workbook workbook = null;
+ //瑙e喅excel鐗堟湰闂
+ if (fileName != null && fileName.endsWith(".xls")) {
+ workbook = new HSSFWorkbook(mutFile.getInputStream());
+ } else if (fileName != null && fileName.endsWith(".xlsx")) {
+ workbook = new XSSFWorkbook(mutFile.getInputStream());
+ }
+ assert workbook != null; //鏂█濡傛灉[boolean琛ㄨ揪寮廬涓簍rue锛屽垯绋嬪簭缁х画鎵ц銆� 濡傛灉涓篺alse锛屽垯绋嬪簭鎶涘嚭AssertionError锛屽苟缁堟鎵ц銆�
+
+ Sheet sheet = workbook.getSheetAt(0);
+ int num = sheet.getLastRowNum(); // 涓�鍏辨湁澶氬皯琛�
+ sheetName = sheet.getSheetName(); //鑾峰彇褰撳墠sheet鍚嶇О
+ sum = sum + num;
+
+ Map<String, Integer> trackMethodMap = new HashMap<>();
+ trackMethodMap.put("绾夸笅", 0);
+ trackMethodMap.put("鐢佃瘽", 1);
+
+ Map<String, Integer> statusMap = new HashMap<>();
+ statusMap.put("杩涜涓�", 0);
+ statusMap.put("宸插畬鎴�", 1);
+
+ Map<String, Integer> hasDelayRiskMap = new HashMap<>();
+ hasDelayRiskMap.put("鏈�", 1);
+ hasDelayRiskMap.put("鏃�", 0);
+
+
+ for (int j = 2; j <= num; j++) {
+ int sort = 0;
+ DjJdgzTrackRecord data = new DjJdgzTrackRecord();
+
+ boolean isErr = false;
+ row1 = j + 1;
+ String pattern = "yyyy-MM-dd";
+ Row row = sheet.getRow(j);
+
+ String idStr = ImportUtil.getCellValue(row, 0, pattern);
+ String dataDate = ImportUtil.getCellValue(row, 1, pattern);
+ String name = ImportUtil.getCellValue(row, 2, pattern);
+ String progressName = ImportUtil.getCellValue(row, 3, pattern);
+ String trackMethodStr = ImportUtil.getCellValue(row, 4, pattern);
+ 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);
+ String problemStr = ImportUtil.getCellValue(row, 9, pattern);
+ String followupPlanStr = ImportUtil.getCellValue(row, 10, pattern);
+ String remarkStr = ImportUtil.getCellValue(row, 11, pattern);
+ String trackPersonStr = ImportUtil.getCellValue(row, 12, pattern);
+ String trackPersonContact = ImportUtil.getCellValue(row, 13, pattern);
+ String trackPersonUnit = ImportUtil.getCellValue(row, 14, pattern);
+ String trackedPerson = ImportUtil.getCellValue(row, 15, pattern);
+ String trackedPersonContact = ImportUtil.getCellValue(row, 16, pattern);
+ String trackedPersonUnit = ImportUtil.getCellValue(row, 17, pattern);
+ String generalRepairUnit = ImportUtil.getCellValue(row, 18, pattern);
+ String generalRepairUnitDirector = ImportUtil.getCellValue(row, 19, pattern);
+ String generalRepairUnitContact = ImportUtil.getCellValue(row, 20, pattern);
+ String repairUnit = ImportUtil.getCellValue(row, 21, pattern);
+ String repairUnitDirector = ImportUtil.getCellValue(row, 22, pattern);
+ String repairUnitContact = ImportUtil.getCellValue(row, 23, pattern);
+
+ DjJdgzNetworkLevel3 level3 = djJdgzNetworkLevel3Service.get(Long.parseLong(idStr));
+ Long level1NetworkId = level3.getLevel1NetworkId();
+
+ Long id = UUIDUtil.generateId();
+
+ if (StringUtils.isEmpty(dataDate)) {
+ result = "绗�" + j + "琛�" + "褰曞叆鏃堕棿涓嶈兘涓虹┖";
+ isErr = true;
+ continue;
+ } else {
+ int weekNo = this.getWeekNo(level1NetworkId);
+ data.setWeekNo(weekNo);
+ data.setLevel1NetworkId(level1NetworkId);
+ data.setLevel3NetworkId(level3.getId());
+ }
+
+ if (StringUtils.isEmpty(name)) {
+ result = "绗�" + j + "琛�" + "璁惧鍚嶇О涓嶈兘涓虹┖";
+ isErr = true;
+ continue;
+ } else {
+ data.setId(id);
+ data.setLevel3NetworkName(name);
+ }
+
+ if (StringUtils.isEmpty(progressName)) {
+ result = "绗�" + j + "琛�" + "鑺傜偣鍚嶇О涓嶈兘涓虹┖";
+ isErr = true;
+ continue;
+ } else {
+ List<DjJdgzNetworkLevel3List> list = djJdgzNetworkLevel3ListService.getList(level3.getId());
+ for (DjJdgzNetworkLevel3List item : list) {
+ if(item.getProcessName().equals(progressName)){
+ data.setLevel3NodeId(item.getId());
+ data.setEstimatedCompletionTime(item.getRequiredCompletionTime());
+ break;
+ }
+ }
+ data.setProcessName(progressName);
+ }
+
+ if (StringUtils.isEmpty(trackMethodStr)) {
+ data.setTrackMethod(0);
+ } else {
+ data.setTrackMethod(trackMethodMap.get(trackMethodStr));
+ }
+
+ if (StringUtils.isNotBlank(trackLocationStr)) {
+ data.setTrackLocation(trackLocationStr);
+ }
+
+ if (StringUtils.isEmpty(currentStatusStr)) {
+ data.setCurrentStatus(0);
+ } else {
+ data.setCurrentStatus(statusMap.get(currentStatusStr));
+ }
+
+ if (StringUtils.isEmpty(hasDelayRiskStr)) {
+ data.setHasDelayRisk(0);
+ } else {
+ 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 + "涓�" + "棰勮瀹屾垚鏃堕棿鏃ユ湡鏍煎紡涓嶈鑼�";
+ isErr = true;
+ }
+ }
+
+ if (StringUtils.isNotBlank(problemStr)) {
+ data.setProblem(problemStr);
+ }
+
+ if (StringUtils.isNotBlank(followupPlanStr)) {
+ data.setFollowupPlan(followupPlanStr);
+ }
+
+ if (StringUtils.isNotBlank(remarkStr)) {
+ data.setRemark(remarkStr);
+ }
+
+ if (StringUtils.isNotBlank(trackPersonStr)) {
+ data.setTrackPerson(trackPersonStr);
+ }
+
+ if (StringUtils.isNotBlank(trackPersonContact)) {
+ data.setTrackPersonContact(trackPersonContact);
+ }
+
+ if (StringUtils.isNotBlank(trackPersonUnit)) {
+ data.setTrackPersonUnit(trackPersonUnit);
+ }
+
+ if (StringUtils.isNotBlank(trackedPerson)) {
+ data.setTrackPerson(trackPersonStr);
+ }
+
+ if (StringUtils.isNotBlank(trackedPersonContact)) {
+ data.setTrackPersonContact(trackPersonContact);
+ }
+
+ if (StringUtils.isNotBlank(trackedPersonUnit)) {
+ data.setTrackPersonUnit(trackPersonUnit);
+ }
+ if (StringUtils.isNotBlank(generalRepairUnit)) {
+ data.setGeneralRepairUnit(generalRepairUnit);
+ }
+
+ if (StringUtils.isNotBlank(generalRepairUnitContact)) {
+ data.setGeneralRepairUnitContact(generalRepairUnitContact);
+ }
+ if (StringUtils.isNotBlank(generalRepairUnitDirector)) {
+ data.setGeneralRepairUnitDirector(generalRepairUnitDirector);
+ }
+ if (StringUtils.isNotBlank(generalRepairUnit)) {
+ data.setRepairUnit(repairUnit);
+ }
+ if (StringUtils.isNotBlank(generalRepairUnit)) {
+ data.setRepairUnitContact(repairUnitContact);
+ }
+ if (StringUtils.isNotBlank(generalRepairUnit)) {
+ data.setRepairUnitDirector(repairUnitDirector);
+ }
+
+ if (!isErr) {
+ data.setIsUpdate(false);
+ this.save(data);
+ }
+ if (isErr) {
+ err++;
+ continue;
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ result = "瀵煎叆" + row1 + "琛屾暟鎹椂妫�娴嬪埌寮傚父锛屼腑鏂鍏ユ搷浣溿��";
+ }
+
+ suc = sum - err;
+
+ return result;
+ }
+
+ public void retract(Long id) {
+ baseDao.retract(id);
}
}
--
Gitblit v1.9.1