diff --git a/src/com/engine/organization/entity/jclimport/vo/JclImportHistoryDetailVO.java b/src/com/engine/organization/entity/jclimport/vo/JclImportHistoryDetailVO.java index 1b115441..0ca8a7d6 100644 --- a/src/com/engine/organization/entity/jclimport/vo/JclImportHistoryDetailVO.java +++ b/src/com/engine/organization/entity/jclimport/vo/JclImportHistoryDetailVO.java @@ -1,5 +1,7 @@ package com.engine.organization.entity.jclimport.vo; +import com.engine.organization.annotation.OrganizationTable; +import com.engine.organization.annotation.OrganizationTableColumn; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -14,11 +16,19 @@ import lombok.NoArgsConstructor; @Builder @AllArgsConstructor @NoArgsConstructor +@OrganizationTable(pageId = "94f28954-0cca-11ed-99cf-00e04c680716", + fields = "t.id," + + "t.row_nums," + + "t.operate_detail", + fromSql = "from jcl_import_history_detail t", + sortway = "asc", + primarykey = "id" +) public class JclImportHistoryDetailVO { + @OrganizationTableColumn(column = "id", display = false) private Long id; - private Long pid; + @OrganizationTableColumn(text = "行", width = "15%", column = "row_nums") private String rowNums; - private String status; + @OrganizationTableColumn(text = "提示信息", width = "85%", column = "operate_detail") private String operateDetail; - private String relatedName; } diff --git a/src/com/engine/organization/service/ImportCommonService.java b/src/com/engine/organization/service/ImportCommonService.java index f4ce809b..eeb3ff02 100644 --- a/src/com/engine/organization/service/ImportCommonService.java +++ b/src/com/engine/organization/service/ImportCommonService.java @@ -55,4 +55,6 @@ public interface ImportCommonService { */ Map saveImport(Map params); + Map getImportProcessLog(Map params); + } diff --git a/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java b/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java index 0fa9cae6..07780491 100644 --- a/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java +++ b/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java @@ -514,7 +514,6 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic List departmentsByIds = new ArrayList<>(); for (int i = 0; i < ceilCount - 1; i++) { List longs = PageUtil.subList(i, 1000, ids); - System.out.println(longs.size()); List departmentsById = getDepartmentMapper().getDeptsByIds(longs); if (CollectionUtils.isNotEmpty(departmentsById)) { departmentsByIds.addAll(departmentsById); diff --git a/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java b/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java index 028f95ea..ac51893e 100644 --- a/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java +++ b/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java @@ -6,8 +6,10 @@ import com.api.browser.bean.SearchConditionItem; import com.api.browser.bean.SearchConditionOption; import com.api.browser.util.ConditionFactory; import com.api.browser.util.ConditionType; +import com.cloudstore.eccom.result.WeaResultMsg; import com.engine.core.impl.Service; import com.engine.hrm.entity.FieldSelectOptionBean; +import com.engine.organization.component.OrganizationWeaTable; import com.engine.organization.entity.SelectOptionParam; import com.engine.organization.entity.extend.param.ExtendInfoParams; import com.engine.organization.entity.extend.po.ExtendInfoPO; @@ -15,6 +17,7 @@ import com.engine.organization.entity.fieldset.param.FieldTypeTreeParam; import com.engine.organization.entity.hrmresource.param.HrmResourceImportParam; import com.engine.organization.entity.jclimport.po.JclImportHistoryDetailPO; import com.engine.organization.entity.jclimport.po.JclImportHistoryPO; +import com.engine.organization.entity.jclimport.vo.JclImportHistoryDetailVO; import com.engine.organization.mapper.comp.CompMapper; import com.engine.organization.mapper.department.DepartmentMapper; import com.engine.organization.mapper.extend.ExtMapper; @@ -194,13 +197,16 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ Map returnMap = new HashMap<>(); try { if (StringUtils.isNotBlank(importType)) { + String templatePath = getTemplatePath(importType, columns); switch (importType) { case "company": - returnMap.put("condition", getCompanyImportForm(columns)); + returnMap.put("condition", getCompanyImportForm(templatePath)); break; case "department": + returnMap.put("condition", getDepartmentImportForm(templatePath)); break; case "jobtitle": + returnMap.put("condition", getJobTitleImportForm(templatePath)); break; case "resource": // TODO @@ -225,10 +231,11 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ String importType = (String) params.get("importType"); String operateType = (String) params.get("operateType"); String excelFile = (String) params.get("excelfile"); + Map returnMap = new HashMap<>(); if (StringUtils.isNotBlank(importType)) { switch (importType) { case "company": - companyImport(operateType, excelFile, 1L); + returnMap.put("pId", companyImport(operateType, excelFile, 1L)); break; case "department": break; @@ -241,37 +248,99 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ break; } } - return null; + + // 列表 + // importstatus + return returnMap; + } + + @Override + public Map getImportProcessLog(Map params) { + String pId = (String) params.get("pId"); + Map resultMap = new HashMap<>(); + // 刷新引用状态 + OrganizationWeaTable table = new OrganizationWeaTable<>(user, JclImportHistoryDetailVO.class); + String sqlWhere = " where pId = '" + pId + "'"; + table.setSqlwhere(sqlWhere); + WeaResultMsg result = new WeaResultMsg(false); + result.putAll(table.makeDataResult()); + result.success(); + resultMap.putAll(result.getResultMap()); + return resultMap; } /** * 分部导入表单 * - * @param columns + * @param templatePath * @return * @throws IOException */ - private List getCompanyImportForm(String columns) throws IOException { - // 根据选择字段、生成对应的导入模板 - String[] split = columns.split(","); - List columnList = Arrays.asList(split); - List> excelSheetData = new ArrayList<>(); - excelSheetData.add(columnList); - String sheetName = "company"; - String outPutPath = GCONST.getRootPath() + "hrm" + File.separator + "import" + File.separator + "templet" + File.separator + user.getUID(); - XSSFWorkbook sheets = ExcelUtil.genWorkbookV2(excelSheetData, sheetName); - String excelPath = outPutPath + File.separator + sheetName + ".xls"; - File excelPathFile = new File(excelPath); - if (!excelPathFile.exists()) { - String substring = excelPath.substring(0, excelPath.lastIndexOf(File.separator)); - File file = new File(substring); - file.mkdirs(); - excelPathFile.createNewFile(); + private List getCompanyImportForm(String templatePath) throws IOException { + + + // 返回导入数据 + List lsGroup = new ArrayList<>(); + Map groupItem = new HashMap<>(); + List itemList = new ArrayList<>(); + + groupItem.put("title", SystemEnv.getHtmlLabelName(1361, user.getLanguage())); + groupItem.put("defaultshow", true); + + SearchConditionItem searchConditionItem; + ConditionFactory conditionFactory = new ConditionFactory(user); + //导入类型 + List statusOptions = new ArrayList<>(); + statusOptions.add(new SearchConditionOption("add", SystemEnv.getHtmlLabelName(611, user.getLanguage()), true)); + statusOptions.add(new SearchConditionOption("update", SystemEnv.getHtmlLabelName(17744, user.getLanguage()))); + searchConditionItem = conditionFactory.createCondition(ConditionType.SELECT, 24863, "importType", statusOptions); + searchConditionItem.setValue("add"); + itemList.add(searchConditionItem); + + //模板文件 + searchConditionItem = conditionFactory.createCondition(ConditionType.INPUT, 28576, "templet"); + searchConditionItem.setValue(templatePath); + itemList.add(searchConditionItem); + + //Excel文件 + searchConditionItem = conditionFactory.createCondition(ConditionType.RESOURCEIMG, 16630, "excelfile"); + itemList.add(searchConditionItem); + + groupItem.put("items", itemList); + lsGroup.add(groupItem); + + + itemList = new ArrayList<>(); + groupItem = new HashMap<>(); + groupItem.put("title", SystemEnv.getHtmlLabelName(33803, Util.getIntValue(user.getLanguage()))); + groupItem.put("defaultshow", true); + List lsPromptLabel = new ArrayList<>(); //提示信息 + lsPromptLabel.add(34275); + lsPromptLabel.add(125452); + lsPromptLabel.add(125466); + lsPromptLabel.add(522355); + lsPromptLabel.add(522356); + lsPromptLabel.add(522357); + lsPromptLabel.add(530411); + + for (int i = 0; i < lsPromptLabel.size(); i++) { + Map item = new HashMap<>(); + item.put("index", (i + 1)); + String value = Util.toScreen(SystemEnv.getHtmlLabelName(lsPromptLabel.get(i), user.getLanguage()), user.getLanguage()); + if (i == 0) { + value += SystemEnv.getHtmlLabelName(28576, user.getLanguage()); + item.put("link", templatePath); + } + item.put("value", value); + itemList.add(item); } - FileOutputStream out = new FileOutputStream(excelPathFile); - sheets.write(out); - excelPath = "/hrm/import/templet/" + user.getUID() + "/company.xls"; + groupItem.put("items", itemList); + lsGroup.add(groupItem); + return lsGroup; + } + + private List getDepartmentImportForm(String templatePath) throws IOException { // 返回导入数据 List lsGroup = new ArrayList<>(); @@ -293,7 +362,7 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ //模板文件 searchConditionItem = conditionFactory.createCondition(ConditionType.INPUT, 28576, "templet"); - searchConditionItem.setValue(excelPath); + searchConditionItem.setValue(templatePath); itemList.add(searchConditionItem); //Excel文件 @@ -323,7 +392,57 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ String value = Util.toScreen(SystemEnv.getHtmlLabelName(lsPromptLabel.get(i), user.getLanguage()), user.getLanguage()); if (i == 0) { value += SystemEnv.getHtmlLabelName(28576, user.getLanguage()); - item.put("link", excelPath); + item.put("link", templatePath); + } + item.put("value", value); + itemList.add(item); + } + groupItem.put("items", itemList); + lsGroup.add(groupItem); + return lsGroup; + } + + private List getJobTitleImportForm(String templatePath) throws IOException { + + // 返回导入数据 + List lsGroup = new ArrayList<>(); + Map groupItem = new HashMap<>(); + List itemList = new ArrayList<>(); + + groupItem.put("title", SystemEnv.getHtmlLabelName(1361, user.getLanguage())); + groupItem.put("defaultshow", true); + + SearchConditionItem searchConditionItem; + ConditionFactory conditionFactory = new ConditionFactory(user); + + //模板文件 + searchConditionItem = conditionFactory.createCondition(ConditionType.INPUT, 28576, "templet"); + searchConditionItem.setValue(templatePath); + itemList.add(searchConditionItem); + + //Excel文件 + searchConditionItem = conditionFactory.createCondition(ConditionType.RESOURCEIMG, 16630, "excelfile"); + itemList.add(searchConditionItem); + + groupItem.put("items", itemList); + lsGroup.add(groupItem); + + + itemList = new ArrayList<>(); + groupItem = new HashMap<>(); + groupItem.put("title", SystemEnv.getHtmlLabelName(33803, Util.getIntValue(user.getLanguage()))); + groupItem.put("defaultshow", true); + List lsPromptLabel = new ArrayList(); //提示信息 + lsPromptLabel.add(34275); + lsPromptLabel.add(125452); + + for (int i = 0; i < lsPromptLabel.size(); i++) { + Map item = new HashMap<>(); + item.put("index", (i + 1)); + String value = Util.toScreen(SystemEnv.getHtmlLabelName(lsPromptLabel.get(i), user.getLanguage()), user.getLanguage()); + if (i == 0) { + value += SystemEnv.getHtmlLabelName(28576, user.getLanguage()); + item.put("link", templatePath); } item.put("value", value); itemList.add(item); @@ -340,7 +459,7 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ * @param operateType * @param excelFile */ - private void companyImport(String operateType, String excelFile, Long extendType) { + private Long companyImport(String operateType, String excelFile, Long extendType) { Long importHistoryId = saveImportLog("company", operateType); JclImportHistoryDetailPO historyDetailPO; @@ -356,6 +475,7 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ XSSFSheet sheetAt = workbook.getSheetAt(0); int lastRow = sheetAt.getLastRowNum(); List extendInfoPOS = new ArrayList<>(); + OrganizationAssert.isTrue(lastRow > 1, "导入数据为空"); // 遍历每一行数据 @@ -485,7 +605,7 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ } } } - + return importHistoryId; } /** @@ -633,5 +753,35 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ MapperProxyFactory.getProxy(JclImportHistoryDetailMapper.class).insertHistoryDetail(historyDetailPO); } + /** + * 生成导入模板文件 + * + * @param importType + * @param columns + * @return + * @throws IOException + */ + private String getTemplatePath(String importType, String columns) throws IOException { + // 根据选择字段、生成对应的导入模板 + String[] split = columns.split(","); + List columnList = Arrays.asList(split); + 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); + String excelPath = outPutPath + File.separator + importType + ".xls"; + File excelPathFile = new File(excelPath); + if (!excelPathFile.exists()) { + String substring = excelPath.substring(0, excelPath.lastIndexOf(File.separator)); + File file = new File(substring); + file.mkdirs(); + excelPathFile.createNewFile(); + } + FileOutputStream out = new FileOutputStream(excelPathFile); + sheets.write(out); + out.flush(); + excelPath = "/hrm/import/template/" + user.getUID() + "/" + importType + ".xls"; + return excelPath; + } } diff --git a/src/com/engine/organization/web/ImportCommonController.java b/src/com/engine/organization/web/ImportCommonController.java index 32f9764c..5e700c3d 100644 --- a/src/com/engine/organization/web/ImportCommonController.java +++ b/src/com/engine/organization/web/ImportCommonController.java @@ -84,4 +84,18 @@ public class ImportCommonController { return ReturnResult.exceptionHandle(e); } } + + + @GET + @Path("/getImportProcessLog") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getImportProcessLog(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + Map map = ParamUtil.request2Map(request); + return ReturnResult.successed(getImportCommonWrapper(user).getImportProcessLog(map)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e); + } + } } diff --git a/src/com/engine/organization/wrapper/ImportCommonWrapper.java b/src/com/engine/organization/wrapper/ImportCommonWrapper.java index b0975d4a..c1dc44f4 100644 --- a/src/com/engine/organization/wrapper/ImportCommonWrapper.java +++ b/src/com/engine/organization/wrapper/ImportCommonWrapper.java @@ -54,4 +54,14 @@ public class ImportCommonWrapper extends Service { public Map saveImport(Map params) { return getImportCommonService(user).saveImport(params); } + + /** + * 导入错误日志 + * + * @param params + * @return + */ + public Map getImportProcessLog(Map params) { + return getImportCommonService(user).getImportProcessLog(params); + } }