| | |
| | | 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; |
| | |
| | | @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"); |
| | |
| | | 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"); |
| | | }*/ |
| | |
| | | |
| | | 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");*/ |
| | |
| | | |
| | | 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); |
| | | |
| | |
| | | } |
| | | } |
| | | |
| | | public List<DjJdgzTrackRecord> getListByImport(Long level1Id, Long level2Id, Long level2NodeId, String 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; |
| | | //解决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表达式]为true,则程序继续执行。 如果为false,则程序抛出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); |
| | | } |
| | | } |