From d30e385951ce03335a5023f0775fd144da3c0b88 Mon Sep 17 00:00:00 2001 From: jinlin <jinlin> Date: 星期二, 18 三月 2025 11:18:31 +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