diff --git a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/constants/ImportTaskConstants.java b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/constants/ImportTaskConstants.java index d5bdbc67f6..1f7d8420ab 100644 --- a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/constants/ImportTaskConstants.java +++ b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/constants/ImportTaskConstants.java @@ -20,6 +20,7 @@ public interface ImportTaskConstants { String BIZ_TYPE_ATTENTION_TRIP_REPORT = "attention_vaccination"; String BIZ_TYPE_IC_PARTY_MEMBER = "ic_party_member"; String BIZ_TYPE_IC_DANGEROUS_CHEMICALS = "ic_dangerous_chemicals"; + String BIZ_TYPE_IC_ENTERPRISE="ic_enterprise"; /** * 核酸检测 */ diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcEnterpriseController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcEnterpriseController.java index 4c06fae489..8ffd1c54e7 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcEnterpriseController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcEnterpriseController.java @@ -5,23 +5,28 @@ import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.write.metadata.WriteSheet; import com.alibaba.fastjson.JSON; import com.epmet.commons.tools.annotation.LoginUser; +import com.epmet.commons.tools.constant.AppClientConstant; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetException; +import com.epmet.commons.tools.exception.ExceptionUtils; +import com.epmet.commons.tools.feign.ResultDataResolver; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; -import com.epmet.commons.tools.utils.ConvertUtils; -import com.epmet.commons.tools.utils.DateUtils; -import com.epmet.commons.tools.utils.ExcelUtils; -import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.utils.*; import com.epmet.commons.tools.utils.poi.excel.handler.FreezeAndFilter; import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.constants.ImportTaskConstants; import com.epmet.dto.form.EnterpriseFormDTO; import com.epmet.dto.form.EnterprisePageFormDTO; import com.epmet.dto.form.EnterprisePatrolFormDTO; +import com.epmet.dto.form.ImportTaskCommonFormDTO; import com.epmet.dto.result.EnterpriseDetailDTO; import com.epmet.dto.result.EnterprisePatrolResultDTO; +import com.epmet.dto.result.ImportTaskCommonResultDTO; import com.epmet.excel.EnterpriseExportExcelDTO; +import com.epmet.feign.EpmetCommonServiceOpenFeignClient; import com.epmet.service.IcEnterpriseService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; @@ -29,17 +34,17 @@ import org.apache.commons.io.IOUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpHeaders; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; +import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; import java.net.URLEncoder; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.nio.file.Path; +import java.util.*; /** @@ -51,11 +56,12 @@ import java.util.Map; @Slf4j @RestController @RequestMapping("enterprise") -public class IcEnterpriseController { +public class IcEnterpriseController implements ResultDataResolver { @Autowired private IcEnterpriseService icEnterpriseService; - + @Autowired + private EpmetCommonServiceOpenFeignClient commonServiceOpenFeignClient; /** * 企事业单位巡查】新增/编辑 * @@ -221,4 +227,59 @@ public class IcEnterpriseController { public Result> patrolList(@PathVariable("enterpriseId") String enterpriseId) { return new Result>().ok(icEnterpriseService.patrolList(enterpriseId)); } + + /** + * + * @param tokenDto + * @param file + * @return + */ + @PostMapping("import") + public Result importExcel(@LoginUser TokenDto tokenDto, MultipartFile file) { + String userId = EpmetRequestHolder.getHeader(AppClientConstant.USER_ID); + + // 1.暂存文件 + String originalFilename = file.getOriginalFilename(); + String extName = originalFilename.substring(originalFilename.lastIndexOf(".")); + + Path fileSavePath; + try { + Path importPath = FileUtils.getAndCreateDirUnderEpmetFilesDir("ic_enterprise", "import"); + fileSavePath = importPath.resolve(UUID.randomUUID().toString().concat(extName)); + } catch (IOException e) { + String errorMsg = ExceptionUtils.getErrorStackTrace(e); + log.error("【企事业单位】创建临时存储文件失败:{}", errorMsg); + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "文件上传失败", "文件上传失败"); + } + + InputStream is = null; + FileOutputStream os = null; + + try { + is = file.getInputStream(); + os = new FileOutputStream(fileSavePath.toString()); + IOUtils.copy(is, os); + } catch (Exception e) { + log.error("method exception", e); + } finally { + org.apache.poi.util.IOUtils.closeQuietly(is); + org.apache.poi.util.IOUtils.closeQuietly(os); + } + + // 2.生成导入任务记录 + ImportTaskCommonFormDTO importTaskForm = new ImportTaskCommonFormDTO(); + importTaskForm.setOperatorId(userId); + importTaskForm.setBizType(ImportTaskConstants.BIZ_TYPE_IC_ENTERPRISE); + importTaskForm.setOriginFileName(originalFilename); + + ImportTaskCommonResultDTO rstData = getResultDataOrThrowsException(commonServiceOpenFeignClient.createImportTask(importTaskForm), + ServiceConstant.EPMET_COMMON_SERVICE, + EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), + "excel导入企事业单位错误", + "企事业单位导入失败"); + + // 3.执行导入 + icEnterpriseService.execAsyncExcelImport(fileSavePath, rstData.getTaskId(),tokenDto.getCustomerId(),tokenDto.getUserId()); + return new Result(); + } } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/EnterpriseImportExcelDTO.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/EnterpriseImportExcelDTO.java new file mode 100644 index 0000000000..e707674fef --- /dev/null +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/EnterpriseImportExcelDTO.java @@ -0,0 +1,106 @@ +package com.epmet.excel; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + + +/** + * 企事业单位导入 + */ +@Data +public class EnterpriseImportExcelDTO { + + /** + * 场所类型名称 + */ + @NotBlank(message = "场所类型不能为空") + @ExcelProperty(value = "*场所类型") + private String placeTypeName; + + + @NotBlank(message = "场所区域不能为空") + @ExcelProperty(value = "*场所区域") + private String gridName; + + /** + * 场所名称 + */ + @NotBlank(message = "场所名称不能为空") + @ExcelProperty(value = "*场所名称") + private String placeOrgName; + + /** + * 场所地址 + */ + @NotBlank(message = "场所地址不能为空") + @ExcelProperty(value = "*场所地址") + private String address; + + /** + * 规模名称 字典value,场所规模【 + * 0:10人以下 + * 1:10-20人 + * 2:21-40人 + * 3:41-100人 + * 4:100人以上】 + */ + @NotBlank(message = "规模不能为空") + @ExcelProperty(value = "*规模") + private String scaleName; + + /** + * 场所负责人 + */ + @NotBlank(message = "负责人不能为空") + @ExcelProperty(value = "*负责人") + private String personInCharge; + + /** + * 负责人电话 + */ + @NotBlank(message = "联系电话不能为空") + @ExcelProperty(value = "*联系电话") + private String mobile; + + @Data + public static class ErrorRow { + + @ColumnWidth(20) + @ExcelProperty(value = "场所类型") + private String placeTypeName; + + @ColumnWidth(20) + @ExcelProperty(value = "场所区域") + private String gridName; + + @ColumnWidth(20) + @ExcelProperty(value = "场所名称") + private String placeOrgName; + + /** + * 场所地址 + */ + @ColumnWidth(30) + @ExcelProperty(value = "场所地址") + private String address; + + @ColumnWidth(20) + @ExcelProperty(value = "规模") + private String scaleName; + + @ColumnWidth(20) + @ExcelProperty(value = "负责人") + private String personInCharge; + + @ColumnWidth(20) + @ExcelProperty(value = "联系电话") + private String mobile; + + @ColumnWidth(60) + @ExcelProperty("错误信息") + private String errorInfo; + } +} diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/handler/IcEnterpriseExcelImportListener.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/handler/IcEnterpriseExcelImportListener.java new file mode 100644 index 0000000000..a8e149d199 --- /dev/null +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/handler/IcEnterpriseExcelImportListener.java @@ -0,0 +1,136 @@ +package com.epmet.excel.handler; + +import com.alibaba.excel.context.AnalysisContext; +import com.alibaba.excel.read.listener.ReadListener; +import com.epmet.commons.tools.constant.StrConstant; +import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; +import com.epmet.commons.tools.exception.ExceptionUtils; +import com.epmet.commons.tools.exception.ValidateException; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.entity.IcEnterpriseEntity; +import com.epmet.excel.EnterpriseImportExcelDTO; +import com.epmet.service.impl.IcEnterpriseServiceImpl; +import lombok.extern.slf4j.Slf4j; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +@Slf4j +public class IcEnterpriseExcelImportListener implements ReadListener { + //最大条数阈值 + public static final int MAX_THRESHOLD = 200; + private String currentCustomerId; + /** + * 当前操作用户 + */ + private CustomerStaffInfoCacheResult staffInfo; + private IcEnterpriseServiceImpl icEnterpriseServiceImpl; + private Map placeTypeMap; + private Map scaleMap; + private Map gridMap; + //数据 + private List datas = new ArrayList<>(); + + //错误项列表 + private List errorRows = new ArrayList<>(); + + + public IcEnterpriseExcelImportListener(String currentCustomerId, + CustomerStaffInfoCacheResult staffInfoCacheResult, + IcEnterpriseServiceImpl icEnterpriseService, + Map placeTypeMap, + Map scaleMap, + Map gridMap) { + this.currentCustomerId = currentCustomerId; + this.staffInfo = staffInfoCacheResult; + this.icEnterpriseServiceImpl = icEnterpriseService; + this.placeTypeMap=placeTypeMap; + this.scaleMap=scaleMap; + this.gridMap=gridMap; + } + + @Override + public void invoke(EnterpriseImportExcelDTO data, AnalysisContext context) { + + try { + // 不能为空先校验数据 + ValidatorUtils.validateEntity(data); + + // 去除前后空格 + // todo + // 根据网格名是否能找到网格id + // todo + if(!placeTypeMap.containsKey(data.getPlaceTypeName())){ + throw new ValidateException(String.format("%s场所类型不存在",data.getPlaceTypeName())); + } + if(!scaleMap.containsKey(data.getScaleName())){ + throw new ValidateException(String.format("%s规模不存在",data.getScaleName())); + } + IcEnterpriseEntity enterpriseEntity = ConvertUtils.sourceToTarget(data, IcEnterpriseEntity.class); + enterpriseEntity.setCustomerId(currentCustomerId); + //网格id + enterpriseEntity.setGridId("todo"); + + enterpriseEntity.setAgencyId(staffInfo.getAgencyId()); + enterpriseEntity.setAgencyPids(staffInfo.getAgencyPIds()); + //场所类型 + enterpriseEntity.setPlaceType(placeTypeMap.get(data.getPlaceTypeName())); + enterpriseEntity.setLongitude(StrConstant.EPMETY_STR); + enterpriseEntity.setLatitude(StrConstant.EPMETY_STR); + //规模 + enterpriseEntity.setScale(scaleMap.get(data.getScaleName())); + enterpriseEntity.setSourceType("import"); + datas.add(enterpriseEntity); + + if (datas.size() == MAX_THRESHOLD) { + execPersist(); + } + } catch (Exception e) { + String errorMsg = null; + if (e instanceof ValidateException) { + errorMsg = ((ValidateException) e).getMsg(); + } else { + errorMsg = "未知错误"; + log.error("【公共服务管理导入】出错:{}", ExceptionUtils.getErrorStackTrace(e)); + } + EnterpriseImportExcelDTO.ErrorRow errorRow = new EnterpriseImportExcelDTO.ErrorRow(); + errorRow.setPlaceTypeName(data.getPlaceTypeName()); + errorRow.setGridName(data.getGridName()); + errorRow.setPlaceOrgName(data.getPlaceOrgName()); + errorRow.setAddress(data.getAddress()); + errorRow.setScaleName(data.getScaleName()); + errorRow.setPersonInCharge(data.getPersonInCharge()); + errorRow.setMobile(data.getMobile()); + errorRow.setErrorInfo(errorMsg); + errorRows.add(errorRow); + } + } + + @Override + public void doAfterAllAnalysed(AnalysisContext context) { + // 最后几条达不到阈值,这里必须再调用一次 + execPersist(); + } + + /** + * 执行持久化 + */ + private void execPersist() { + try { + icEnterpriseServiceImpl.insertBatch(datas); + } finally { + datas.clear(); + } + } + + /** + * 获取错误行 + * + * @return + */ + public List getErrorRows() { + return errorRows; + } +} diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcEnterpriseService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcEnterpriseService.java index 168a7002f4..f7a29df4ce 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcEnterpriseService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcEnterpriseService.java @@ -9,6 +9,8 @@ import com.epmet.dto.result.EnterpriseDetailDTO; import com.epmet.dto.result.EnterprisePatrolResultDTO; import com.epmet.entity.IcEnterpriseEntity; +import java.nio.file.Path; + /** * 企事业单位表 * @@ -64,4 +66,6 @@ public interface IcEnterpriseService extends BaseService { * @return */ PageData list(EnterprisePageFormDTO formDTO); + + void execAsyncExcelImport(Path fileSavePath, String taskId, String customerId, String userId); } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcEnterpriseServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcEnterpriseServiceImpl.java index 6bacf2fc50..e1dd9cd54b 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcEnterpriseServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcEnterpriseServiceImpl.java @@ -1,6 +1,8 @@ package com.epmet.service.impl; +import com.alibaba.excel.EasyExcel; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.constant.Constant; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; @@ -9,13 +11,16 @@ import com.epmet.commons.tools.enums.CoveragePlaceTypeEnum; import com.epmet.commons.tools.enums.DictTypeEnum; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetException; +import com.epmet.commons.tools.exception.ExceptionUtils; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.redis.common.CustomerOrgRedis; import com.epmet.commons.tools.redis.common.CustomerStaffRedis; import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache; import com.epmet.commons.tools.redis.common.bean.GridInfoCache; import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.FileUtils; import com.epmet.commons.tools.utils.Result; +import com.epmet.constants.ImportTaskConstants; import com.epmet.dao.IcCoverageCategoryDictDao; import com.epmet.dao.IcEnterpriseDao; import com.epmet.dao.IcEnterprisePatrolAttachmentDao; @@ -23,25 +28,46 @@ import com.epmet.dao.IcEnterprisePatrolRecordDao; import com.epmet.dto.form.EnterpriseFormDTO; import com.epmet.dto.form.EnterprisePageFormDTO; import com.epmet.dto.form.EnterprisePatrolFormDTO; +import com.epmet.dto.form.ImportTaskCommonFormDTO; import com.epmet.dto.result.EnterpriseDetailDTO; import com.epmet.dto.result.EnterprisePatrolResultDTO; +import com.epmet.dto.result.IcCoverageCategoryDictListResultDTO; +import com.epmet.dto.result.UploadImgResultDTO; import com.epmet.entity.IcEnterpriseEntity; import com.epmet.entity.IcEnterprisePatrolAttachmentEntity; import com.epmet.entity.IcEnterprisePatrolRecordEntity; +import com.epmet.excel.EnterpriseImportExcelDTO; +import com.epmet.excel.handler.IcEnterpriseExcelImportListener; import com.epmet.feign.EpmetAdminOpenFeignClient; +import com.epmet.feign.EpmetCommonServiceOpenFeignClient; +import com.epmet.feign.OssFeignClient; +import com.epmet.service.CoverageService; import com.epmet.service.IcEnterpriseService; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.MapUtils; +import org.apache.commons.fileupload.FileItem; +import org.apache.commons.fileupload.FileItemFactory; +import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.lang3.StringUtils; +import org.apache.http.entity.ContentType; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.commons.CommonsMultipartFile; +import java.io.IOException; +import java.io.OutputStream; +import java.nio.file.Files; +import java.nio.file.Path; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.UUID; +import java.util.stream.Collectors; /** * 企事业单位表 @@ -49,6 +75,7 @@ import java.util.Map; * @author generator generator@elink-cn.com * @since v1.0.0 2022-06-17 */ +@Slf4j @Service public class IcEnterpriseServiceImpl extends BaseServiceImpl implements IcEnterpriseService { @Autowired @@ -59,6 +86,13 @@ public class IcEnterpriseServiceImpl extends BaseServiceImpl> dictMapRes = adminOpenFeignClient.dictMap(DictTypeEnum.SCALE.getCode()); Map dictMap = dictMapRes.success() && MapUtils.isNotEmpty(dictMapRes.getData()) ? dictMapRes.getData() : new HashMap<>(); @@ -234,12 +272,109 @@ public class IcEnterpriseServiceImpl extends BaseServiceImpl(list, pageInfo.getTotal()); } + @Async + @Override + public void execAsyncExcelImport(Path filePath, String importTaskId,String customerId,String userId) { + try { + //获取当前登录用户所属组织id + CustomerStaffInfoCacheResult staffInfo= queryCurrentStaff(customerId,userId); + + List dictList = coverageService.dictMap(customerId, CoveragePlaceTypeEnum.ENTERPRISE_PATROL.getCode()); + Map placeTypeMap = dictList.stream().collect(Collectors.toMap(IcCoverageCategoryDictListResultDTO::getLabel, IcCoverageCategoryDictListResultDTO::getValue)); + //todo + Map scaleMap=new HashMap<>(); + Map gridMap=new HashMap<>(); + IcEnterpriseExcelImportListener listener = new IcEnterpriseExcelImportListener(customerId,staffInfo, this,placeTypeMap,scaleMap,gridMap); + + EasyExcel.read(filePath.toFile(), EnterpriseImportExcelDTO.class, listener).headRowNumber(2).sheet(0).doRead(); + + Path errorDescFile = null; + String errorDesFileUrl = null; + List errorRows = listener.getErrorRows(); + + boolean failed = errorRows.size() > 0; + if (failed) { + // 生成并上传错误文件 + try { + // 文件生成 + Path errorDescDir = FileUtils.getAndCreateDirUnderEpmetFilesDir("ic_trip_preport", "import", "error_des"); + String fileName = UUID.randomUUID().toString().concat(".xlsx"); + errorDescFile = errorDescDir.resolve(fileName); + + FileItemFactory factory = new DiskFileItemFactory(16, errorDescDir.toFile()); + FileItem fileItem = factory.createItem("file", ContentType.APPLICATION_OCTET_STREAM.toString(), true, fileName); + OutputStream os = fileItem.getOutputStream(); + + EasyExcel.write(os, EnterpriseImportExcelDTO.ErrorRow.class).sheet("导入失败列表").doWrite(errorRows); + + // 文件上传oss + Result errorDesFileUploadResult = ossFeignClient.uploadImportTaskDescFile(new CommonsMultipartFile(fileItem)); + if (errorDesFileUploadResult.success()) { + errorDesFileUrl = errorDesFileUploadResult.getData().getUrl(); + } + } finally { + if (Files.exists(errorDescFile)) { + Files.delete(errorDescFile); + } + } + } + + ImportTaskCommonFormDTO importFinishTaskForm = new ImportTaskCommonFormDTO(); + importFinishTaskForm.setTaskId(importTaskId); + importFinishTaskForm.setProcessStatus(failed ? ImportTaskConstants.PROCESS_STATUS_FINISHED_FAIL : ImportTaskConstants.PROCESS_STATUS_FINISHED_SUCCESS); + importFinishTaskForm.setOperatorId(userId); + importFinishTaskForm.setResultDesc(""); + importFinishTaskForm.setResultDescFilePath(errorDesFileUrl); + + Result result = commonServiceOpenFeignClient.finishImportTask(importFinishTaskForm); + if (!result.success()) { + log.error("【企事业单位导入】finishImportTask失败"); + } + } catch (Exception e) { + String errorMsg = ExceptionUtils.getErrorStackTrace(e); + log.error("【企事业单位导入】出错:{}", errorMsg); + + ImportTaskCommonFormDTO importFinishTaskForm = new ImportTaskCommonFormDTO(); + importFinishTaskForm.setTaskId(importTaskId); + importFinishTaskForm.setProcessStatus(ImportTaskConstants.PROCESS_STATUS_FINISHED_FAIL); + importFinishTaskForm.setOperatorId(userId); + importFinishTaskForm.setResultDesc("导入失败"); + + Result result = commonServiceOpenFeignClient.finishImportTask(importFinishTaskForm); + if (!result.success()) { + log.error("【企事业单位导入】导入记录状态修改为'完成'失败"); + } + } finally { + // 删除临时文件 + if (Files.exists(filePath)) { + try { + Files.delete(filePath); + } catch (IOException e) { + log.error("method exception", e); + } + } + } + + } + + private CustomerStaffInfoCacheResult queryCurrentStaff(String customerId, String userId) { + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(customerId, userId); + if (null == staffInfo) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "查询工作人员缓存信息异常", EpmetErrorCode.SERVER_ERROR.getMsg()); + } + return staffInfo; + } + } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/handler/IcTripReportExcelImportListener.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/handler/IcTripReportExcelImportListener.java index 20e9ed3dc5..2831eb532c 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/handler/IcTripReportExcelImportListener.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/handler/IcTripReportExcelImportListener.java @@ -27,7 +27,7 @@ public class IcTripReportExcelImportListener implements ReadListener