From 4227ad9d4530ffc68188e0f1134d34248711a209 Mon Sep 17 00:00:00 2001 From: "shuo.wang" Date: Fri, 16 May 2025 15:25:58 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E5=A4=84=E7=90=86=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cool/store/service/DataHandlerServer.java | 5 + .../service/impl/DataHandlerServerImpl.java | 300 ++++++++++++++++++ 2 files changed, 305 insertions(+) diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/DataHandlerServer.java b/coolstore-partner-service/src/main/java/com/cool/store/service/DataHandlerServer.java index 32ea2a8c8..5cdccee95 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/DataHandlerServer.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/DataHandlerServer.java @@ -27,4 +27,9 @@ public interface DataHandlerServer { //装修数据初始化 Boolean decorationDataInit(); + + //处理2024年10-12月数据 + Boolean dataHandlerV20241012(List> dataMapList, String originalFilename, LoginUserInfo user, + ImportTaskDO task); + } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DataHandlerServerImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DataHandlerServerImpl.java index 5f4233690..2b8f1326a 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DataHandlerServerImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DataHandlerServerImpl.java @@ -562,6 +562,306 @@ public class DataHandlerServerImpl implements DataHandlerServer { return true; } + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean dataHandlerV20241012(List> dataMapList, String originalFilename, LoginUserInfo user, ImportTaskDO task) { + + List list = new ArrayList<>(); + List errorList = new ArrayList<>(); + ListUtils.emptyIfNull(dataMapList) + .forEach(data -> { + try { + ImportOaOldShopDataDTO dto = buildColumn(data); + list.add(dto); + } catch (Exception e) { + log.info("importOaOldShopData 转化dto error:{}", JSONObject.toJSONString(data)); + } + }); + log.info("导入数据条数:{}", list.size()); + if (CollectionUtils.isEmpty(list)) { + log.info("导入数据转化为空"); + return false; + } + List shopCodeList = list.stream().map(ImportOaOldShopDataDTO::getShopCode).collect(Collectors.toList()); + Map dotMap = list.stream().collect(Collectors.toMap(ImportOaOldShopDataDTO::getShopCode, item -> item)); + List shopInfoList = shopInfoDAO.selectByShopCodeList(shopCodeList); + if (CollectionUtils.isEmpty(shopInfoList)) { + log.info("导入数据根据shopCode 未找到数据"); + } + Map shopInfoByCodeMap = shopInfoList.stream().collect(Collectors.toMap(ShopInfoDO::getShopCode, item -> item)); + List shopIds = shopInfoList.stream().map(ShopInfoDO::getId).collect(Collectors.toList()); + List lineIdList = shopInfoList.stream().map(ShopInfoDO::getLineId).collect(Collectors.toList()); + //装修验收数据 + acceptanceInfoDAO.selectByShopIds(shopIds); + //手机号 + Map lineMobileMap = lineInfoDAO.getLineMobileMap(lineIdList); + //铺位列表 + List pointIds = shopInfoList.stream().map(ShopInfoDO::getPointId).filter(Objects::nonNull).collect(Collectors.toList()); + List pointListByIds = pointInfoDAO.getPointListByIds(pointIds); + Map pointMap = pointListByIds.stream().collect(Collectors.toMap(PointInfoDO::getId, Function.identity())); + //铺位详情 + List pointDetailInfoDOList = pointDetailInfoDAO.getByPointIdList(pointIds); + Map pointDetailMap = pointDetailInfoDOList.stream().collect(Collectors.toMap(PointDetailInfoDO::getPointId, Function.identity())); + //合同列表 + List signFranchiseDOS = signFranchiseMapper.selectAllByShopIds(shopIds); + Map signFranchiseMap = signFranchiseDOS.stream().collect(Collectors.toMap(SignFranchiseDO::getShopId, Function.identity())); + //订货信息和总部订货收款账户表 + List orderSysInfoDOS = orderSysInfoDAO.selectByShopIdList(shopIds); + Map orderSysInfoMap = orderSysInfoDOS.stream().collect(Collectors.toMap(OrderSysInfoDO::getShopId, Function.identity())); + //合同阶段 + List signFranchiseStageList = shopStageInfoDAO.getSubStageList(shopIds, ShopSubStageEnum.SHOP_STAGE_8.getShopSubStage()); + Map signFranchiseStageMap = signFranchiseStageList.stream().collect(Collectors.toMap(ShopStageInfoDO::getShopId, Function.identity())); + //建店资料收集阶段 + List bulidStageList = shopStageInfoDAO.getSubStageList(shopIds, ShopSubStageEnum.SHOP_STAGE_15.getShopSubStage()); + Map bulidStageMap = bulidStageList.stream().collect(Collectors.toMap(ShopStageInfoDO::getShopId, Function.identity())); + //加盟费阶段 + List franchiseFeeStageList = shopStageInfoDAO.getSubStageList(shopIds, ShopSubStageEnum.SHOP_STAGE_7.getShopSubStage()); + Map franchiseFeeStageMap = franchiseFeeStageList.stream().collect(Collectors.toMap(ShopStageInfoDO::getShopId, Function.identity())); + //加盟费账单 + List franchiseFeeByShopIds = franchiseFeeMapper.getFranchiseFeeByShopIds(shopIds); + Map franchiseFeeMap = franchiseFeeByShopIds.stream().collect(Collectors.toMap(FranchiseFeeDO::getShopId, Function.identity())); + //建店资料 + List buildInformationDOList = buildInformationDAO.getSpecificByShopIdList(shopIds); + Map buildInformationMap = buildInformationDOList.stream().collect(Collectors.toMap(BuildInformationDO::getShopId, Function.identity())); + //初始化建店资料 + List addBuildList = new ArrayList<>(); + //初始化订货信息和总部订货收款账户表 + List addOrderSysInfoList = new ArrayList<>(); + //报货仓库 + List warehouseInfoMapperAll = warehouseInfoMapper.getAll(); + Map warehouseInfoMap = warehouseInfoMapperAll.stream().collect(Collectors.toMap(WarehouseInfoDO::getWarehouseName, WarehouseInfoDO::getWarehouseCode)); + //订货系统 + List orderSysInfoDOList = posAndOrderInfoDAO.selectListByShopIdAndType(shopIds, PosAndOrderEnum.ORDER.getCode()); + Map orderSysInfoDOMap = orderSysInfoDOList.stream().collect(Collectors.toMap(PosAndOrderInfoDO::getShopId, Function.identity())); + List addPosAndOrderInfoList = new ArrayList<>(); + //pos系统 + List posSysInfoDOList = posAndOrderInfoDAO.selectListByShopIdAndType(shopIds, PosAndOrderEnum.POS.getCode()); + Map posSysInfoDOMap = posSysInfoDOList.stream().collect(Collectors.toMap(PosAndOrderInfoDO::getShopId, Function.identity())); + //装修阶段需要变更的shopId + List fitmentFhopIdList = new ArrayList<>(); + //建店阶段完成时间 + List updateBuildStageList = new ArrayList<>(); + for (ImportOaOldShopDataDTO dto : list) { + if (!check(dto, errorList)) { + continue; + } + ShopInfoDO shopInfoDO = shopInfoByCodeMap.get(dto.getShopCode().trim()); + if (Objects.isNull(shopInfoDO)) { + log.info("门店不存在,门店编码:{}", dto.getShopCode()); + ImportOaOldShopDataErrorDTO errorDTO = new ImportOaOldShopDataErrorDTO(); + errorDTO.setShopCode(dto.getShopCode()); + errorDTO.setErrorReason("门店编码不存在"); + errorList.add(errorDTO); + continue; + } + Long shopId = shopInfoDO.getId(); + ShopStageInfoDO franchiseFeeStage = franchiseFeeStageMap.get(shopId); + if (!franchiseFeeStage.getIsTerminated()) { + log.info("门店未完成加盟费阶段,门店编码:{}", dto.getShopCode()); + ImportOaOldShopDataErrorDTO errorDTO = new ImportOaOldShopDataErrorDTO(); + errorDTO.setShopCode(dto.getShopCode()); + errorDTO.setErrorReason("门店未完成加盟费阶段"); + errorList.add(errorDTO); + continue; + } + ShopStageInfoDO signStage = signFranchiseStageMap.get(shopId); + if (!ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_84.getShopSubStageStatus().equals(signStage.getShopSubStageStatus())) { + log.info("门店未完成合同签约,门店编码:{}", dto.getShopCode()); + ImportOaOldShopDataErrorDTO errorDTO = new ImportOaOldShopDataErrorDTO(); + errorDTO.setShopCode(dto.getShopCode()); + errorDTO.setErrorReason("门店未完成合同签约"); + errorList.add(errorDTO); + continue; + } + Date buildEndTime = DateUtils.toDate(YYYY_MM_DD, dto.getBuildEndTime()); + if (Objects.isNull(buildEndTime)) { + ImportOaOldShopDataErrorDTO errorDTO = new ImportOaOldShopDataErrorDTO(); + errorDTO.setShopCode(dto.getShopCode()); + errorDTO.setErrorReason("建店资料时间转化失败"); + errorList.add(errorDTO); + continue; + } + //合同 + SignFranchiseDO signFranchiseDO = signFranchiseMap.get(shopId); + if (signFranchiseDO == null) { + ImportOaOldShopDataErrorDTO errorDTO = new ImportOaOldShopDataErrorDTO(); + errorDTO.setShopCode(dto.getShopCode()); + errorDTO.setErrorReason("合同DO不存在"); + errorList.add(errorDTO); + continue; + } + FranchiseFeeDO franchiseFeeDO = franchiseFeeMap.get(shopId); + if (franchiseFeeDO == null) { + ImportOaOldShopDataErrorDTO errorDTO = new ImportOaOldShopDataErrorDTO(); + errorDTO.setShopCode(dto.getShopCode()); + errorDTO.setErrorReason("加盟费DO不存在"); + errorList.add(errorDTO); + continue; + } + if (StringUtil.isNotBlank(dto.getPartnershipSignatorySecond())) { + signFranchiseDO.setPartnershipSignatorySecond(dto.getPartnershipSignatorySecond().trim()); + } + if (StringUtil.isNotBlank(dto.getPartnershipSignatorySecondMobile())) { + signFranchiseDO.setPartnershipSignatorySecondMobile(dto.getPartnershipSignatorySecondMobile().trim()); + } + if (StringUtil.isNotBlank(dto.getPartnershipSignatorySecondIdNumber())) { + signFranchiseDO.setPartnershipSignatorySecondIdNumber(dto.getPartnershipSignatorySecondIdNumber()); + } + if (StringUtil.isNotBlank(dto.getContractStartDate())) { + signFranchiseDO.setContractStartTime(DateUtils.toDate(YYYY_MM_DD, dto.getContractStartDate().trim())); + } + if (StringUtil.isNotBlank(dto.getContractEndDate())) { + signFranchiseDO.setContractEndTime(DateUtils.toDate(YYYY_MM_DD, dto.getContractEndDate().trim())); + } + if ((StringUtil.isNotBlank(dto.getIntroducer()) && !"0".equals(dto.getIntroducer()))) { + signFranchiseDO.setIntroducer(dto.getIntroducer()); + } + if (StringUtil.isNotBlank(dto.getIntroduceStore()) && !"0".equals(dto.getIntroduceStore())) { + signFranchiseDO.setIntroduceStore(dto.getIntroduceStore()); + } + if (StringUtil.isNotBlank(dto.getIntroductionAward())) { + signFranchiseDO.setIntroductionAward(dto.getIntroductionAward()); + } + if (StringUtil.isNotBlank(dto.getContractCode()) && dto.getContractCode().trim().startsWith("ZX") && dto.getContractCode().trim() != "0") { + signFranchiseDO.setContractCode(dto.getContractCode().trim()); + } + if (StringUtil.isNotBlank(dto.getProtectionDistance())) { + signFranchiseDO.setProtectiveDistance((int) Double.parseDouble(dto.getProtectionDistance().trim())); + } + ShopStageInfoDO buildStage = bulidStageMap.get(shopId); + //建店资料未完成 + BuildStageDTO buildStageDTO = new BuildStageDTO(); + buildStageDTO.setShopId(shopId); + buildStageDTO.setEndTime(dto.getBuildEndTime() + " 00:00:00"); + updateBuildStageList.add(buildStageDTO); + //建店资料阶段处理 + shopStageInfoDAO.dataUpdateShopStageInfo(Collections.singletonList(buildStageDTO), ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_156); + if (!ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_156.getShopSubStageStatus().equals(buildStage.getShopSubStageStatus())) { + //初始化数据 + preparationService.licenseCompleted(shopId); + preparationService.sysStoreCompleted(shopId); + preparationService.buildStoreAndDecorationComplete(shopId); + preparationService.selectSiteAndBuildStoreComplete(shopId); + preparationService.buildStoreComplete(shopId); + } + if (buildEndTime.before(new Date(1745164800000L))) { + fitmentFhopIdList.add(shopId); + } + BuildInformationDO buildInformationDO = buildInformationMap.get(shopId); + if (Objects.isNull(buildInformationDO)) { + addBuildList.add(shopId); + } + OrderSysInfoDO orderSysInfoDO = orderSysInfoMap.get(shopId); + //报货物流仓库 + String warehouseCode = warehouseInfoMap.get(dto.getDeclareGoodsLogisticsWarehouseName().trim()); + if (Objects.isNull(orderSysInfoDO)) { + orderSysInfoDO = new OrderSysInfoDO(); + orderSysInfoDO.setShopId(shopId); + orderSysInfoDO.setOrderCreateTime(new Date()); + orderSysInfoDO.setReceivingCreateTime(new Date()); + setOrderInfo(dto, orderSysInfoDO, warehouseCode); + addOrderSysInfoList.add(orderSysInfoDO); + } else { + setOrderInfo(dto, orderSysInfoDO, warehouseCode); + } + //shopInfo + shopInfoDO.setShopName(dto.getShopName().trim()); + shopInfoDO.setProvince(dto.getProvince().trim()); + shopInfoDO.setCity(dto.getCity().trim()); + shopInfoDO.setDistrict(dto.getDistrict().trim()); + shopInfoDO.setDetailAddress(dto.getShopAddress().trim()); + //point + PointInfoDO pointInfoDO = pointMap.get(shopInfoDO.getPointId()); + if (pointInfoDO != null) { + pointInfoDO.setProvince(dto.getProvince().trim()); + pointInfoDO.setCity(dto.getCity().trim()); + pointInfoDO.setDistrict(dto.getDistrict().trim()); + pointInfoDO.setAddress(dto.getShopAddress().trim()); + pointInfoDO.setPointArea(dto.getPointArea().trim()); + } + PointDetailInfoDO pointDetailInfoDO = pointDetailMap.get(shopInfoDO.getPointId()); + if (pointDetailInfoDO != null) { + if (StringUtil.isNotBlank(dto.getMonthRent())) { + pointDetailInfoDO.setMonthRent(dto.getMonthRent().trim()); + } + } + // 更新加盟费账单 + franchiseFeeDO.setYearFranchiseFee(dto.getYearFranchiseFee().trim()); + franchiseFeeDO.setLoanMargin(dto.getLoanMargin().trim()); + franchiseFeeDO.setFirstYearFee(dto.getFirstYearFee().trim()); + franchiseFeeDO.setFirstYearManageFee(dto.getFirstYearManageFee().trim()); + franchiseFeeDO.setPerformanceBond(dto.getPerformanceBond().trim()); + franchiseFeeDO.setDiscountReason(dto.getDiscountReason().trim()); + //订货系统 + PosAndOrderInfoDO order = orderSysInfoDOMap.get(shopId); + if (StringUtil.isNotBlank(dto.getYlsAccount())) { + if (Objects.isNull(order)) { + order = new PosAndOrderInfoDO(); + order.setShopId(shopId); + order.setType(PosAndOrderEnum.ORDER.getCode()); + order.setRemark("已为您开通订货系统账号和密码,密码已加密,初始密码为888888,可通过加盟小程序修改密码!"); + order.setAccount(dto.getYlsAccount().trim()); + order.setPassword("888888"); + order.setCreateTime(new Date()); + addPosAndOrderInfoList.add(order); + } + } + //pos + PosAndOrderInfoDO posDO = posSysInfoDOMap.get(shopId); + if (Objects.isNull(posDO)) { + posDO = new PosAndOrderInfoDO(); + posDO.setShopId(shopId); + posDO.setType(PosAndOrderEnum.POS.getCode()); + posDO.setAccount(lineMobileMap.getOrDefault(shopInfoDO.getLineId(), "")); + posDO.setRemark("已为您开通POS系统账号和密码"); + posDO.setCreateTime(new Date()); + addPosAndOrderInfoList.add(posDO); + } + } + shopInfoDAO.updateShopCity(shopInfoList); + pointInfoDAO.updateAddress(pointListByIds); + pointDetailInfoDAO.updateMonthRent(pointDetailInfoDOList); + signFranchiseDAO.updateSpecific(signFranchiseDOS); + posAndOrderInfoDAO.batchInsert(addPosAndOrderInfoList); + orderSysInfoDAO.batchUpdateSpecific(orderSysInfoDOS); + orderSysInfoDAO.batchInsertSpecific(addOrderSysInfoList); + franchiseFeeDAO.updateBill(franchiseFeeByShopIds); + buildInformationDAO.batchInsertSpecific(addBuildList); + if (CollectionUtils.isNotEmpty(updateBuildStageList)) { + List updateStageShopIds = updateBuildStageList.stream().map(BuildStageDTO::getShopId).collect(Collectors.toList()); + //pos阶段完成 + shopStageInfoDAO.dataUpdateStatus(updateStageShopIds, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_163); + // 订货阶段 完成 + shopStageInfoDAO.dataUpdateStatus(updateStageShopIds, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_173); + //数据处理用平台账号 火马,云流水,新掌柜状态改为已完成 + shopAccountDAO.updateStatusDataHandle(updateStageShopIds); + } + //表中4月20号后的数据,数据录入系统,新店装修阶段状态不变更 其他时间的数据状态改为已完成 不包括装修验收 + shopStageInfoDAO.dataUpdateStatus(fitmentFhopIdList, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_863); + shopStageInfoDAO.dataUpdateStatus(fitmentFhopIdList, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_91); + shopStageInfoDAO.dataUpdateStatus(fitmentFhopIdList, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_112); + //装修验收初始化 + shopStageInfoDAO.dataUpdateAcceptanceStatus(fitmentFhopIdList, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_121); + if (!errorList.isEmpty()) { + task.setStatus(ImportTaskStatusEnum.ERROR.getCode()); + String url = null; + try { + url = easyExcelUtil.exportExcel(ImportOaOldShopDataErrorDTO.class, errorList, null, + FileTypeEnum.IMPORT_OA_OLD_SHOP_DATA_ERROR.getDesc() + DateUtils.parseDateToStr(SPECIAL_DATE_START_1, new Date()), + FileTypeEnum.IMPORT_OA_OLD_SHOP_DATA_ERROR.getDesc() + DateUtils.parseDateToStr(SPECIAL_DATE_START_1, new Date())); + } catch (Exception e) { + log.info("导出失败列表失败 errorList:{}", JSONObject.toJSONString(errorList)); + } + task.setFileUrl(url); + } else { + task.setStatus(ImportTaskStatusEnum.SUCCESS.getCode()); + } + task.setTotalNum(dataMapList.size()); + task.setSuccessNum(dataMapList.size() - errorList.size()); + importTaskMapper.update(eid, task); + return null; + } + private static boolean check(ImportOaOldShopDataDTO dto, List errorList) { if (StringUtil.isBlank(dto.getShopCode())) { ImportOaOldShopDataErrorDTO errorDTO = new ImportOaOldShopDataErrorDTO(); From 4d37951e46b53f87ad14b34dc058499a05b6b2b1 Mon Sep 17 00:00:00 2001 From: "shuo.wang" Date: Fri, 16 May 2025 17:18:21 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E6=8E=A8=E6=95=B0=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E4=BA=91=E6=B5=81=E6=B0=B4=E8=B4=A6=E5=8F=B7=E5=8A=A0=E5=89=8D?= =?UTF-8?q?=E7=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/DataHandlerServerImpl.java | 34 ++++++++++++++++--- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DataHandlerServerImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DataHandlerServerImpl.java index 2b8f1326a..0c6342010 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DataHandlerServerImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DataHandlerServerImpl.java @@ -592,7 +592,8 @@ public class DataHandlerServerImpl implements DataHandlerServer { List shopIds = shopInfoList.stream().map(ShopInfoDO::getId).collect(Collectors.toList()); List lineIdList = shopInfoList.stream().map(ShopInfoDO::getLineId).collect(Collectors.toList()); //装修验收数据 - acceptanceInfoDAO.selectByShopIds(shopIds); + List acceptanceInfoDOList = acceptanceInfoDAO.selectByShopIds(shopIds); + Map acceptanceInfoMap = acceptanceInfoDOList.stream().collect(Collectors.toMap(AcceptanceInfoDO::getShopId, item -> item)); //手机号 Map lineMobileMap = lineInfoDAO.getLineMobileMap(lineIdList); //铺位列表 @@ -637,10 +638,18 @@ public class DataHandlerServerImpl implements DataHandlerServer { //pos系统 List posSysInfoDOList = posAndOrderInfoDAO.selectListByShopIdAndType(shopIds, PosAndOrderEnum.POS.getCode()); Map posSysInfoDOMap = posSysInfoDOList.stream().collect(Collectors.toMap(PosAndOrderInfoDO::getShopId, Function.identity())); + //新发系统 + List xfSysDOList = posAndOrderInfoDAO.selectListByShopIdAndType(shopIds, PosAndOrderEnum.XIN_FA_SYS.getCode()); + Map xfSysInfoDOMap = posSysInfoDOList.stream().collect(Collectors.toMap(PosAndOrderInfoDO::getShopId, Function.identity())); + //营帐通系统 + List tentPassInfoDOList = posAndOrderInfoDAO.selectListByShopIdAndType(shopIds, PosAndOrderEnum.TENT_PASS.getCode()); + Map tentPassInfoDOMap = posSysInfoDOList.stream().collect(Collectors.toMap(PosAndOrderInfoDO::getShopId, Function.identity())); //装修阶段需要变更的shopId List fitmentFhopIdList = new ArrayList<>(); //建店阶段完成时间 List updateBuildStageList = new ArrayList<>(); + //装修验收表需要初始化的门店 + List initFitmentShopIdList = new ArrayList<>(); for (ImportOaOldShopDataDTO dto : list) { if (!check(dto, errorList)) { continue; @@ -744,9 +753,7 @@ public class DataHandlerServerImpl implements DataHandlerServer { preparationService.selectSiteAndBuildStoreComplete(shopId); preparationService.buildStoreComplete(shopId); } - if (buildEndTime.before(new Date(1745164800000L))) { - fitmentFhopIdList.add(shopId); - } + fitmentFhopIdList.add(shopId); BuildInformationDO buildInformationDO = buildInformationMap.get(shopId); if (Objects.isNull(buildInformationDO)) { addBuildList.add(shopId); @@ -817,6 +824,25 @@ public class DataHandlerServerImpl implements DataHandlerServer { posDO.setCreateTime(new Date()); addPosAndOrderInfoList.add(posDO); } + //xf + //订货系统 + PosAndOrderInfoDO xf = orderSysInfoDOMap.get(shopId); + if (StringUtil.isNotBlank(dto.getYlsAccount())) { + if (Objects.isNull(order)) { + order = new PosAndOrderInfoDO(); + order.setShopId(shopId); + order.setType(PosAndOrderEnum.ORDER.getCode()); + order.setRemark("已为您开通订货系统账号和密码,密码已加密,初始密码为888888,可通过加盟小程序修改密码!"); + order.setAccount(dto.getYlsAccount().trim()); + order.setPassword("888888"); + order.setCreateTime(new Date()); + addPosAndOrderInfoList.add(order); + } + } + AcceptanceInfoDO acceptanceInfoDO = acceptanceInfoMap.get(shopId); + if (Objects.isNull(acceptanceInfoDO)){ + initFitmentShopIdList.add(shopId); + } } shopInfoDAO.updateShopCity(shopInfoList); pointInfoDAO.updateAddress(pointListByIds); From 058a9bc25043b642de7fca164762102eec780d16 Mon Sep 17 00:00:00 2001 From: "shuo.wang" Date: Mon, 19 May 2025 13:55:53 +0800 Subject: [PATCH 3/4] fix --- .../com/cool/store/enums/FileTypeEnum.java | 2 +- .../resources/mapper/ShopAccountMapper.xml | 2 +- .../service/impl/DataHandlerServerImpl.java | 81 +++++++++++-------- .../webb/DataHandlerController.java | 25 ++++++ 4 files changed, 74 insertions(+), 36 deletions(-) diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/FileTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/FileTypeEnum.java index 988a47875..f19f046b6 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/FileTypeEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/FileTypeEnum.java @@ -21,7 +21,7 @@ public enum FileTypeEnum { IMPORT_OA_OLD_SHOP_DATA_ERROR("OaOldShopDataError", "导入OA旧数据错误列表"), IMPORT_OA_OLD_SHOP_DATA("importOaOldShopData", "导入OA旧数据"), ZXJP_OPEN_SHOP_REPORT("zxjpOpenShopReport","正新鸡排开店"), - IMPORT_OA_OLD_SHOP_STAGE_DATA("importOaOldShopStageData", "导入OA旧数据"), + IMPORT_OA_OLD_SHOP_STAGE_DATA("importOaOldShopStageData", "导入OA旧阶段数据"), IMPORT_OA_OLD_SHOP_STAGE_DATA_ERROR("OaOldShopStageDataError", "导入OA旧数据阶段错误列表"), ; private String fileType; diff --git a/coolstore-partner-dao/src/main/resources/mapper/ShopAccountMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/ShopAccountMapper.xml index e95239009..4b6a80586 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/ShopAccountMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/ShopAccountMapper.xml @@ -192,7 +192,7 @@ #{shopId} - and system_name in ('火码POS','云流水','新掌柜') + and system_name in ('火码POS','云流水','新掌柜') and status !=5 diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DataHandlerServerImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DataHandlerServerImpl.java index 0c6342010..a067d4977 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DataHandlerServerImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DataHandlerServerImpl.java @@ -548,15 +548,15 @@ public class DataHandlerServerImpl implements DataHandlerServer { List allShopIds = acceptanceInfoDAO.getAllShopIds(); //需要处理的门店 List addShopIds = new ArrayList<>(); - for (ShopStageInfoDO subStage : subStages){ - if (ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_112.getShopSubStageStatus().equals(subStage.getShopSubStageStatus())){ - if (!allShopIds.contains(subStage.getShopId())){ + for (ShopStageInfoDO subStage : subStages) { + if (ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_112.getShopSubStageStatus().equals(subStage.getShopSubStageStatus())) { + if (!allShopIds.contains(subStage.getShopId())) { addShopIds.add(subStage.getShopId()); } } } - if (CollectionUtils.isEmpty(addShopIds)){ - throw new ServiceException(ErrorCodeEnum.PARAMS_VALIDATE_ERROR); + if (CollectionUtils.isEmpty(addShopIds)) { + throw new ServiceException(ErrorCodeEnum.PARAMS_VALIDATE_ERROR); } acceptanceInfoDAO.initAcceptanceInfo(addShopIds); return true; @@ -574,7 +574,7 @@ public class DataHandlerServerImpl implements DataHandlerServer { ImportOaOldShopDataDTO dto = buildColumn(data); list.add(dto); } catch (Exception e) { - log.info("importOaOldShopData 转化dto error:{}", JSONObject.toJSONString(data)); + log.info("dataHandlerV20241012 转化dto error:{}", JSONObject.toJSONString(data)); } }); log.info("导入数据条数:{}", list.size()); @@ -640,10 +640,10 @@ public class DataHandlerServerImpl implements DataHandlerServer { Map posSysInfoDOMap = posSysInfoDOList.stream().collect(Collectors.toMap(PosAndOrderInfoDO::getShopId, Function.identity())); //新发系统 List xfSysDOList = posAndOrderInfoDAO.selectListByShopIdAndType(shopIds, PosAndOrderEnum.XIN_FA_SYS.getCode()); - Map xfSysInfoDOMap = posSysInfoDOList.stream().collect(Collectors.toMap(PosAndOrderInfoDO::getShopId, Function.identity())); + Map xfSysInfoDOMap = xfSysDOList.stream().collect(Collectors.toMap(PosAndOrderInfoDO::getShopId, Function.identity())); //营帐通系统 List tentPassInfoDOList = posAndOrderInfoDAO.selectListByShopIdAndType(shopIds, PosAndOrderEnum.TENT_PASS.getCode()); - Map tentPassInfoDOMap = posSysInfoDOList.stream().collect(Collectors.toMap(PosAndOrderInfoDO::getShopId, Function.identity())); + Map tentPassInfoDOMap = tentPassInfoDOList.stream().collect(Collectors.toMap(PosAndOrderInfoDO::getShopId, Function.identity())); //装修阶段需要变更的shopId List fitmentFhopIdList = new ArrayList<>(); //建店阶段完成时间 @@ -825,22 +825,28 @@ public class DataHandlerServerImpl implements DataHandlerServer { addPosAndOrderInfoList.add(posDO); } //xf - //订货系统 - PosAndOrderInfoDO xf = orderSysInfoDOMap.get(shopId); - if (StringUtil.isNotBlank(dto.getYlsAccount())) { - if (Objects.isNull(order)) { - order = new PosAndOrderInfoDO(); - order.setShopId(shopId); - order.setType(PosAndOrderEnum.ORDER.getCode()); - order.setRemark("已为您开通订货系统账号和密码,密码已加密,初始密码为888888,可通过加盟小程序修改密码!"); - order.setAccount(dto.getYlsAccount().trim()); - order.setPassword("888888"); - order.setCreateTime(new Date()); - addPosAndOrderInfoList.add(order); - } + PosAndOrderInfoDO xf = xfSysInfoDOMap.get(shopId); + if (Objects.isNull(xf)) { + order = new PosAndOrderInfoDO(); + order.setShopId(shopId); + order.setType(PosAndOrderEnum.XIN_FA_SYS.getCode()); + order.setRemark("已为您开通信发系统账号和授权码请妥善保管"); + order.setAccount(dto.getShopCode().trim()); + order.setCreateTime(new Date()); + addPosAndOrderInfoList.add(order); + } + //营帐通 + PosAndOrderInfoDO yzt = tentPassInfoDOMap.get(shopId); + if (Objects.isNull(yzt)) { + order = new PosAndOrderInfoDO(); + order.setShopId(shopId); + order.setType(PosAndOrderEnum.TENT_PASS.getCode()); + order.setRemark("已为您开通营帐通"); + order.setCreateTime(new Date()); + addPosAndOrderInfoList.add(order); } AcceptanceInfoDO acceptanceInfoDO = acceptanceInfoMap.get(shopId); - if (Objects.isNull(acceptanceInfoDO)){ + if (Objects.isNull(acceptanceInfoDO)) { initFitmentShopIdList.add(shopId); } } @@ -853,21 +859,28 @@ public class DataHandlerServerImpl implements DataHandlerServer { orderSysInfoDAO.batchInsertSpecific(addOrderSysInfoList); franchiseFeeDAO.updateBill(franchiseFeeByShopIds); buildInformationDAO.batchInsertSpecific(addBuildList); - if (CollectionUtils.isNotEmpty(updateBuildStageList)) { - List updateStageShopIds = updateBuildStageList.stream().map(BuildStageDTO::getShopId).collect(Collectors.toList()); - //pos阶段完成 - shopStageInfoDAO.dataUpdateStatus(updateStageShopIds, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_163); - // 订货阶段 完成 - shopStageInfoDAO.dataUpdateStatus(updateStageShopIds, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_173); - //数据处理用平台账号 火马,云流水,新掌柜状态改为已完成 - shopAccountDAO.updateStatusDataHandle(updateStageShopIds); - } - //表中4月20号后的数据,数据录入系统,新店装修阶段状态不变更 其他时间的数据状态改为已完成 不包括装修验收 + List updateStageShopIds = updateBuildStageList.stream().map(BuildStageDTO::getShopId).collect(Collectors.toList()); + //pos阶段完成 + shopStageInfoDAO.dataUpdateStatus(updateStageShopIds, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_163); + //xf + shopStageInfoDAO.dataUpdateStatus(updateStageShopIds, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_235); + //yzt + shopStageInfoDAO.dataUpdateStatus(updateStageShopIds, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_245); + // 订货阶段 完成 + shopStageInfoDAO.dataUpdateStatus(updateStageShopIds, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_173); + //数据处理用平台账号 火马,云流水,新掌柜状态改为已完成 + shopAccountDAO.updateStatusDataHandle(updateStageShopIds); + //装修stage shopStageInfoDAO.dataUpdateStatus(fitmentFhopIdList, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_863); shopStageInfoDAO.dataUpdateStatus(fitmentFhopIdList, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_91); shopStageInfoDAO.dataUpdateStatus(fitmentFhopIdList, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_112); - //装修验收初始化 - shopStageInfoDAO.dataUpdateAcceptanceStatus(fitmentFhopIdList, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_121); + shopStageInfoDAO.dataUpdateStatus(fitmentFhopIdList, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_123); + //train + shopStageInfoDAO.dataUpdateStatus(fitmentFhopIdList, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_51); + //openPlan + shopStageInfoDAO.dataUpdateStatus(fitmentFhopIdList, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_143); + //装修表初始化 + acceptanceInfoDAO.initAcceptanceInfo(initFitmentShopIdList); if (!errorList.isEmpty()) { task.setStatus(ImportTaskStatusEnum.ERROR.getCode()); String url = null; diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/DataHandlerController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/DataHandlerController.java index 79933c053..6a997d84e 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/DataHandlerController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/DataHandlerController.java @@ -99,4 +99,29 @@ public class DataHandlerController { dataHandlerServer.decorationDataInit(); return ResponseResult.success(true); } + + @PostMapping("/dataHandlerV20241012") + @ApiOperation("导入OA旧数据") + public ResponseResult dataHandlerV20241012(MultipartFile file) { + ExcelReader reader = null; + try { + reader = ExcelUtil.getReader(file.getInputStream()); + } catch (IOException e) { + log.error("read file error:", e); + } + assert reader != null; + log.info("----------------------:{}", file.getOriginalFilename()); + List> dataMapList = reader.read(0, 1, Integer.MAX_VALUE); + ImportTaskDO importTaskDO = new ImportTaskDO(); + importTaskDO.setFileName(file.getOriginalFilename()); + importTaskDO.setFileType(FileTypeEnum.IMPORT_OA_OLD_SHOP_DATA.getFileType()); + importTaskDO.setIsImport(true); + importTaskDO.setStatus(ImportTaskStatusEnum.PROGRESS.getCode()); + importTaskDO.setCreateUserId(CurrentUserHolder.getUserId()); + importTaskDO.setCreateName(CurrentUserHolder.getUser().getName()); + importTaskDO.setCreateTime(System.currentTimeMillis()); + importTaskMapper.insert(eid, importTaskDO); + dataHandlerServer.dataHandlerV20241012(dataMapList, file.getOriginalFilename(), CurrentUserHolder.getUser(), importTaskDO); + return ResponseResult.success(true); + } } From 0909369e5988a8e45fb82b9c9bf9eb2687b142d3 Mon Sep 17 00:00:00 2001 From: "shuo.wang" Date: Mon, 19 May 2025 18:31:27 +0800 Subject: [PATCH 4/4] fix --- .../com/cool/store/dao/AcceptanceInfoDAO.java | 3 ++ .../service/impl/DataHandlerServerImpl.java | 53 ++++++++----------- .../webb/DataHandlerController.java | 5 +- 3 files changed, 26 insertions(+), 35 deletions(-) diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/AcceptanceInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/AcceptanceInfoDAO.java index 9c18fb3d6..eba2551ea 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/AcceptanceInfoDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/AcceptanceInfoDAO.java @@ -66,6 +66,9 @@ public class AcceptanceInfoDAO { } public Integer initAcceptanceInfo(List shopIds){ + if (CollectionUtils.isEmpty(shopIds)){ + return CommonConstants.ZERO; + } return acceptanceInfoMapper.initAcceptanceInfo(shopIds); } } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DataHandlerServerImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DataHandlerServerImpl.java index a067d4977..62b6358d2 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DataHandlerServerImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DataHandlerServerImpl.java @@ -111,6 +111,9 @@ public class DataHandlerServerImpl implements DataHandlerServer { Map shopInfoByCodeMap = shopInfoList.stream().collect(Collectors.toMap(ShopInfoDO::getShopCode, item -> item)); List shopIds = shopInfoList.stream().map(ShopInfoDO::getId).collect(Collectors.toList()); List lineIdList = shopInfoList.stream().map(ShopInfoDO::getLineId).collect(Collectors.toList()); + //装修验收数据 + List acceptanceInfoDOList = acceptanceInfoDAO.selectByShopIds(shopIds); + Map acceptanceInfoMap = acceptanceInfoDOList.stream().collect(Collectors.toMap(AcceptanceInfoDO::getShopId, item -> item)); //手机号 Map lineMobileMap = lineInfoDAO.getLineMobileMap(lineIdList); @@ -160,6 +163,8 @@ public class DataHandlerServerImpl implements DataHandlerServer { List fitmentFhopIdList = new ArrayList<>(); //建店阶段完成时间 List updateBuildStageList = new ArrayList<>(); + //装修验收表需要初始化的门店 + List initFitmentShopIdList = new ArrayList<>(); for (ImportOaOldShopDataDTO dto : list) { if (!check(dto, errorList)) { continue; @@ -248,7 +253,7 @@ public class DataHandlerServerImpl implements DataHandlerServer { signFranchiseDO.setProtectiveDistance((int) Double.parseDouble(dto.getProtectionDistance().trim())); } ShopStageInfoDO buildStage = bulidStageMap.get(shopId); - //建店资料未完成 + //建店资料完成时间 BuildStageDTO buildStageDTO = new BuildStageDTO(); buildStageDTO.setShopId(shopId); buildStageDTO.setEndTime(dto.getBuildEndTime() + " 00:00:00"); @@ -336,6 +341,10 @@ public class DataHandlerServerImpl implements DataHandlerServer { posDO.setCreateTime(new Date()); addPosAndOrderInfoList.add(posDO); } + AcceptanceInfoDO acceptanceInfoDO = acceptanceInfoMap.get(shopId); + if (Objects.isNull(acceptanceInfoDO)) { + initFitmentShopIdList.add(shopId); + } } shopInfoDAO.updateShopCity(shopInfoList); pointInfoDAO.updateAddress(pointListByIds); @@ -346,15 +355,16 @@ public class DataHandlerServerImpl implements DataHandlerServer { orderSysInfoDAO.batchInsertSpecific(addOrderSysInfoList); franchiseFeeDAO.updateBill(franchiseFeeByShopIds); buildInformationDAO.batchInsertSpecific(addBuildList); - if (CollectionUtils.isNotEmpty(updateBuildStageList)) { - List updateStageShopIds = updateBuildStageList.stream().map(BuildStageDTO::getShopId).collect(Collectors.toList()); - //pos阶段完成 - shopStageInfoDAO.dataUpdateStatus(updateStageShopIds, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_163); - // 订货阶段 完成 - shopStageInfoDAO.dataUpdateStatus(updateStageShopIds, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_173); - //数据处理用平台账号 火马,云流水,新掌柜状态改为已完成 - shopAccountDAO.updateStatusDataHandle(updateStageShopIds); - } + //装修表初始化 + acceptanceInfoDAO.initAcceptanceInfo(initFitmentShopIdList); + List updateStageShopIds = updateBuildStageList.stream().map(BuildStageDTO::getShopId).collect(Collectors.toList()); + //pos阶段完成 + shopStageInfoDAO.dataUpdateStatus(updateStageShopIds, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_163); + // 订货阶段 完成 + shopStageInfoDAO.dataUpdateStatus(updateStageShopIds, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_173); + //数据处理用平台账号 火马,云流水,新掌柜状态改为已完成 + shopAccountDAO.updateStatusDataHandle(updateStageShopIds); + //表中4月20号后的数据,数据录入系统,新店装修阶段状态不变更 其他时间的数据状态改为已完成 不包括装修验收 shopStageInfoDAO.dataUpdateStatus(fitmentFhopIdList, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_863); shopStageInfoDAO.dataUpdateStatus(fitmentFhopIdList, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_91); @@ -731,7 +741,7 @@ public class DataHandlerServerImpl implements DataHandlerServer { if (StringUtil.isNotBlank(dto.getIntroductionAward())) { signFranchiseDO.setIntroductionAward(dto.getIntroductionAward()); } - if (StringUtil.isNotBlank(dto.getContractCode()) && dto.getContractCode().trim().startsWith("ZX") && dto.getContractCode().trim() != "0") { + if (StringUtil.isNotBlank(dto.getContractCode()) && dto.getContractCode().trim().startsWith("ZX") && !"0".equals(dto.getContractCode().trim())) { signFranchiseDO.setContractCode(dto.getContractCode().trim()); } if (StringUtil.isNotBlank(dto.getProtectionDistance())) { @@ -951,20 +961,6 @@ public class DataHandlerServerImpl implements DataHandlerServer { errorList.add(errorDTO); return false; } - if (StringUtil.isBlank(dto.getMonthRent())) { - ImportOaOldShopDataErrorDTO errorDTO = new ImportOaOldShopDataErrorDTO(); - errorDTO.setShopCode(dto.getShopCode()); - errorDTO.setErrorReason("租金不能为空"); - errorList.add(errorDTO); - return false; - } - if (StringUtil.isBlank(dto.getPointArea())) { - ImportOaOldShopDataErrorDTO errorDTO = new ImportOaOldShopDataErrorDTO(); - errorDTO.setShopCode(dto.getShopCode()); - errorDTO.setErrorReason("场地实际面积不能为空"); - errorList.add(errorDTO); - return false; - } if (StringUtil.isBlank(dto.getContractStartDate())) { ImportOaOldShopDataErrorDTO errorDTO = new ImportOaOldShopDataErrorDTO(); errorDTO.setShopCode(dto.getShopCode()); @@ -1014,13 +1010,6 @@ public class DataHandlerServerImpl implements DataHandlerServer { errorList.add(errorDTO); return false; } - if (StringUtil.isBlank(dto.getDiscountReason())) { - ImportOaOldShopDataErrorDTO errorDTO = new ImportOaOldShopDataErrorDTO(); - errorDTO.setShopCode(dto.getShopCode()); - errorDTO.setErrorReason("加盟费优惠原因不能为空"); - errorList.add(errorDTO); - return false; - } if (StringUtil.isBlank(dto.getDeclareGoodsLogisticsWarehouseName())) { ImportOaOldShopDataErrorDTO errorDTO = new ImportOaOldShopDataErrorDTO(); errorDTO.setShopCode(dto.getShopCode()); diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/DataHandlerController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/DataHandlerController.java index 6a997d84e..48bc5bbb2 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/DataHandlerController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/DataHandlerController.java @@ -69,7 +69,7 @@ public class DataHandlerController { @PostMapping("/dataStageHandler") @ApiOperation("阶段处理") - public ResponseResult importOaOldShopData(MultipartFile file, @RequestParam("flag") Boolean flag) { + public ResponseResult dataStageHandler(MultipartFile file, @RequestParam("flag") Boolean flag) { ExcelReader reader = null; try { reader = ExcelUtil.getReader(file.getInputStream()); @@ -101,7 +101,7 @@ public class DataHandlerController { } @PostMapping("/dataHandlerV20241012") - @ApiOperation("导入OA旧数据") + @ApiOperation("导入OA202410-12旧数据") public ResponseResult dataHandlerV20241012(MultipartFile file) { ExcelReader reader = null; try { @@ -110,7 +110,6 @@ public class DataHandlerController { log.error("read file error:", e); } assert reader != null; - log.info("----------------------:{}", file.getOriginalFilename()); List> dataMapList = reader.read(0, 1, Integer.MAX_VALUE); ImportTaskDO importTaskDO = new ImportTaskDO(); importTaskDO.setFileName(file.getOriginalFilename());