| | |
| | | |
| | | import com.example.client.dto.JComboBoxItem; |
| | | import com.example.client.service.BaseService; |
| | | import com.example.client.utils.TranslateToPlainStrUtils; |
| | | import com.example.server.ExportExcel.dto.ExcelColumnDto; |
| | | import com.example.server.ExportExcel.dto.ExprotExcelDto; |
| | | import com.example.server.ExportExcel.method.ExcelExport; |
| | | import com.example.server.cabin.service.CabinService; |
| | | import com.example.server.progressTrack.Dto.Level3ExportCloum; |
| | | import com.example.server.progressTrack.Dto.NetworkNodeStatusDto; |
| | | import com.example.server.progressTrack.Dto.StatistProductDto; |
| | | import com.example.server.progressTrack.Dto.TableNodeDto; |
| | | import com.example.server.progressTrack.dao.DjJdgzNetworkLevel3Dao; |
| | | 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.utils.ExcelImportException; |
| | | import com.example.server.utils.FileUtils; |
| | | import com.example.server.utils.ImportUtil; |
| | | 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.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.beans.factory.annotation.Value; |
| | |
| | | |
| | | public List<StatistProductDto> getStatist(Long level1Id,String type) { |
| | | return baseDao.getStatist(level1Id,type); |
| | | } |
| | | |
| | | public void exportExcel(String path, Long level1NetworkId, Long deptId, Long teamGroupId, String status) { |
| | | List<ExprotExcelDto> dtos = new ArrayList<>(); |
| | | ExprotExcelDto dto = new ExprotExcelDto(); |
| | | dto.setSheetName("设备节点状态记录"); |
| | | |
| | | List<Level3ExportCloum> list = baseDao.getdata(level1NetworkId, deptId, teamGroupId, status); |
| | | Date today = new Date(); |
| | | for (Level3ExportCloum data :list){ |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); |
| | | Date requiredCompletionDate = null; |
| | | Date actualCompletionDate = null; |
| | | try { |
| | | if (StringUtils.isNotBlank(data.getRequiredCompletionTime())) { |
| | | requiredCompletionDate = sdf.parse(data.getRequiredCompletionTime()); |
| | | } |
| | | if (StringUtils.isNotBlank(data.getActualCompletion())) { |
| | | actualCompletionDate = sdf.parse(data.getActualCompletion()); |
| | | } |
| | | |
| | | } catch (ParseException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | if (data.getCurrentStatus() == null || data.getCurrentStatus() == 0) { |
| | | if (today.after(requiredCompletionDate)) { |
| | | int days = (int) ((today.getTime() - requiredCompletionDate.getTime()) / (1000 * 60 * 60 * 24)); |
| | | data.setStatus("已逾期" + days + "天"); |
| | | } else if ((requiredCompletionDate.getTime() - today.getTime()) / (1000 * 60 * 60 * 24) < 7) { |
| | | int days = (int) ((requiredCompletionDate.getTime() - today.getTime()) / (1000 * 60 * 60 * 24)); |
| | | data.setStatus("还有" + days + "天临期"); |
| | | } else { |
| | | data.setStatus("进行中"); |
| | | } |
| | | } else if (data.getCurrentStatus() == 1) { |
| | | // 已完成 |
| | | if (data.getActualCompletion() != null && actualCompletionDate.after(requiredCompletionDate)) { |
| | | int days = (int) ((actualCompletionDate.getTime() - requiredCompletionDate.getTime()) / (1000 * 60 * 60 * 24)); |
| | | data.setStatus("超期" + days + "天完成"); |
| | | } else { |
| | | data.setStatus("正常完成"); |
| | | } |
| | | } |
| | | |
| | | data.setDeptName(sysTeamGroupClassService.get(data.getDeptId()).getName()); |
| | | data.setTeamName(sysTeamGroupClassService.get(data.getTeamgroupId()).getName()); |
| | | } |
| | | dto.setDataList(list); |
| | | List<ExcelColumnDto> columnDto2 = new ArrayList<>(); |
| | | columnDto2.add(new ExcelColumnDto("部门", "deptName", 25, HorizontalAlignment.CENTER)); |
| | | columnDto2.add(new ExcelColumnDto("专业", "teamName", 25, HorizontalAlignment.CENTER)); |
| | | columnDto2.add(new ExcelColumnDto("设备名称", "name", 50, HorizontalAlignment.CENTER)); |
| | | columnDto2.add(new ExcelColumnDto("节点名称", "processName", 25, HorizontalAlignment.CENTER)); |
| | | columnDto2.add(new ExcelColumnDto("要求完成时间", "requiredCompletionTime", 25, HorizontalAlignment.CENTER)); |
| | | columnDto2.add(new ExcelColumnDto("状态", "status", 25, HorizontalAlignment.LEFT)); |
| | | dto.setColumnDto(columnDto2); |
| | | dtos.add(dto); |
| | | try { |
| | | ExcelExport.getHSSFWorkbook(path, dtos); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | } |
| | | |
| | | enum StatusEnum {zy, jxz, lq, yq, zcwc, cqwc} |
| | |
| | | String teamGroupStr = ImportUtil.getCellValue(row, 4, pattern); |
| | | String cabinStr = ImportUtil.getCellValue(row, 5, pattern); |
| | | String typeStr = ImportUtil.getCellValue(row, 6, pattern); |
| | | String time1 = ImportUtil.getCellValue(row, 7, pattern); |
| | | String time2 = ImportUtil.getCellValue(row, 8, pattern); |
| | | String time3 = ImportUtil.getCellValue(row, 9, pattern); |
| | | String time4 = ImportUtil.getCellValue(row, 10, pattern); |
| | | String time5 = ImportUtil.getCellValue(row, 11, pattern); |
| | | |
| | | Cell time1 = row.getCell(7); |
| | | Cell time2 = row.getCell(8); |
| | | Cell time3 = row.getCell(9); |
| | | Cell time4 = row.getCell(10); |
| | | Cell time5 = row.getCell(11); |
| | | |
| | | String repairUnit = ImportUtil.getCellValue(row, 12, pattern); |
| | | String repairUnitDirector = ImportUtil.getCellValue(row, 13, pattern); |
| | | String repairUnitContact = ImportUtil.getCellValue(row, 14, pattern); |
| | |
| | | data.setCabinId(idBuilder.toString()); |
| | | } |
| | | |
| | | if (StringUtils.isNotBlank(time1)) { |
| | | if (time1 != null) { |
| | | String Pname = ""; |
| | | if (typeStr.equals("改换装")||typeStr.equals("改进性修理")){ |
| | | Pname = "设备到厂"; |
| | |
| | | }else if(typeStr.equals("不复装设备")){ |
| | | Pname = "拆卸出舱"; |
| | | } |
| | | if (time1.matches("[0-9/]+")) { |
| | | time1 = time1.replace("/", "-"); |
| | | node.setRequiredCompletionTime(time1); |
| | | node.setProcessName(Pname); |
| | | node.setSort(1); |
| | | DjJdgzNetworkLevel3ListService.insert(node); |
| | | } else if (time1.matches("[0-9.]+")) { |
| | | time1 = time1.replace(".", "-"); |
| | | node.setRequiredCompletionTime(time1); |
| | | node.setProcessName(Pname); |
| | | node.setSort(1); |
| | | DjJdgzNetworkLevel3ListService.insert(node); |
| | | } else if (time1.matches("[0-9-]+")) { |
| | | node.setRequiredCompletionTime(time1); |
| | | node.setProcessName(Pname); |
| | | node.setSort(1); |
| | | DjJdgzNetworkLevel3ListService.insert(node); |
| | | } else { |
| | | result = "第" + j + "行" + "第" + 1 + "个" + "节点时间日期格式不规范"; |
| | | try { |
| | | String date = ImportUtil.getDateStrFromCell(time1); |
| | | |
| | | if (date == null) { |
| | | result = "第" + j + "行" + "节点时间不能为空"; |
| | | ImportUtil.updateErrMap(errMap, "节点时间不能为空", sheetName, row1); |
| | | isErr = true; |
| | | } else { |
| | | node.setRequiredCompletionTime(date); |
| | | node.setProcessName(Pname); |
| | | node.setSort(1); |
| | | DjJdgzNetworkLevel3ListService.insert(node); |
| | | } |
| | | } catch (ExcelImportException e) { |
| | | result = "第" + j + "行" + "第" + 1 + "个" + "节点时间日期格式不正确"; |
| | | ImportUtil.updateErrMap(errMap, "节点时间日期格式不正确", sheetName, row1); |
| | | isErr = true; |
| | | } |
| | | } |
| | | |
| | | if (StringUtils.isNotBlank(time2)) { |
| | | if (time2 != null) { |
| | | if (node.getId() != null) { |
| | | node.setId(null); |
| | | } |
| | |
| | | }else if(typeStr.equals("不复装设备")){ |
| | | Pname = "入库"; |
| | | } |
| | | if (time2.matches("[0-9/]+")) { |
| | | node.setRequiredCompletionTime(time2); |
| | | node.setProcessName(Pname); |
| | | node.setSort(2); |
| | | DjJdgzNetworkLevel3ListService.insert(node); |
| | | } else if (time2.matches("[0-9.]+")) { |
| | | time2 = time2.replace(".", "-"); |
| | | node.setRequiredCompletionTime(time2); |
| | | node.setProcessName(Pname); |
| | | node.setSort(2); |
| | | DjJdgzNetworkLevel3ListService.insert(node); |
| | | } else if (time2.matches("[0-9-]+")) { |
| | | node.setRequiredCompletionTime(time2); |
| | | node.setProcessName(Pname); |
| | | node.setSort(2); |
| | | DjJdgzNetworkLevel3ListService.insert(node); |
| | | } else { |
| | | result = "第" + j + "行" + "第" + 2 + "个" + "节点时间的日期格式不规范"; |
| | | try { |
| | | String date = ImportUtil.getDateStrFromCell(time2); |
| | | |
| | | if (date == null) { |
| | | result = "第" + j + "行" + "节点时间不能为空"; |
| | | ImportUtil.updateErrMap(errMap, "节点时间不能为空", sheetName, row1); |
| | | isErr = true; |
| | | } else { |
| | | node.setRequiredCompletionTime(date); |
| | | node.setProcessName(Pname); |
| | | node.setSort(2); |
| | | DjJdgzNetworkLevel3ListService.insert(node); |
| | | } |
| | | } catch (ExcelImportException e) { |
| | | result = "第" + j + "行" + "第" + 2 + "个" + "节点时间的日期格式不正确"; |
| | | ImportUtil.updateErrMap(errMap, "节点时间日期格式不正确", sheetName, row1); |
| | | isErr = true; |
| | | } |
| | | } |
| | | |
| | | if (StringUtils.isNotBlank(time3)) { |
| | | if (time3 != null) { |
| | | if (node.getId() != null) { |
| | | node.setId(null); |
| | | } |
| | |
| | | }else if(typeStr.equals("不复装设备")){ |
| | | Pname = "存放位置"; |
| | | } |
| | | if (time3.matches("[0-9/]+")) { |
| | | time3 = time3.replace("/", "-"); |
| | | node.setRequiredCompletionTime(time3); |
| | | node.setProcessName(Pname); |
| | | node.setSort(3); |
| | | DjJdgzNetworkLevel3ListService.insert(node); |
| | | } else if (time3.matches("[0-9.]+")) { |
| | | time3 = time3.replace(".", "-"); |
| | | node.setRequiredCompletionTime(time3); |
| | | node.setProcessName(Pname); |
| | | node.setSort(3); |
| | | DjJdgzNetworkLevel3ListService.insert(node); |
| | | } else if (time3.matches("[0-9-]+")) { |
| | | node.setRequiredCompletionTime(time3); |
| | | node.setProcessName(Pname); |
| | | node.setSort(3); |
| | | DjJdgzNetworkLevel3ListService.insert(node); |
| | | } else { |
| | | result = "第" + j + "行" + "第" + 3 + "个" + "节点时间的日期格式不规范"; |
| | | try { |
| | | String date = ImportUtil.getDateStrFromCell(time3); |
| | | |
| | | if (date == null) { |
| | | result = "第" + j + "行" + "节点时间不能为空"; |
| | | ImportUtil.updateErrMap(errMap, "节点时间不能为空", sheetName, row1); |
| | | isErr = true; |
| | | } else { |
| | | node.setRequiredCompletionTime(date); |
| | | node.setProcessName(Pname); |
| | | node.setSort(3); |
| | | DjJdgzNetworkLevel3ListService.insert(node); |
| | | } |
| | | } catch (ExcelImportException e) { |
| | | result = "第" + j + "行" + "第" + 3 + "个" + "节点时间的日期格式不正确"; |
| | | ImportUtil.updateErrMap(errMap, "节点时间日期格式不正确", sheetName, row1); |
| | | isErr = true; |
| | | } |
| | | } |
| | | |
| | | if (StringUtils.isNotBlank(time4)) { |
| | | |
| | | if (time4 != null) { |
| | | if (node.getId() != null) { |
| | | node.setId(null); |
| | | } |
| | |
| | | }else if(typeStr.equals("不复装设备")){ |
| | | Pname = "移交T队"; |
| | | } |
| | | if (time4.matches("[0-9/]+")) { |
| | | time4 = time4.replace("/", "-"); |
| | | node.setRequiredCompletionTime(time4); |
| | | node.setProcessName(Pname); |
| | | node.setSort(4); |
| | | DjJdgzNetworkLevel3ListService.insert(node); |
| | | } else if (time4.matches("[0-9.]+")) { |
| | | time4 = time4.replace(".", "-"); |
| | | node.setRequiredCompletionTime(time4); |
| | | node.setProcessName(Pname); |
| | | node.setSort(4); |
| | | DjJdgzNetworkLevel3ListService.insert(node); |
| | | } else if (time4.matches("[0-9-]+")) { |
| | | node.setRequiredCompletionTime(time4); |
| | | node.setProcessName(Pname); |
| | | node.setSort(4); |
| | | DjJdgzNetworkLevel3ListService.insert(node); |
| | | } else { |
| | | result = "第" + j + "行" + "第" + 4 + "个" + "节点时间的日期格式不规范"; |
| | | try { |
| | | String date = ImportUtil.getDateStrFromCell(time4); |
| | | |
| | | if (date == null) { |
| | | result = "第" + j + "行" + "节点时间不能为空"; |
| | | ImportUtil.updateErrMap(errMap, "节点时间不能为空", sheetName, row1); |
| | | isErr = true; |
| | | } else { |
| | | node.setRequiredCompletionTime(date); |
| | | node.setProcessName(Pname); |
| | | node.setSort(4); |
| | | DjJdgzNetworkLevel3ListService.insert(node); |
| | | } |
| | | } catch (ExcelImportException e) { |
| | | result = "第" + j + "行" + "第" + 4 + "个" + "节点时间的日期格式不正确"; |
| | | ImportUtil.updateErrMap(errMap, "节点时间日期格式不正确", sheetName, row1); |
| | | isErr = true; |
| | | } |
| | | } |
| | | |
| | | if (StringUtils.isNotBlank(time5)) { |
| | | if (time5 != null) { |
| | | if (node.getId() != null) { |
| | | node.setId(null); |
| | | } |
| | | if (time5.matches("[0-9/]+")) { |
| | | time5 = time5.replace("/", "-"); |
| | | node.setRequiredCompletionTime(time5); |
| | | node.setProcessName("回装"); |
| | | node.setSort(5); |
| | | DjJdgzNetworkLevel3ListService.insert(node); |
| | | } else if (time5.matches("[0-9.]+")) { |
| | | time5 = time5.replace(".", "-"); |
| | | node.setRequiredCompletionTime(time5); |
| | | node.setProcessName("回装"); |
| | | node.setSort(5); |
| | | DjJdgzNetworkLevel3ListService.insert(node); |
| | | } else if (time5.matches("[0-9-]+")) { |
| | | node.setRequiredCompletionTime(time5); |
| | | node.setProcessName("回装"); |
| | | node.setSort(5); |
| | | DjJdgzNetworkLevel3ListService.insert(node); |
| | | } else { |
| | | result = "第" + j + "行" + "第" + 5 + "个" + "要求完成时间的日期格式不规范"; |
| | | String Pname = ""; |
| | | if(typeStr.equals("修理")){ |
| | | Pname = "设备返厂"; |
| | | }else if(typeStr.equals("不复装设备")){ |
| | | Pname = "移交T队"; |
| | | } |
| | | try { |
| | | String date = ImportUtil.getDateStrFromCell(time5); |
| | | |
| | | if (date == null) { |
| | | result = "第" + j + "行" + "节点时间不能为空"; |
| | | ImportUtil.updateErrMap(errMap, "节点时间不能为空", sheetName, row1); |
| | | isErr = true; |
| | | } else { |
| | | node.setRequiredCompletionTime(date); |
| | | node.setProcessName(Pname); |
| | | node.setSort(5); |
| | | DjJdgzNetworkLevel3ListService.insert(node); |
| | | } |
| | | } catch (ExcelImportException e) { |
| | | result = "第" + j + "行" + "第" + 5 + "个" + "节点时间的日期格式不正确"; |
| | | ImportUtil.updateErrMap(errMap, "节点时间日期格式不正确", sheetName, row1); |
| | | isErr = true; |
| | | } |
| | | } |
| | |
| | | data.setGeneralRepairUnit(generalRepairUnit); |
| | | } |
| | | if (StringUtils.isNotBlank(generalRepairUnitContact)) { |
| | | generalRepairUnitContact = TranslateToPlainStrUtils.translateToPlainStr(generalRepairUnitContact); |
| | | data.setGeneralRepairUnitContact(generalRepairUnitContact); |
| | | } |
| | | if (StringUtils.isNotBlank(generalRepairUnitDirector)) { |
| | |
| | | data.setRepairUnit(repairUnit); |
| | | } |
| | | if (StringUtils.isNotBlank(repairUnitContact)) { |
| | | repairUnitContact = TranslateToPlainStrUtils.translateToPlainStr(repairUnitContact); |
| | | data.setRepairUnitContact(repairUnitContact); |
| | | } |
| | | if (StringUtils.isNotBlank(repairUnitDirector)) { |
| | |
| | | // 已完成 |
| | | if (node.getActualCompletion() != null && actualCompletionDate.after(requiredCompletionDate)) { |
| | | statusMap.put(node.getId(), StatusEnum.cqwc); |
| | | int days = (int) ((today.getTime() - requiredCompletionDate.getTime()) / (1000 * 60 * 60 * 24)); |
| | | int days = (int) ((actualCompletionDate.getTime() - requiredCompletionDate.getTime()) / (1000 * 60 * 60 * 24)); |
| | | node.setCqText("要求时间为" + sdf.format(requiredCompletionDate) + "超期" + days + "天完成"); |
| | | } else { |
| | | statusMap.put(node.getId(), StatusEnum.zcwc); |
| | |
| | | |
| | | return dataList; |
| | | } |
| | | /* public void exportExcelTemplate(HttpServletResponse response, HttpServletRequest request) throws IOException { |
| | | String excelName="三级网络图批量模版"; |
| | | String excelPath = path + "template/jx-model/" + excelName + ".xlsx"; //模板路径 |
| | | File file = new File(excelPath); |
| | | excelName = excelName + "_" + DateUtil.now() + ".xlsx"; |
| | | DownloadService.exportModelPath(excelPath, excelName, file, response, request); |
| | | }*/ |
| | | } |