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/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-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/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..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); @@ -548,20 +558,359 @@ 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; } + @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("dataHandlerV20241012 转化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()); + //装修验收数据 + List acceptanceInfoDOList = acceptanceInfoDAO.selectByShopIds(shopIds); + Map acceptanceInfoMap = acceptanceInfoDOList.stream().collect(Collectors.toMap(AcceptanceInfoDO::getShopId, item -> item)); + //手机号 + 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())); + //新发系统 + List xfSysDOList = posAndOrderInfoDAO.selectListByShopIdAndType(shopIds, PosAndOrderEnum.XIN_FA_SYS.getCode()); + Map xfSysInfoDOMap = xfSysDOList.stream().collect(Collectors.toMap(PosAndOrderInfoDO::getShopId, Function.identity())); + //营帐通系统 + List tentPassInfoDOList = posAndOrderInfoDAO.selectListByShopIdAndType(shopIds, PosAndOrderEnum.TENT_PASS.getCode()); + Map tentPassInfoDOMap = tentPassInfoDOList.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; + } + 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") && !"0".equals(dto.getContractCode().trim())) { + 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); + } + 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); + } + //xf + 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)) { + initFitmentShopIdList.add(shopId); + } + } + 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); + 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.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; + 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(); @@ -612,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()); @@ -675,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 79933c053..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()); @@ -99,4 +99,28 @@ public class DataHandlerController { dataHandlerServer.decorationDataInit(); return ResponseResult.success(true); } + + @PostMapping("/dataHandlerV20241012") + @ApiOperation("导入OA202410-12旧数据") + 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; + 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); + } }