From 0459c628eaf107f198d4eaa234e84bc59f35db73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=98ml=E2=80=99?= Date: Fri, 11 Nov 2022 09:11:03 +0800 Subject: [PATCH] =?UTF-8?q?=E8=81=8C=E7=AD=89=E8=81=8C=E7=BA=A7=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E6=8E=A5=E5=8F=A320221111?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ImportCommonServiceImpl.java | 504 +++++++++++------- .../organization/util/excel/ExcelUtil.java | 59 ++ .../util/saveimport/PostInfoImportUtil.java | 14 +- 3 files changed, 368 insertions(+), 209 deletions(-) diff --git a/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java b/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java index dd90708f..a81c70a2 100644 --- a/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java +++ b/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java @@ -173,7 +173,7 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ fieldDatas.add(FieldTransferParam.builder().id("8").name("职级说明").build()); fieldDatas.add(FieldTransferParam.builder().id("9").name("职等说明").build()); List selectedKeys = new ArrayList<>(); - for(int i=0;i 0, "导入数据为空"); - short lastCellNum = sheetAt.getRow(0).getLastCellNum(); - List extendInfoPOS = new ArrayList<>(); - - // 遍历每一行数据 - nextRow: - for (int i = 0; i <= lastRow; i++) { - historyDetailPO = new JclImportHistoryDetailPO(); - historyDetailPO.setPid(importHistoryId); - XSSFRow row = sheetAt.getRow(i); - // 组装待处理数据 - Map map = new HashMap<>(); - SchemePO schemePO = new SchemePO(); - SchemePO schemeNew = new SchemePO();; - GradePO gradePO = new GradePO(); - GradePO gradeNew = new GradePO(); - LevelPO levelPO = new LevelPO(); - LevelPO levelNew = new LevelPO(); - - historyDetailPO.setRowNums(String.valueOf(i + 1)); - for (int cellIndex = 0; cellIndex < lastCellNum; cellIndex++) { - XSSFCell cell = row.getCell((short) cellIndex); - String cellValue = getCellValue(cell).trim(); - if (i == 0) { - // 首行 初始化字段信息 - ExtendInfoPO extendInfoPO = importFieldsMap.get(cellValue); - extendInfoPOS.add(extendInfoPO); - }else{ - ExtendInfoPO infoPO = extendInfoPOS.get(cellIndex); - // 数据校验 - if (infoPO.getIsrequired() == 1 && StringUtils.isBlank(cellValue)) { - historyDetailPO.setOperateDetail(infoPO.getFieldNameDesc() + "为必填项"); - historyDetailPO.setStatus("0"); - saveImportDetailLog(historyDetailPO); - continue nextRow; - } + for (int s = 0; s < workbook.getNumberOfSheets(); s++) { + // 当前sheet + XSSFSheet sheetAt = workbook.getSheetAt(s); + int lastRow = sheetAt.getLastRowNum(); + OrganizationAssert.isTrue(lastRow > 0, "导入数据为空"); + short lastCellNum = sheetAt.getRow(0).getLastCellNum(); + List extendInfoPOS = new ArrayList<>(); + + // 遍历每一行数据 + nextRow: + for (int i = 0; i <= lastRow; i++) { + historyDetailPO = new JclImportHistoryDetailPO(); + historyDetailPO.setPid(importHistoryId); + XSSFRow row = sheetAt.getRow(i); + // 组装待处理数据 + Map map = new HashMap<>(); + SchemePO schemePO = new SchemePO(); + SchemePO schemeNew = new SchemePO(); + ; + GradePO gradePO = new GradePO(); + GradePO gradeNew = new GradePO(); + LevelPO levelPO = new LevelPO(); + LevelPO levelNew = new LevelPO(); + + historyDetailPO.setRowNums(String.valueOf(i + 1)); + for (int cellIndex = 0; cellIndex < lastCellNum; cellIndex++) { + XSSFCell cell = row.getCell((short) cellIndex); + String cellValue = getCellValue(cell).trim(); + if (i == 0) { + // 首行 初始化字段信息 + ExtendInfoPO extendInfoPO = importFieldsMap.get(cellValue); + extendInfoPOS.add(extendInfoPO); + } else { + ExtendInfoPO infoPO = extendInfoPOS.get(cellIndex); + // 数据校验 + if (infoPO.getIsrequired() == 1 && StringUtils.isBlank(cellValue)) { + historyDetailPO.setOperateDetail(infoPO.getFieldNameDesc() + "为必填项"); + historyDetailPO.setStatus("0"); + saveImportDetailLog(historyDetailPO); + continue nextRow; + } - Object reallyValue; - try { - // 数据格式转换 - reallyValue = getReallyValue(infoPO, cellValue); - } catch (Exception e) { - historyDetailPO.setOperateDetail(cellValue + "转换失败"); - historyDetailPO.setStatus("0"); - saveImportDetailLog(historyDetailPO); - continue nextRow; - } - if (StringUtils.isNotBlank(cellValue) && StringUtils.isBlank(Util.null2String(reallyValue)) && !"ec_company".equals(infoPO.getFieldName()) && !"ec_department".equals(infoPO.getFieldName())) { - historyDetailPO.setOperateDetail(infoPO.getFieldNameDesc() + "数据转换失败,未找到对应数据"); - historyDetailPO.setStatus("0"); - saveImportDetailLog(historyDetailPO); - continue nextRow; + Object reallyValue; + try { + // 数据格式转换 + reallyValue = getReallyValue(infoPO, cellValue); + } catch (Exception e) { + historyDetailPO.setOperateDetail(cellValue + "转换失败"); + historyDetailPO.setStatus("0"); + saveImportDetailLog(historyDetailPO); + continue nextRow; + } + if (StringUtils.isNotBlank(cellValue) && StringUtils.isBlank(Util.null2String(reallyValue)) && !"ec_company".equals(infoPO.getFieldName()) && !"ec_department".equals(infoPO.getFieldName())) { + historyDetailPO.setOperateDetail(infoPO.getFieldNameDesc() + "数据转换失败,未找到对应数据"); + historyDetailPO.setStatus("0"); + saveImportDetailLog(historyDetailPO); + continue nextRow; + } + map.put(infoPO.getFieldName(), reallyValue); + // 方案页校验 + if ("scheme_no".equals(infoPO.getFieldName()) && s == 0) { + List schemePOS = MapperProxyFactory.getProxy(SchemeMapper.class).listByNo(Util.null2String(reallyValue)); + if (schemePOS.size() > 0) { + historyDetailPO.setOperateDetail("方案页导入:方案编号[" + reallyValue + "]与原有编号重复"); + historyDetailPO.setRelatedName(infoPO.getFieldName()); + historyDetailPO.setStatus("0"); + saveImportDetailLog(historyDetailPO); + continue nextRow; + } + } + // 职等页校验 + if ("scheme_no".equals(infoPO.getFieldName()) && s == 1) { + List schemePOS = MapperProxyFactory.getProxy(SchemeMapper.class).listByNo(Util.null2String(reallyValue)); + if (schemePOS.size() == 0) { + historyDetailPO.setOperateDetail("职等页导入:未找到编号为[" + reallyValue + "]的方案"); + historyDetailPO.setRelatedName(infoPO.getFieldName()); + historyDetailPO.setStatus("0"); + saveImportDetailLog(historyDetailPO); + continue nextRow; + } + } + // 职级页校验 + if ("scheme_no".equals(infoPO.getFieldName()) && s == 2) { + List schemePOS = MapperProxyFactory.getProxy(SchemeMapper.class).listByNo(Util.null2String(reallyValue)); + if (schemePOS.size() == 0) { + historyDetailPO.setOperateDetail("职级页导入:未找到编号为[" + reallyValue + "]的方案"); + historyDetailPO.setRelatedName(infoPO.getFieldName()); + historyDetailPO.setStatus("0"); + saveImportDetailLog(historyDetailPO); + continue nextRow; + } + } + if ("level_no".equals(infoPO.getFieldName()) && s == 2) { + List levelPOS = MapperProxyFactory.getProxy(LevelMapper.class).listByNo(Util.null2String(reallyValue)); + if (levelPOS.size() == 0) { + historyDetailPO.setOperateDetail("职级页导入:未找到编号为[" + reallyValue + "]的职等"); + historyDetailPO.setRelatedName(infoPO.getFieldName()); + historyDetailPO.setStatus("0"); + saveImportDetailLog(historyDetailPO); + continue nextRow; + } + } } - map.put(infoPO.getFieldName(), reallyValue); - } - } - // 校验、数据交互 - if (i == 0){ - continue; - } - - map.put("creator", user.getUID()); - map.put("delete_type", 0); - Date currDate = new Date(); - map.put("create_time", currDate); - map.put("update_time", currDate); - // 禁用表示为空,默认启用 - map.put("forbidden_tag", 0); - map.put("is_used", 1); - if ("add".equals(operateType)) { - schemePO.setSchemeNo((String)map.get("scheme_no")); - schemePO.setSchemeName((String)map.get("scheme_name")); - schemePO.setSchemeDescription((String)map.get("scheme_description")); - schemePO.setForbiddenTag((int)map.get("forbidden_tag")); - schemePO.setIsUsed(1); - schemePO.setCreator((long) user.getUID()); - schemePO.setDeleteType((int)map.get("delete_type")); - schemePO.setCreateTime((Date) map.get("create_time")); - schemePO.setUpdateTime((Date) map.get("update_time")); - - schemeNew = MapperProxyFactory.getProxy(SchemeMapper.class).getSchemeByNo(schemePO.getSchemeNo()); - if (schemeNew==null){ - MapperProxyFactory.getProxy(SchemeMapper.class).insertIgnoreNull(schemePO); - }else{ - historyDetailPO.setOperateDetail("方案编号"+schemePO.getSchemeNo()+"与原有编号重复"); - historyDetailPO.setStatus("0"); - saveImportDetailLog(historyDetailPO); } - - // 新增完成后,再次插入 - schemeNew = MapperProxyFactory.getProxy(SchemeMapper.class).getSchemeByNo(schemePO.getSchemeNo()); - levelPO.setLevelNo((String) map.get("level_no")); - levelPO.setLevelName((String) map.get("level_name")); - levelPO.setDescription((String) map.get("level_description")); - //关联方案id - levelPO.setSchemeId(schemeNew.getId()); - levelPO.setForbiddenTag((int) map.get("forbidden_tag")); - levelPO.setIsUsed(1); - levelPO.setCreator((long) user.getUID()); - levelPO.setDeleteType((int)map.get("delete_type")); - levelPO.setCreateTime((Date) map.get("create_time")); - levelPO.setUpdateTime((Date) map.get("update_time")); - - levelNew = MapperProxyFactory.getProxy(LevelMapper.class).getLevelByNoAndSid(levelPO.getLevelNo(),schemeNew.getId()); - if(levelNew==null){ - MapperProxyFactory.getProxy(LevelMapper.class).insertIgnoreNull(levelPO); + // 校验、数据交互 + if (i == 0) { + continue; } - levelNew = MapperProxyFactory.getProxy(LevelMapper.class).getLevelByNoAndSid(levelPO.getLevelNo(),schemeNew.getId()); - gradePO.setGradeNo((String) map.get("grade_no")); - gradePO.setGradeName((String) map.get("grade_name")); - gradePO.setDescription((String) map.get("grade_description")); - // 关联方案id - gradePO.setSchemeId(schemeNew.getId()); - // 关联职等id - gradePO.setLevelId(String.valueOf(levelNew.getId())); - gradePO.setGradeNo((String) map.get("grade_no")); - gradePO.setForbiddenTag((int) map.get("forbidden_tag")); - gradePO.setIsUsed(1); - gradePO.setCreator((long) user.getUID()); - gradePO.setDeleteType((int)map.get("delete_type")); - gradePO.setCreateTime((Date) map.get("create_time")); - gradePO.setUpdateTime((Date) map.get("update_time")); - - gradeNew = MapperProxyFactory.getProxy(GradeMapper.class).getGradeByNoAndSid(gradePO.getGradeNo(),gradePO.getSchemeId()); - if (gradeNew != null) { - //职级已存在,重新拼接level_id - gradePO.setLevelId(gradeNew.getLevelId()+","+levelNew.getId()); - - gradePO.setId(gradeNew.getId()); - gradePO.setCreateTime(null); - gradePO.setUpdateTime(new Date()); - MapperProxyFactory.getProxy(GradeMapper.class).updateGrade(gradePO); - }else{ - MapperProxyFactory.getProxy(GradeMapper.class).insertIgnoreNull(gradePO); - } + map.put("creator", user.getUID()); + map.put("delete_type", 0); + Date currDate = new Date(); + map.put("create_time", currDate); + map.put("update_time", currDate); + // 禁用表示为空,默认启用 + map.put("forbidden_tag", 0); + map.put("is_used", 1); + if ("add".equals(operateType)) { + if (s == 0) { + schemePO.setSchemeNo((String) map.get("scheme_no")); + schemePO.setSchemeName((String) map.get("scheme_name")); + schemePO.setSchemeDescription((String) map.get("scheme_description")); + schemePO.setForbiddenTag((int) map.get("forbidden_tag")); + schemePO.setIsUsed(1); + schemePO.setCreator((long) user.getUID()); + schemePO.setDeleteType((int) map.get("delete_type")); + schemePO.setCreateTime((Date) map.get("create_time")); + schemePO.setUpdateTime((Date) map.get("update_time")); + + MapperProxyFactory.getProxy(SchemeMapper.class).insertIgnoreNull(schemePO); + } else if (s == 1) { + String schemeNo = (String) map.get("scheme_no"); + String levelNo = (String) map.get("level_no"); + schemeNew = MapperProxyFactory.getProxy(SchemeMapper.class).getSchemeByNo(schemeNo); + if (schemeNew != null) { + levelNew = MapperProxyFactory.getProxy(LevelMapper.class).getLevelByNoAndSid(levelNo, schemeNew.getId()); + if (levelNew != null) { + historyDetailPO.setRelatedName("职等页导入"); + historyDetailPO.setOperateDetail("同一方案" + schemeNo + "下,职等编号不可重复"); + historyDetailPO.setStatus("0"); + saveImportDetailLog(historyDetailPO); + continue nextRow; + } else { + levelPO.setLevelNo(levelNo); + levelPO.setLevelName((String) map.get("level_name")); + levelPO.setDescription((String) map.get("level_description")); + //关联方案id + levelPO.setSchemeId(schemeNew.getId()); + levelPO.setForbiddenTag((int) map.get("forbidden_tag")); + levelPO.setIsUsed(1); + levelPO.setCreator((long) user.getUID()); + levelPO.setDeleteType((int) map.get("delete_type")); + levelPO.setCreateTime((Date) map.get("create_time")); + levelPO.setUpdateTime((Date) map.get("update_time")); + MapperProxyFactory.getProxy(LevelMapper.class).insertIgnoreNull(levelPO); + } + } + } else if (s == 2) { + String gradeNo = (String) map.get("grade_no"); + String schemeNo = (String) map.get("scheme_no"); + String levelNo = (String) map.get("level_no"); + + schemeNew = MapperProxyFactory.getProxy(SchemeMapper.class).getSchemeByNo(schemeNo); + levelNew = MapperProxyFactory.getProxy(LevelMapper.class).getLevelByNoAndSid(levelNo, schemeNew.getId()); + gradeNew = MapperProxyFactory.getProxy(GradeMapper.class).getGradeByNoAndSid(gradeNo, schemeNew.getId()); + + gradePO.setGradeNo(gradeNo); + gradePO.setGradeName((String) map.get("grade_name")); + gradePO.setDescription((String) map.get("grade_description")); + // 关联方案id + gradePO.setSchemeId(schemeNew.getId()); + // 关联职等id + gradePO.setLevelId(String.valueOf(levelNew.getId())); + gradePO.setGradeNo((String) map.get("grade_no")); + gradePO.setForbiddenTag((int) map.get("forbidden_tag")); + gradePO.setIsUsed(1); + gradePO.setCreator((long) user.getUID()); + gradePO.setDeleteType((int) map.get("delete_type")); + gradePO.setCreateTime((Date) map.get("create_time")); + gradePO.setUpdateTime((Date) map.get("update_time")); + if (gradeNew != null) { + //职级已存在,重新拼接level_id + gradePO.setLevelId(gradeNew.getLevelId() + "," + levelNew.getId()); + + gradePO.setId(gradeNew.getId()); + gradePO.setCreateTime(null); + gradePO.setUpdateTime(new Date()); + MapperProxyFactory.getProxy(GradeMapper.class).updateGrade(gradePO); + } else { + MapperProxyFactory.getProxy(GradeMapper.class).insertIgnoreNull(gradePO); + } + } - historyDetailPO.setOperateDetail("添加成功"); - historyDetailPO.setStatus("1"); - saveImportDetailLog(historyDetailPO); - }else if ("update".equals(operateType)) { - schemeNew = MapperProxyFactory.getProxy(SchemeMapper.class).getSchemeByNo((String)map.get("scheme_no")); - if(schemeNew!=null){ - schemeNew.setSchemeNo((String)map.get("scheme_no")); - schemeNew.setSchemeName((String)map.get("scheme_name")); - schemeNew.setSchemeDescription((String)map.get("scheme_description")); - schemeNew.setUpdateTime((Date) map.get("update_time")); - MapperProxyFactory.getProxy(SchemeMapper.class).updateScheme(schemeNew); - }else{ - schemeNew.setSchemeNo((String)map.get("scheme_no")); - schemeNew.setSchemeName((String)map.get("scheme_name")); - schemeNew.setSchemeDescription((String)map.get("scheme_description")); - schemeNew.setForbiddenTag((int)map.get("forbidden_tag")); - schemeNew.setIsUsed(1); - schemeNew.setCreator((long) user.getUID()); - schemeNew.setDeleteType((int)map.get("delete_type")); - schemeNew.setCreateTime((Date) map.get("create_time")); - schemeNew.setUpdateTime((Date) map.get("update_time")); - MapperProxyFactory.getProxy(SchemeMapper.class).insertIgnoreNull(schemeNew); - } + historyDetailPO.setOperateDetail("添加成功"); + historyDetailPO.setStatus("1"); + saveImportDetailLog(historyDetailPO); + } else if ("update".equals(operateType)) { + schemeNew = MapperProxyFactory.getProxy(SchemeMapper.class).getSchemeByNo((String) map.get("scheme_no")); + if (schemeNew != null) { + schemeNew.setSchemeNo((String) map.get("scheme_no")); + schemeNew.setSchemeName((String) map.get("scheme_name")); + schemeNew.setSchemeDescription((String) map.get("scheme_description")); + schemeNew.setUpdateTime((Date) map.get("update_time")); + MapperProxyFactory.getProxy(SchemeMapper.class).updateScheme(schemeNew); + } else { + schemeNew.setSchemeNo((String) map.get("scheme_no")); + schemeNew.setSchemeName((String) map.get("scheme_name")); + schemeNew.setSchemeDescription((String) map.get("scheme_description")); + schemeNew.setForbiddenTag((int) map.get("forbidden_tag")); + schemeNew.setIsUsed(1); + schemeNew.setCreator((long) user.getUID()); + schemeNew.setDeleteType((int) map.get("delete_type")); + schemeNew.setCreateTime((Date) map.get("create_time")); + schemeNew.setUpdateTime((Date) map.get("update_time")); + MapperProxyFactory.getProxy(SchemeMapper.class).insertIgnoreNull(schemeNew); + } - //查询职等信息 - schemeNew = MapperProxyFactory.getProxy(SchemeMapper.class).getSchemeByNo((String)map.get("scheme_no")); - levelNew = MapperProxyFactory.getProxy(LevelMapper.class).getLevelByNoAndSid((String) map.get("level_no"),schemeNew.getId()); - if(levelNew!=null){ - levelNew.setLevelNo((String) map.get("level_no")); - levelNew.setLevelName((String) map.get("level_name")); - levelNew.setDescription((String) map.get("level_description")); - //关联方案id - levelNew.setSchemeId(schemeNew.getId()); - levelNew.setUpdateTime((Date) map.get("update_time")); - MapperProxyFactory.getProxy(LevelMapper.class).updateLevel(levelNew); - }else{ - levelNew.setLevelNo((String) map.get("level_no")); - levelNew.setLevelName((String) map.get("level_name")); - levelNew.setDescription((String) map.get("level_description")); - //关联方案id - levelNew.setSchemeId(schemeNew.getId()); - levelNew.setForbiddenTag((int) map.get("forbidden_tag")); - levelNew.setIsUsed(1); - levelNew.setCreator((long) user.getUID()); - levelNew.setDeleteType((int)map.get("delete_type")); - levelNew.setCreateTime((Date) map.get("create_time")); - levelNew.setUpdateTime((Date) map.get("update_time")); - MapperProxyFactory.getProxy(LevelMapper.class).insertIgnoreNull(levelNew); - } + //查询职等信息 + schemeNew = MapperProxyFactory.getProxy(SchemeMapper.class).getSchemeByNo((String) map.get("scheme_no")); + levelNew = MapperProxyFactory.getProxy(LevelMapper.class).getLevelByNoAndSid((String) map.get("level_no"), schemeNew.getId()); + if (levelNew != null) { + levelNew.setLevelNo((String) map.get("level_no")); + levelNew.setLevelName((String) map.get("level_name")); + levelNew.setDescription((String) map.get("level_description")); + //关联方案id + levelNew.setSchemeId(schemeNew.getId()); + levelNew.setUpdateTime((Date) map.get("update_time")); + MapperProxyFactory.getProxy(LevelMapper.class).updateLevel(levelNew); + } else { + levelNew.setLevelNo((String) map.get("level_no")); + levelNew.setLevelName((String) map.get("level_name")); + levelNew.setDescription((String) map.get("level_description")); + //关联方案id + levelNew.setSchemeId(schemeNew.getId()); + levelNew.setForbiddenTag((int) map.get("forbidden_tag")); + levelNew.setIsUsed(1); + levelNew.setCreator((long) user.getUID()); + levelNew.setDeleteType((int) map.get("delete_type")); + levelNew.setCreateTime((Date) map.get("create_time")); + levelNew.setUpdateTime((Date) map.get("update_time")); + MapperProxyFactory.getProxy(LevelMapper.class).insertIgnoreNull(levelNew); + } - gradeNew = MapperProxyFactory.getProxy(GradeMapper.class).getGradeByNoAndSid((String) map.get("grade_no"),schemeNew.getId()); - if(gradeNew!=null){ - gradeNew.setGradeNo((String) map.get("grade_no")); - gradeNew.setGradeName((String) map.get("grade_name")); - gradeNew.setDescription((String) map.get("grade_description")); - // 关联方案id - gradeNew.setSchemeId(schemeNew.getId()); - // 关联职等id - gradeNew.setLevelId(String.valueOf(levelNew.getId())); - gradeNew.setUpdateTime((Date) map.get("update_time")); - GradePO gradePOTmp = MapperProxyFactory.getProxy(GradeMapper.class).getGradeByID(gradeNew.getId()); - if(gradePOTmp!=null){ - - MapperProxyFactory.getProxy(GradeMapper.class).updateGrade(gradeNew); + gradeNew = MapperProxyFactory.getProxy(GradeMapper.class).getGradeByNoAndSid((String) map.get("grade_no"), schemeNew.getId()); + if (gradeNew != null) { + gradeNew.setGradeNo((String) map.get("grade_no")); + gradeNew.setGradeName((String) map.get("grade_name")); + gradeNew.setDescription((String) map.get("grade_description")); + // 关联方案id + gradeNew.setSchemeId(schemeNew.getId()); + // 关联职等id + gradeNew.setLevelId(String.valueOf(levelNew.getId())); + gradeNew.setUpdateTime((Date) map.get("update_time")); + GradePO gradePOTmp = MapperProxyFactory.getProxy(GradeMapper.class).getGradeByID(gradeNew.getId()); + if (gradePOTmp != null) { + + MapperProxyFactory.getProxy(GradeMapper.class).updateGrade(gradeNew); + } + } else { + MapperProxyFactory.getProxy(GradeMapper.class).insertIgnoreNull(gradePO); } - }else{ - MapperProxyFactory.getProxy(GradeMapper.class).insertIgnoreNull(gradePO); } - } + } } return importHistoryId; } @@ -1863,6 +1917,9 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ // 根据选择字段、生成对应的导入模板 String[] split = columns.split(","); List columnList = new ArrayList<>(Arrays.asList(split)); + List schemeList = new ArrayList<>(); + List levelList = new ArrayList<>(); + List gradeList = new ArrayList<>(); Object companyColumn = ""; Object departmentColumn = ""; // 排序 @@ -1882,6 +1939,36 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ departmentColumn = column; iterator.remove(); } + if("方案编号".equals(column)){ + schemeList.add(column); + levelList.add(column); + gradeList.add(column); + } + if("方案名称".equals(column)){ + schemeList.add(column); + } + if("方案说明".equals(column)){ + schemeList.add(column); + } + if("职等编号".equals(column)){ + levelList.add(column); + gradeList.add(column); + } + if("职等名称".equals(column)){ + levelList.add(column); + } + if("职等说明".equals(column)){ + levelList.add(column); + } + if("职级编号".equals(column)){ + gradeList.add(column); + } + if("职级名称".equals(column)){ + gradeList.add(column); + } + if("职级说明".equals(column)){ + gradeList.add(column); + } } if (StringUtils.isNotBlank(departmentColumn.toString())) { columnList.add(0, departmentColumn); @@ -1894,7 +1981,20 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ List> excelSheetData = new ArrayList<>(); excelSheetData.add(columnList); String outPutPath = GCONST.getRootPath() + "hrm" + File.separator + "import" + File.separator + "template" + File.separator + user.getUID(); - XSSFWorkbook sheets = ExcelUtil.genWorkbookV2(excelSheetData, importType); + XSSFWorkbook sheets = new XSSFWorkbook(); + if ("joblevel".equals(importType)) { + excelSheetData.clear(); + excelSheetData.add(schemeList); + ExcelUtil.genWorkbookV3(sheets,excelSheetData,0, "方案"); + excelSheetData.clear(); + excelSheetData.add(levelList); + ExcelUtil.genWorkbookV3(sheets,excelSheetData,1, "职等"); + excelSheetData.clear(); + excelSheetData.add(gradeList); + ExcelUtil.genWorkbookV3(sheets,excelSheetData,2, "职级"); + }else{ + sheets = ExcelUtil.genWorkbookV2(excelSheetData, importType); + } String excelPath = outPutPath + File.separator + importType + ".xls"; File excelPathFile = new File(excelPath); if (!excelPathFile.exists()) { diff --git a/src/com/engine/organization/util/excel/ExcelUtil.java b/src/com/engine/organization/util/excel/ExcelUtil.java index 0a9f0acc..79e339ee 100644 --- a/src/com/engine/organization/util/excel/ExcelUtil.java +++ b/src/com/engine/organization/util/excel/ExcelUtil.java @@ -125,6 +125,65 @@ public class ExcelUtil { } return workbook; } + public static XSSFWorkbook genWorkbookV3(XSSFWorkbook workbook,List> rowList,int sheetNum, String sheetName) { +// XSSFWorkbook workbook = new XSSFWorkbook(); + + // 设置title样式 + XSSFCellStyle titleCellStyle = workbook.createCellStyle(); + XSSFFont titleFont = workbook.createFont(); + titleFont.setFontName("仿宋"); + titleFont.setFontHeightInPoints((short) 15); + titleCellStyle.setFont(titleFont); + titleCellStyle.setAlignment(HorizontalAlignment.CENTER); + titleCellStyle.setFillForegroundColor(IndexedColors.GREEN.getIndex());//背景色 + titleCellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND); + + + // 设置主体样式 + XSSFCellStyle cellStyle = workbook.createCellStyle(); + XSSFFont font = workbook.createFont(); + font.setFontName("宋体"); + font.setFontHeightInPoints((short) 10);// 设置字体大小 + cellStyle.setFont(font);// 选择需要用到的字体格式 + cellStyle.setWrapText(true); + + XSSFSheet sheet = workbook.createSheet(); + workbook.setSheetName(sheetNum,sheetName); + //自适应宽度 + sheet.autoSizeColumn(0, true); + //默认列宽 + sheet.setDefaultColumnWidth(25); + //默认行高 + sheet.setDefaultRowHeightInPoints(18); + + for (int rowIndex = 0; rowIndex < rowList.size(); rowIndex++) { + List infoList = rowList.get(rowIndex); + XSSFRow row = sheet.createRow(rowIndex); + for (int cellIndex = 0; cellIndex < infoList.size(); cellIndex++) { + XSSFCell cell = row.createCell(cellIndex); + if (rowIndex == 0) { + cell.setCellStyle(titleCellStyle); + } else { + cell.setCellStyle(cellStyle); + } + Object o = infoList.get(cellIndex); + if (o instanceof String) { + cell.setCellType(CellType.STRING); + cell.setCellValue(String.valueOf(o)); + } else if (o instanceof Boolean) { + cell.setCellType(CellType.BOOLEAN); + cell.setCellValue(String.valueOf(o)); + } else if (o instanceof Date) { + cell.setCellType(CellType.STRING); + cell.setCellValue(OrganizationDateUtil.getFormatLocalDate((Date) o)); + } else { + cell.setCellType(CellType.STRING); + cell.setCellValue(o == null ? "" : o.toString()); + } + } + } + return workbook; + } public static XSSFWorkbook genWorkbookV2(List> rowList, String sheetName, List comments) { diff --git a/src/com/engine/organization/util/saveimport/PostInfoImportUtil.java b/src/com/engine/organization/util/saveimport/PostInfoImportUtil.java index 65332a36..a18b732e 100644 --- a/src/com/engine/organization/util/saveimport/PostInfoImportUtil.java +++ b/src/com/engine/organization/util/saveimport/PostInfoImportUtil.java @@ -15,13 +15,13 @@ public class PostInfoImportUtil { static { importFieldsMap = new HashMap<>(); - importFieldsMap.put("编号", ExtendInfoPO.builder().tableName("jcl_org_post").fieldName("post_no").fieldNameDesc("方案编号").isrequired(1).controlType(1).browserType("1").customValue("[\"input\",\"text\",\"100\"]").build()); - importFieldsMap.put("名称", ExtendInfoPO.builder().tableName("jcl_org_post").fieldName("post_name").fieldNameDesc("方案名称").isrequired(0).controlType(1).browserType("1").customValue("[\"input\",\"text\",\"100\"]").build()); - importFieldsMap.put("权限", ExtendInfoPO.builder().tableName("jcl_org_post").fieldName("comp_id").fieldNameDesc("分部").isrequired(1).controlType(1).browserType("1").customValue("[\"input\",\"text\",\"100\"]").build()); - importFieldsMap.put("责任", ExtendInfoPO.builder().tableName("jcl_org_post").fieldName("dept_id").fieldNameDesc("部门").isrequired(0).controlType(1).browserType("1").customValue("[\"input\",\"text\",\"100\"]").build()); - importFieldsMap.put("资格", ExtendInfoPO.builder().tableName("jcl_org_post").fieldName("job_id").fieldNameDesc("岗位").isrequired(0).controlType(1).browserType("1").customValue("[\"input\",\"text\",\"100\"]").build()); - importFieldsMap.put("职务分类", ExtendInfoPO.builder().tableName("jcl_org_post").fieldName("staff_num").fieldNameDesc("编制数").isrequired(1).controlType(1).browserType("2").customValue("[\"input\",\"int\"]").build()); - importFieldsMap.put("描述说明", ExtendInfoPO.builder().tableName("jcl_org_post").fieldName("staff_num").fieldNameDesc("编制数").isrequired(1).controlType(1).browserType("2").customValue("[\"input\",\"int\"]").build()); + importFieldsMap.put("编号", ExtendInfoPO.builder().tableName("jcl_org_post").fieldName("post_no").fieldNameDesc("编号").isrequired(1).controlType(1).browserType("1").customValue("[\"input\",\"text\",\"100\"]").build()); + importFieldsMap.put("名称", ExtendInfoPO.builder().tableName("jcl_org_post").fieldName("post_name").fieldNameDesc("名称").isrequired(1).controlType(1).browserType("1").customValue("[\"input\",\"text\",\"100\"]").build()); + importFieldsMap.put("权限", ExtendInfoPO.builder().tableName("jcl_org_post").fieldName("post_info_authority").fieldNameDesc("权限").isrequired(0).controlType(1).browserType("1").customValue("[\"input\",\"text\",\"100\"]").build()); + importFieldsMap.put("责任", ExtendInfoPO.builder().tableName("jcl_org_post").fieldName("post_info_duty").fieldNameDesc("责任").isrequired(0).controlType(1).browserType("1").customValue("[\"input\",\"text\",\"100\"]").build()); + importFieldsMap.put("资格", ExtendInfoPO.builder().tableName("jcl_org_post").fieldName("post_info_qualification").fieldNameDesc("资格").isrequired(0).controlType(1).browserType("1").customValue("[\"input\",\"text\",\"100\"]").build()); + importFieldsMap.put("职务分类", ExtendInfoPO.builder().tableName("jcl_org_post").fieldName("post_id").fieldNameDesc("职务分类").isrequired(1).controlType(1).browserType("1").customValue("[\"input\",\"text\",\"100\"]").build()); + importFieldsMap.put("描述说明", ExtendInfoPO.builder().tableName("jcl_org_post").fieldName("description").fieldNameDesc("说明").isrequired(0).controlType(1).browserType("1").customValue("[\"input\",\"text\",\"100\"]").build()); }