c0cf51512db25e459b929a060e4b2ca579f40fc7.svn-base 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. package org.jeecg.common.util;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.baomidou.mybatisplus.extension.service.IService;
  4. import lombok.extern.slf4j.Slf4j;
  5. import org.jeecg.common.api.vo.Result;
  6. import org.jeecg.common.constant.CommonConstant;
  7. import java.io.File;
  8. import java.io.IOException;
  9. import java.util.List;
  10. /**
  11. * 导出返回信息
  12. */
  13. @Slf4j
  14. public class ImportExcelUtil {
  15. public static Result<?> imporReturnRes(int errorLines,int successLines,List<String> errorMessage) throws IOException {
  16. if (errorLines == 0) {
  17. return Result.ok("共" + successLines + "行数据全部导入成功!");
  18. } else {
  19. JSONObject result = new JSONObject(5);
  20. int totalCount = successLines + errorLines;
  21. result.put("totalCount", totalCount);
  22. result.put("errorCount", errorLines);
  23. result.put("successCount", successLines);
  24. result.put("msg", "总上传行数:" + totalCount + ",已导入行数:" + successLines + ",错误行数:" + errorLines);
  25. String fileUrl = PmsUtil.saveErrorTxtByList(errorMessage, "userImportExcelErrorLog");
  26. int lastIndex = fileUrl.lastIndexOf(File.separator);
  27. String fileName = fileUrl.substring(lastIndex + 1);
  28. result.put("fileUrl", "/sys/common/static/" + fileUrl);
  29. result.put("fileName", fileName);
  30. Result res = Result.ok(result);
  31. res.setCode(201);
  32. res.setMessage("文件导入成功,但有错误。");
  33. return res;
  34. }
  35. }
  36. public static List<String> importDateSave(List<Object> list, Class serviceClass,List<String> errorMessage,String errorFlag) {
  37. IService bean =(IService) SpringContextUtils.getBean(serviceClass);
  38. for (int i = 0; i < list.size(); i++) {
  39. try {
  40. boolean save = bean.save(list.get(i));
  41. if(!save){
  42. throw new Exception(errorFlag);
  43. }
  44. } catch (Exception e) {
  45. String message = e.getMessage().toLowerCase();
  46. int lineNumber = i + 1;
  47. // 通过索引名判断出错信息
  48. if (message.contains(CommonConstant.SQL_INDEX_UNIQ_SYS_ROLE_CODE)) {
  49. errorMessage.add("第 " + lineNumber + " 行:角色编码已经存在,忽略导入。");
  50. } else if (message.contains(CommonConstant.SQL_INDEX_UNIQ_JOB_CLASS_NAME)) {
  51. errorMessage.add("第 " + lineNumber + " 行:任务类名已经存在,忽略导入。");
  52. }else if (message.contains(CommonConstant.SQL_INDEX_UNIQ_CODE)) {
  53. errorMessage.add("第 " + lineNumber + " 行:职务编码已经存在,忽略导入。");
  54. }else if (message.contains(CommonConstant.SQL_INDEX_UNIQ_DEPART_ORG_CODE)) {
  55. errorMessage.add("第 " + lineNumber + " 行:部门编码已经存在,忽略导入。");
  56. }else {
  57. errorMessage.add("第 " + lineNumber + " 行:未知错误,忽略导入");
  58. log.error(e.getMessage(), e);
  59. }
  60. }
  61. }
  62. return errorMessage;
  63. }
  64. public static List<String> importDateSaveOne(Object obj, Class serviceClass,List<String> errorMessage,int i,String errorFlag) {
  65. IService bean =(IService) SpringContextUtils.getBean(serviceClass);
  66. try {
  67. boolean save = bean.save(obj);
  68. if(!save){
  69. throw new Exception(errorFlag);
  70. }
  71. } catch (Exception e) {
  72. String message = e.getMessage().toLowerCase();
  73. int lineNumber = i + 1;
  74. // 通过索引名判断出错信息
  75. if (message.contains(CommonConstant.SQL_INDEX_UNIQ_SYS_ROLE_CODE)) {
  76. errorMessage.add("第 " + lineNumber + " 行:角色编码已经存在,忽略导入。");
  77. } else if (message.contains(CommonConstant.SQL_INDEX_UNIQ_JOB_CLASS_NAME)) {
  78. errorMessage.add("第 " + lineNumber + " 行:任务类名已经存在,忽略导入。");
  79. }else if (message.contains(CommonConstant.SQL_INDEX_UNIQ_CODE)) {
  80. errorMessage.add("第 " + lineNumber + " 行:职务编码已经存在,忽略导入。");
  81. }else if (message.contains(CommonConstant.SQL_INDEX_UNIQ_DEPART_ORG_CODE)) {
  82. errorMessage.add("第 " + lineNumber + " 行:部门编码已经存在,忽略导入。");
  83. }else {
  84. errorMessage.add("第 " + lineNumber + " 行:未知错误,忽略导入");
  85. log.error(e.getMessage(), e);
  86. }
  87. }
  88. return errorMessage;
  89. }
  90. }