From db4c7b2bd9913eb9aec9a2cdab2ef8172be86065 Mon Sep 17 00:00:00 2001 From: "shuo.wang" Date: Mon, 12 May 2025 17:12:05 +0800 Subject: [PATCH] =?UTF-8?q?=E8=80=81=E6=95=B0=E6=8D=AE=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cool/store/enums/FileTypeEnum.java | 1 + .../java/com/cool/store/enums/ImportEnum.java | 66 ++ .../store/enums/ImportTaskStatusEnum.java | 48 ++ .../cool/store/dao/BuildInformationDAO.java | 11 + .../com/cool/store/dao/FranchiseFeeDAO.java | 29 + .../cool/store/dao/HyPartnerUserInfoDAO.java | 7 + .../com/cool/store/dao/OrderSysInfoDAO.java | 47 +- .../cool/store/dao/PointDetailInfoDAO.java | 15 +- .../java/com/cool/store/dao/PointInfoDAO.java | 12 + .../cool/store/dao/PosAndOrderInfoDAO.java | 14 + .../com/cool/store/dao/ShopAccountDAO.java | 7 + .../java/com/cool/store/dao/ShopInfoDAO.java | 6 + .../com/cool/store/dao/ShopStageInfoDAO.java | 36 +- .../com/cool/store/dao/SignFranchiseDAO.java | 29 + .../store/mapper/BuildInformationMapper.java | 2 + .../cool/store/mapper/FranchiseFeeMapper.java | 8 + .../store/mapper/HyPartnerUserInfoMapper.java | 2 +- .../cool/store/mapper/OrderSysInfoMapper.java | 3 + .../store/mapper/PointDetailInfoMapper.java | 4 + .../cool/store/mapper/PointInfoMapper.java | 2 + .../store/mapper/PosAndOrderInfoMapper.java | 4 + .../cool/store/mapper/ShopAccountMapper.java | 1 + .../store/mapper/ShopStageInfoMapper.java | 13 + .../store/mapper/SignFranchiseMapper.java | 8 + .../mapper/BuildInformationMapper.xml | 6 + .../resources/mapper/FranchiseFeeMapper.xml | 34 + .../resources/mapper/OrderSysInfoMapper.xml | 43 ++ .../mapper/PointDetailInfoMapper.xml | 12 + .../main/resources/mapper/PointInfoMapper.xml | 35 +- .../mapper/PosAndOrderInfoMapper.xml | 6 + .../resources/mapper/ShopAccountMapper.xml | 373 +++++------ .../resources/mapper/ShopStageInfoMapper.xml | 46 ++ .../resources/mapper/SignFranchiseMapper.xml | 45 ++ .../com/cool/store/dto/BuildStageDTO.java | 19 + .../store/dto/ImportOaOldShopDataDTO.java | 79 +++ .../dto/ImportOaOldShopDataErrorDTO.java | 22 + .../request/AddSignFranchiseRequest.java | 3 +- .../cool/store/service/DataHandlerServer.java | 25 + .../store/service/ShopAccountService.java | 3 + .../service/impl/DataHandlerServerImpl.java | 595 ++++++++++++++++++ .../service/impl/FranchiseFeeServiceImpl.java | 5 +- .../service/impl/ShopAccountServiceImpl.java | 10 + .../webb/DataHandlerController.java | 73 +++ 43 files changed, 1604 insertions(+), 205 deletions(-) create mode 100644 coolstore-partner-common/src/main/java/com/cool/store/enums/ImportEnum.java create mode 100644 coolstore-partner-common/src/main/java/com/cool/store/enums/ImportTaskStatusEnum.java create mode 100644 coolstore-partner-dao/src/main/java/com/cool/store/dao/FranchiseFeeDAO.java create mode 100644 coolstore-partner-dao/src/main/java/com/cool/store/dao/SignFranchiseDAO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/BuildStageDTO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/ImportOaOldShopDataDTO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/ImportOaOldShopDataErrorDTO.java create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/service/DataHandlerServer.java create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/service/impl/DataHandlerServerImpl.java create mode 100644 coolstore-partner-web/src/main/java/com/cool/store/controller/webb/DataHandlerController.java 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 a4cdbc96e..e498f51f7 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 @@ -18,6 +18,7 @@ public enum FileTypeEnum { EXPORT_FINANCE("exportFinance","财务导出"), EXPORT_JOIN_SHOP("exportJoinShop","加盟开店申请"), EXPORT_PROGRESS("exportProgress","进度确认"), + IMPORT_OA_OLD_SHOP_DATA_ERROR("OaOldShopDataError", "导入OA旧数据错误列表"), ; private String fileType; private String desc; diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/ImportEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/ImportEnum.java new file mode 100644 index 000000000..09d6758bd --- /dev/null +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/ImportEnum.java @@ -0,0 +1,66 @@ +package com.cool.store.enums; + +import java.util.Arrays; +import java.util.Map; +import java.util.stream.Collectors; + +public enum ImportEnum { + /** + * + */ + IMPORT_OA_OLD_SHOP_DATA("导入OA旧数据.xlsx", "importOaOldShopData", "导入OA旧数据"), + + ; + /** + * 返回码 + */ + private String name; + + /** + * 编码 + */ + private String code; + + /** + * 返回信息 + */ + private String dec; + + private static final Map MAP = Arrays.stream(values()).collect( + Collectors.toMap(ImportEnum::getCode, ImportEnum::getName)); + + + ImportEnum(String name, String code, String dec) { + this.name = name; + this.code = code; + this.dec = dec; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getDec() { + return dec; + } + + public void setDec(String dec) { + this.dec = dec; + } + + public static String getByCode(String code) { + return MAP.get(code); + } +} diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/ImportTaskStatusEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/ImportTaskStatusEnum.java new file mode 100644 index 000000000..fac6e1a8a --- /dev/null +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/ImportTaskStatusEnum.java @@ -0,0 +1,48 @@ +package com.cool.store.enums; + +/** + * @author 邵凌志 + * @date 2020/12/11 18:11 + */ +public enum ImportTaskStatusEnum { + + + SUCCESS(2, "上传成功"), + + PROGRESS(1, "进行中"), + + ERROR(3, "上传失败"), + + PART_ERROR(4, "上传部分失败"), + ; + /** + * 返回码 + */ + private int code; + + /** + * 返回信息 + */ + private String msg; + + ImportTaskStatusEnum(int code, String message) { + this.code = code; + this.msg = message; + } + + public int getCode() { + return code; + } + + private void setCode(int code) { + this.code = code; + } + + public String getMsg() { + return msg; + } + + private void setMsg(String message) { + this.msg = message; + } +} diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/BuildInformationDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/BuildInformationDAO.java index 4bdccfbce..a872a151b 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/BuildInformationDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/BuildInformationDAO.java @@ -54,6 +54,17 @@ public class BuildInformationDAO { } return buildInformationMapper.getSpecificByShopIdList(shopIdList); } + /** + * @Auther: wangshuo + * @Date: 2025/5/12 + * @description:数据处理用初始化 批量插入新数据 + */ + public Integer batchInsertSpecific(List shopIds) { + if (CollectionUtils.isEmpty(shopIds)) { + return 0; + } + return buildInformationMapper.batchInsertSpecific(shopIds); + } } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/FranchiseFeeDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/FranchiseFeeDAO.java new file mode 100644 index 000000000..d51f69752 --- /dev/null +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/FranchiseFeeDAO.java @@ -0,0 +1,29 @@ +package com.cool.store.dao; + +import com.cool.store.entity.FranchiseFeeDO; +import com.cool.store.mapper.FranchiseFeeMapper; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @Author: WangShuo + * @Date: 2025/05/12/13:53 + * @Version 1.0 + * @注释: + */ +@Repository +public class FranchiseFeeDAO { + @Resource + private FranchiseFeeMapper franchiseFeeMapper; + + public Integer updateBill( List list){ + if (CollectionUtils.isEmpty(list)){ + return 0; + } + return franchiseFeeMapper.updateBill(list); + } +} diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerUserInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerUserInfoDAO.java index e62ca3e09..6897721e6 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerUserInfoDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerUserInfoDAO.java @@ -6,6 +6,7 @@ import com.google.common.collect.Lists; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Repository; +import tk.mybatis.mapper.entity.Example; import javax.annotation.Resource; import java.util.List; @@ -106,4 +107,10 @@ public class HyPartnerUserInfoDAO { } return hyPartnerUserInfoMapper.dataHandle(hyPartnerUserInfoDOList); } + + public List selectPasswordIsNull(){ + Example example = new Example(HyPartnerUserInfoDO.class); + example.createCriteria().andIsNull("downstreamSystemPassword"); + return hyPartnerUserInfoMapper.selectByExample(example); + } } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/OrderSysInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/OrderSysInfoDAO.java index 20aa24e81..1ac666073 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/OrderSysInfoDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/OrderSysInfoDAO.java @@ -29,24 +29,57 @@ public class OrderSysInfoDAO { public OrderSysInfoDO selectByShopId(Long shopId) { Example example = new Example(OrderSysInfoDO.class); - example.createCriteria().andEqualTo("shopId",shopId); + example.createCriteria().andEqualTo("shopId", shopId); return orderSysInfoMapper.selectOneByExample(example); } public Integer updateByShopId(OrderSysInfoDO orderSysInfoDO) { Example example = new Example(OrderSysInfoDO.class); - example.createCriteria().andEqualTo("shopId",orderSysInfoDO.getShopId()); - return orderSysInfoMapper.updateByExampleSelective(orderSysInfoDO,example); + example.createCriteria().andEqualTo("shopId", orderSysInfoDO.getShopId()); + return orderSysInfoMapper.updateByExampleSelective(orderSysInfoDO, example); } //只获取特定几个字段值 - public List getSpecificByShopIdList(List shopIdList){ - if (CollectionUtils.isEmpty(shopIdList)){ - return new ArrayList<>(); + public List getSpecificByShopIdList(List shopIdList) { + if (CollectionUtils.isEmpty(shopIdList)) { + return new ArrayList<>(); } return orderSysInfoMapper.getSpecificByShopIdList(shopIdList); } - public Integer updateAddresseeAddress(OrderSysInfoDO orderSysInfoDO){ + + public Integer updateAddresseeAddress(OrderSysInfoDO orderSysInfoDO) { return orderSysInfoMapper.updateAddresseeAddress(orderSysInfoDO); } + + public List selectByShopIdList(List shopIdList) { + if (CollectionUtils.isEmpty(shopIdList)) { + return new ArrayList<>(); + } + Example example = new Example(OrderSysInfoDO.class); + example.createCriteria().andIn("shopId", shopIdList); + return orderSysInfoMapper.selectByExample(example); + } + + /** + * @Auther: wangshuo + * @Date: 2025/5/12 + * @description:数据处理专用插入特定字段 + */ + public Integer batchInsertSpecific(List orderSysInfoDOList) { + if (CollectionUtils.isEmpty(orderSysInfoDOList)) { + return 0; + } + return orderSysInfoMapper.batchInsertSpecific(orderSysInfoDOList); + } + /** + * @Auther: wangshuo + * @Date: 2025/5/12 + * @description:数据处理专用update特定字段 + */ + public Integer batchUpdateSpecific(List orderSysInfoDOList) { + if (CollectionUtils.isEmpty(orderSysInfoDOList)) { + return 0; + } + return orderSysInfoMapper.batchUpdateSpecific(orderSysInfoDOList); + } } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/PointDetailInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/PointDetailInfoDAO.java index e4a2899a2..86e56b9f1 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/PointDetailInfoDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/PointDetailInfoDAO.java @@ -1,5 +1,7 @@ package com.cool.store.dao; +import com.alibaba.excel.util.CollectionUtils; +import com.cool.store.constants.CommonConstants; import com.cool.store.entity.PointDetailInfoDO; import com.cool.store.mapper.PointDetailInfoMapper; import org.springframework.stereotype.Repository; @@ -62,9 +64,20 @@ public class PointDetailInfoDAO { public List getByPointIdList(List pointIdList) { Example example = new Example(PointDetailInfoDO.class); - example.createCriteria().andIn("point_id", pointIdList); + example.createCriteria().andIn("pointId", pointIdList); return pointDetailInfoMapper.selectByExample(example); } + /** + * @Auther: wangshuo + * @Date: 2025/5/9 + * @description: 数据处理用 面积 租金 + */ + public Integer updateMonthRent(List list) { + if (CollectionUtils.isEmpty(list)){ + return CommonConstants.ZERO; + } + return pointDetailInfoMapper.updateMonthRent(list); + } } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/PointInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/PointInfoDAO.java index dceedac1b..88c939b00 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/PointInfoDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/PointInfoDAO.java @@ -156,4 +156,16 @@ public class PointInfoDAO { } return pointInfoMapper.getShopByOpportunityPointCode(eid,code); } + + /** + * @Auther: wangshuo + * @Date: 2025/5/9 + * @description:数据处理用 省市区详细地址面积 + */ + public Integer updateAddress(List list){ + if (Objects.isNull(list)){ + return CommonConstants.ZERO; + } + return pointInfoMapper.updateAddress(list); + } } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/PosAndOrderInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/PosAndOrderInfoDAO.java index c7bc270b3..a16cc4f44 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/PosAndOrderInfoDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/PosAndOrderInfoDAO.java @@ -1,5 +1,6 @@ package com.cool.store.dao; +import com.alibaba.excel.util.CollectionUtils; import com.cool.store.entity.BuildInformationDO; import com.cool.store.entity.PosAndOrderInfoDO; import com.cool.store.mapper.PosAndOrderInfoMapper; @@ -7,6 +8,7 @@ import org.springframework.stereotype.Repository; import tk.mybatis.mapper.entity.Example; import javax.annotation.Resource; +import java.util.List; /** * @Author: WangShuo @@ -40,4 +42,16 @@ public class PosAndOrderInfoDAO { example.createCriteria().andEqualTo("shopId",shopId).andEqualTo("type",type); return posAndOrderInfoMapper.selectOneByExample(example); } + + public List selectListByShopIdAndType(List shopIds, Integer type) { + Example example = new Example(PosAndOrderInfoDO.class); + example.createCriteria().andIn("shopId",shopIds).andEqualTo("type",type); + return posAndOrderInfoMapper.selectByExample(example); + } + public Integer batchInsert(List posAndOrderInfoDOList){ + if(CollectionUtils.isEmpty(posAndOrderInfoDOList)){ + return 0; + } + return posAndOrderInfoMapper.batchInsert(posAndOrderInfoDOList); + } } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopAccountDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopAccountDAO.java index f412105d5..24b465309 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopAccountDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopAccountDAO.java @@ -162,4 +162,11 @@ public class ShopAccountDAO { return shopAccountMapper.getPasswordIsNull(); } + //数据处理用平台账号 火马,云流水,新掌柜状态改为已完成 + public Integer updateStatusDataHandle(List shopIds){ + if (CollectionUtils.isEmpty(shopIds)){ + return CommonConstants.ZERO; + } + return shopAccountMapper.updateStatusDataHandle(shopIds); + } } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopInfoDAO.java index 8f59ef2c8..c54332b54 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopInfoDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopInfoDAO.java @@ -284,4 +284,10 @@ public class ShopInfoDAO { } return shopInfoMapper.updateShopCity(list); } + + public List selectByShopCodeList(List shopCodeList){ + Example example = new Example(ShopInfoDO.class); + example.createCriteria().andIn("shopCode", shopCodeList); + return shopInfoMapper.selectByExample(example); + } } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopStageInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopStageInfoDAO.java index 9b1ecc03b..588d7be3f 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopStageInfoDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopStageInfoDAO.java @@ -1,6 +1,7 @@ package com.cool.store.dao; import com.cool.store.constants.CommonConstants; +import com.cool.store.dto.BuildStageDTO; import com.cool.store.dto.PlatformBuildStageDTO; import com.cool.store.dto.Preparation.ScheduleDTO; import com.cool.store.entity.ShopStageInfoDO; @@ -21,10 +22,7 @@ import org.springframework.stereotype.Repository; import javax.annotation.Resource; import java.time.LocalDate; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Objects; +import java.util.*; /** * @author zhangchenbiao @@ -169,6 +167,16 @@ public class ShopStageInfoDAO { return shopStageInfoMapper.updateShopStageInfo(shopId, shopStageInfo.getShopSubStageEnum().getShopSubStage(), shopStageInfo.getShopSubStageStatus(), isTerminated, remark); } + //数据处理专用 + public Integer dataUpdateShopStageInfo(List list, ShopSubStageStatusEnum shopStageInfo) { + if (CollectionUtils.isEmpty(list) || Objects.isNull(shopStageInfo)) { + return CommonConstants.ZERO; + } + String remark = shopStageInfo.getShopSubStageName() + CommonConstants.PATH_BAR + shopStageInfo.getShopSubStageStatusName(); + boolean isTerminated = shopStageInfo.isTerminated(); + return shopStageInfoMapper.dataUpdateShopStageInfo(list, shopStageInfo.getShopSubStageEnum().getShopSubStage(), shopStageInfo.getShopSubStageStatus(), isTerminated, remark); + } + /** * 批量更新店铺状态 @@ -429,4 +437,24 @@ public class ShopStageInfoDAO { } return shopStageInfoMapper.getShopSubStages(shopIds); } + + //数据处理专用 + public Integer dataUpdateStatus(List list, ShopSubStageStatusEnum shopStageInfo) { + if (CollectionUtils.isEmpty(list) || Objects.isNull(shopStageInfo)) { + return CommonConstants.ZERO; + } + String remark = shopStageInfo.getShopSubStageName() + CommonConstants.PATH_BAR + shopStageInfo.getShopSubStageStatusName(); + boolean isTerminated = shopStageInfo.isTerminated(); + return shopStageInfoMapper.dataUpdateStatus(list, shopStageInfo.getShopSubStageEnum().getShopSubStage(), shopStageInfo.getShopSubStageStatus(), isTerminated, remark); + } + + //数据处理专用 + public Integer dataUpdateAcceptanceStatus(List list, ShopSubStageStatusEnum shopStageInfo) { + if (CollectionUtils.isEmpty(list) || Objects.isNull(shopStageInfo)) { + return CommonConstants.ZERO; + } + String remark = shopStageInfo.getShopSubStageName() + CommonConstants.PATH_BAR + shopStageInfo.getShopSubStageStatusName(); + boolean isTerminated = shopStageInfo.isTerminated(); + return shopStageInfoMapper.dataUpdateAcceptanceStatus(list, shopStageInfo.getShopSubStageEnum().getShopSubStage(), shopStageInfo.getShopSubStageStatus(), isTerminated, remark); + } } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/SignFranchiseDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/SignFranchiseDAO.java new file mode 100644 index 000000000..500b16e89 --- /dev/null +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/SignFranchiseDAO.java @@ -0,0 +1,29 @@ +package com.cool.store.dao; + +import com.alibaba.excel.util.CollectionUtils; +import com.cool.store.entity.SignFranchiseDO; +import com.cool.store.mapper.SignFranchiseMapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @Author: WangShuo + * @Date: 2025/05/12/13:55 + * @Version 1.0 + * @注释: + */ +@Repository +public class SignFranchiseDAO { + @Resource + private SignFranchiseMapper signFranchiseMapper; + + public Integer updateSpecific(List list){ + if (CollectionUtils.isEmpty(list)){ + return 0; + } + return signFranchiseMapper.updateSpecific(list); + } +} diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/BuildInformationMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/BuildInformationMapper.java index cf45bf959..761f03ba4 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/BuildInformationMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/BuildInformationMapper.java @@ -17,6 +17,8 @@ public interface BuildInformationMapper extends Mapper { List getSpecificByShopIdList(@Param("list") List shopIdList); + Integer batchInsertSpecific(@Param("list") List shopIds); + } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/FranchiseFeeMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/FranchiseFeeMapper.java index a484c05b0..7c77990e3 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/FranchiseFeeMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/FranchiseFeeMapper.java @@ -16,4 +16,12 @@ public interface FranchiseFeeMapper extends Mapper { List getPayTimeByShopIds(@Param("shopIds") List shopIds); Integer updateDataHandleServiceV25(); + List getFranchiseFeeByShopIds(@Param("shopIds") List shopIds); + + /** + * @Auther: wangshuo + * @Date: 2025/5/12 + * @description: 数据处理修改账单 + */ + Integer updateBill(@Param("list") List list); } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerUserInfoMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerUserInfoMapper.java index 40e478702..37df0885a 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerUserInfoMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerUserInfoMapper.java @@ -11,7 +11,7 @@ import java.util.List; * @date 2023-05-29 03:53 */ @Mapper -public interface HyPartnerUserInfoMapper { +public interface HyPartnerUserInfoMapper extends tk.mybatis.mapper.common.Mapper { /** * * 默认插入方法,只会给有值的字段赋值 diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/OrderSysInfoMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/OrderSysInfoMapper.java index 02c83b3be..35c7c895c 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/OrderSysInfoMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/OrderSysInfoMapper.java @@ -19,4 +19,7 @@ public interface OrderSysInfoMapper extends Mapper { Integer updateAddresseeAddress(@Param("update") OrderSysInfoDO orderSysInfoDO); + Integer batchInsertSpecific(@Param("list") List orderSysInfoDOList); + + Integer batchUpdateSpecific(@Param("list") List orderSysInfoDOList); } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/PointDetailInfoMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/PointDetailInfoMapper.java index 8664ec3c2..b609ce911 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/PointDetailInfoMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/PointDetailInfoMapper.java @@ -4,6 +4,8 @@ import com.cool.store.entity.PointDetailInfoDO; import org.apache.ibatis.annotations.Param; import tk.mybatis.mapper.common.Mapper; +import java.util.List; + public interface PointDetailInfoMapper extends Mapper { /** @@ -26,4 +28,6 @@ public interface PointDetailInfoMapper extends Mapper { * @return */ Integer updatePartFieldPointDetail(@Param("update") PointDetailInfoDO update); + + Integer updateMonthRent(@Param("list") List list); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/PointInfoMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/PointInfoMapper.java index 747207e00..762f03e02 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/PointInfoMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/PointInfoMapper.java @@ -119,4 +119,6 @@ public interface PointInfoMapper extends Mapper { List getRecommendOrMyList(@Param("request") MiniPointRequest request); List getPointAndDetailByIds(@Param("pointIds") List pointIds); + + Integer updateAddress(List list); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/PosAndOrderInfoMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/PosAndOrderInfoMapper.java index 3f83c0b32..09c8068dd 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/PosAndOrderInfoMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/PosAndOrderInfoMapper.java @@ -2,8 +2,11 @@ package com.cool.store.mapper; import com.cool.store.entity.PosAndOrderInfoDO; +import org.apache.ibatis.annotations.Param; import tk.mybatis.mapper.common.Mapper; +import java.util.List; + /** * @author EDY * @description 针对表【xfsg_pos_and_order_info(pos/订货系统表)】的数据库操作Mapper @@ -12,6 +15,7 @@ import tk.mybatis.mapper.common.Mapper; */ public interface PosAndOrderInfoMapper extends Mapper { + Integer batchInsert(@Param("list") List posAndOrderInfoDOList); } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopAccountMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopAccountMapper.java index 6d298251a..82decb440 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopAccountMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopAccountMapper.java @@ -99,6 +99,7 @@ public interface ShopAccountMapper extends Mapper { //数据处理用 List getPasswordIsNull(); + Integer updateStatusDataHandle(@Param("list") List shopIds); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopStageInfoMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopStageInfoMapper.java index 760dcd83c..c19f2db5a 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopStageInfoMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopStageInfoMapper.java @@ -1,5 +1,6 @@ package com.cool.store.mapper; +import com.cool.store.dto.BuildStageDTO; import com.cool.store.dto.PlatformBuildStageDTO; import com.cool.store.dto.Preparation.ScheduleDTO; import com.cool.store.entity.ShopStageInfoDO; @@ -11,6 +12,7 @@ import com.github.pagehelper.Page; import org.apache.ibatis.annotations.Param; import tk.mybatis.mapper.common.Mapper; +import java.util.Date; import java.util.List; public interface ShopStageInfoMapper extends Mapper { @@ -61,6 +63,10 @@ public interface ShopStageInfoMapper extends Mapper { Integer updateShopStageInfo(@Param("shopId") Long shopId, @Param("shopSubStage") Integer shopSubStage, @Param("shopSubStageStatus") Integer shopSubStageStatus, @Param("isTerminated")boolean isTerminated, @Param("remark") String remark); + + Integer dataUpdateShopStageInfo(@Param("list") List list, @Param("shopSubStage") Integer shopSubStage, @Param("shopSubStageStatus") Integer shopSubStageStatus, + @Param("isTerminated")boolean isTerminated, @Param("remark") String remark); + /** * 批量更新阶段及审核信息 * @param shopId @@ -171,4 +177,11 @@ public interface ShopStageInfoMapper extends Mapper { Integer getAllNumber(@Param("shopId") Long shopId,@Param("flag")Integer flag); List getShopSubStages(@Param("shopIds") List shopIds); + + Integer dataUpdateStatus(@Param("list") List list, @Param("shopSubStage") Integer shopSubStage, @Param("shopSubStageStatus") Integer shopSubStageStatus, + @Param("isTerminated")boolean isTerminated, @Param("remark") String remark); + + Integer dataUpdateAcceptanceStatus(@Param("list") List list, @Param("shopSubStage") Integer shopSubStage, @Param("shopSubStageStatus") Integer shopSubStageStatus, + @Param("isTerminated")boolean isTerminated, @Param("remark") String remark); + } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/SignFranchiseMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/SignFranchiseMapper.java index 26938448a..54bd00639 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/SignFranchiseMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/SignFranchiseMapper.java @@ -15,4 +15,12 @@ public interface SignFranchiseMapper extends Mapper { List selectByShopIds( @Param("list")List shopIds); Integer dateHandle(); + + List selectAllByShopIds(@Param("list")List shopIds); + /** + * @Auther: wangshuo + * @Date: 2025/5/12 + * @description:数据处理用修改特定字段 + */ + Integer updateSpecific(@Param("list") List list); } diff --git a/coolstore-partner-dao/src/main/resources/mapper/BuildInformationMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/BuildInformationMapper.xml index 1c2c3f99b..1311e6ad1 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/BuildInformationMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/BuildInformationMapper.xml @@ -53,6 +53,12 @@ create_time,update_time,create_user, update_user,c_shop_name,settler_bank_back_photo_url,settler_is_same_partner,juridical_is_same_partner + + + insert into xfsg_build_information (shop_id) + VALUE(#{item}) + + select * @@ -34,5 +60,13 @@ #{shopId} + \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/OrderSysInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/OrderSysInfoMapper.xml index 08c73bf12..bc86d0217 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/OrderSysInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/OrderSysInfoMapper.xml @@ -41,6 +41,23 @@ receiving_create_time, receiving_update_time, receiving_create_user, receiving_update_user, declare_goods_type + + + insert into xfsg_order_sys_info ( + shop_id,addressee_province,addressee_city,addressee_district,addressee_address,declare_goods_logistics_warehouse,receiving_ms_bank_account) + values( + #{item.shopId}, + #{item.addresseeProvince}, + #{item.addresseeCity}, + #{item.addresseeDistrict}, + #{item.addresseeAddress}, + #{item.declareGoodsLogisticsWarehouse}, + #{item.orderCreateTime}, + #{item.receivingMsBankAccount}, + #{item.receivingCreateTime} + ) + + update xfsg_order_sys_info @@ -59,6 +76,32 @@ where shop_id = #{update.shopId} + + + update xfsg_order_sys_info + + + addressee_address = #{item.addresseeAddress}, + + + addressee_province = #{item.addresseeProvince}, + + + addressee_city = #{item.addresseeCity}, + + + addressee_district = #{item.addresseeDistrict}, + + + declare_goods_logistics_warehouse = #{item.declareGoodsLogisticsWarehouse}, + + + receiving_ms_bank_account = #{item.receivingMsBankAccount}, + + + where shop_id = #{item.shopId} + + @@ -185,7 +187,8 @@ left join store_${eid} c on b.shop_code = c.store_num where a.deleted = 0 and a.point_status in (4,5,6,7) - and (a.point_code like concat('%', #{request.keyword}, '%') or a.point_name like concat('%', #{request.keyword}, + and (a.point_code like concat('%', #{request.keyword}, '%') or a.point_name like concat('%', + #{request.keyword}, '%')) @@ -216,7 +219,8 @@ and a.storage_status = #{request.storageStatus} - and (a.province_code = #{request.areaCode} or a.city_code = #{request.areaCode} or a.district_code = #{request.areaCode}) + and (a.province_code = #{request.areaCode} or a.city_code = #{request.areaCode} or a.district_code = + #{request.areaCode}) order by a.id desc @@ -297,11 +301,11 @@ from xfsg_point_info a LEFT JOIN xfsg_point_detail_info c on a.id = c.point_id where a.deleted = 0 - - and a.point_name like concat('%', #{request.keyword}, '%') + + and a.point_name like concat('%', #{request.keyword}, '%') - - and a.point_status in( 4,5) + + and a.point_status in( 4,5) and a.line_id = #{request.lineId} @@ -354,5 +358,20 @@ point_location = #{request.pointLocation} where id = #{request.id} + + + update xfsg_point_info + + province = #{item.province}, + address = #{item.address}, + city = #{item.city}, + district = #{item.district}, + + point_area = #{item.pointArea} + + + where id = #{item.id} + + \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/PosAndOrderInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/PosAndOrderInfoMapper.xml index 203633aec..9868d6752 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/PosAndOrderInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/PosAndOrderInfoMapper.xml @@ -20,4 +20,10 @@ account,password,remark, create_time,create_user + + + insert into xfsg_pos_and_order_info (shop_id,type,account,password,remark,create_time,create_user) + values (#{item.shopId},#{item.type},#{item.account},#{item.password},#{item.remark},#{item.createTime},#{item.createUser}) + + diff --git a/coolstore-partner-dao/src/main/resources/mapper/ShopAccountMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/ShopAccountMapper.xml index d0f91bed9..e95239009 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/ShopAccountMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/ShopAccountMapper.xml @@ -1,203 +1,216 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - INSERT INTO xfsg_shop_account ( - shop_id, - system_name, - account, - bound_phone, - password_salt, - password, - status, - entry_status, - last_sync_time, - secondary_password, - remark - ) VALUES - - ( - #{item.shopId}, - #{item.systemName}, - #{item.account}, - #{item.boundPhone}, - #{item.passwordSalt}, - #{item.password}, - #{item.status}, - #{item.entryStatus}, - #{item.lastSyncTime}, - #{item.secondaryPassword}, - #{item.remark} - ) - - + + + INSERT INTO xfsg_shop_account ( + shop_id, + system_name, + account, + bound_phone, + password_salt, + password, + status, + entry_status, + last_sync_time, + secondary_password, + remark + ) VALUES + + ( + #{item.shopId}, + #{item.systemName}, + #{item.account}, + #{item.boundPhone}, + #{item.passwordSalt}, + #{item.password}, + #{item.status}, + #{item.entryStatus}, + #{item.lastSyncTime}, + #{item.secondaryPassword}, + #{item.remark} + ) + + - - + + - + - - - UPDATE - xfsg_shop_account - - - status = #{status}, - - - last_sync_time = #{syncTime}, - - - account = #{ylsCode}, - - - WHERE - shop_id = #{shopId} - and system_name in - - #{systemName} - - + + + UPDATE + xfsg_shop_account + + + status = #{status}, + + + last_sync_time = #{syncTime}, + + + account = #{ylsCode}, + + + WHERE + shop_id = #{shopId} + and system_name in + + #{systemName} + + - - UPDATE - xfsg_shop_account - SET - entry_status = #{entryStatus,jdbcType=BIT} - WHERE - shop_id = #{shopId} - and system_name in - - #{systemName} - - + + UPDATE + xfsg_shop_account + SET + entry_status = #{entryStatus,jdbcType=BIT} + WHERE + shop_id = #{shopId} + and system_name in + + #{systemName} + + - - UPDATE - xfsg_shop_account - SET - account = #{account}, - password = #{password}, - status = #{status} - WHERE - shop_id = #{shopId} - AND system_name = #{systemName} - + + UPDATE + xfsg_shop_account + SET + account = #{account}, + password = #{password}, + status = #{status} + WHERE + shop_id = #{shopId} + AND system_name = #{systemName} + - - - UPDATE - xfsg_shop_account - SET - password = #{password}, - secondary_password = #{secondaryPassword}, - password_salt = #{passwordSalt}, - last_sync_time = #{lastSyncTime,jdbcType=TIMESTAMP} - WHERE - system_name in ('火码POS','云流水','新掌柜') - and shop_id IN - - #{shopId} - - + + + UPDATE + xfsg_shop_account + SET + password = #{password}, + secondary_password = #{secondaryPassword}, + password_salt = #{passwordSalt}, + last_sync_time = #{lastSyncTime,jdbcType=TIMESTAMP} + WHERE + system_name in ('火码POS','云流水','新掌柜') + and shop_id IN + + #{shopId} + + - + + update xfsg_shop_account + + + password_salt = #{item.passwordSalt}, + + + password = #{item.password}, + + + secondary_password = #{item.secondaryPassword}, + + + where id = #{item.id} + + + + + update xfsg_shop_account - - password_salt = #{item.passwordSalt}, - - - password = #{item.password}, - - - secondary_password = #{item.secondaryPassword}, - + status = 5 - where id = #{item.id} - - + where + shop_id in + + #{shopId} + + and system_name in ('火码POS','云流水','新掌柜') - - + select shop_id as shopId,system_name as systemName,status from xfsg_shop_account + where shop_id in + + #{shopId} + + + + \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/ShopStageInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/ShopStageInfoMapper.xml index 97b5d7b45..5754d3559 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/ShopStageInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/ShopStageInfoMapper.xml @@ -185,6 +185,52 @@ and shop_sub_stage = #{update.shopSubStage} + + + update + xfsg_shop_stage_info + set + shop_sub_stage_status = #{shopSubStageStatus}, + is_terminated = #{isTerminated}, + remark = #{remark}, + actual_complete_time = #{item.endTime} + where + shop_id = #{item.shopId} + and shop_sub_stage = #{shopSubStage} + + + + + update + xfsg_shop_stage_info + set + shop_sub_stage_status = #{shopSubStageStatus}, + is_terminated = #{isTerminated}, + remark = #{remark}, + actual_complete_time = now() + where + shop_id in + + #{item} + + and shop_sub_stage = #{shopSubStage} + and shop_sub_stage_status != #{shopSubStageStatus} + + + update + xfsg_shop_stage_info + set + shop_sub_stage_status = #{shopSubStageStatus}, + is_terminated = #{isTerminated}, + remark = #{remark} + where + shop_id in + + #{item} + + and shop_sub_stage = #{shopSubStage} + and shop_sub_stage_status = -100 + select * from xfsg_sign_franchise @@ -28,4 +66,11 @@ + \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/BuildStageDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/BuildStageDTO.java new file mode 100644 index 000000000..fb425edad --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/BuildStageDTO.java @@ -0,0 +1,19 @@ +package com.cool.store.dto; + +import lombok.Data; + +import java.util.Date; + +/** + * @Author: WangShuo + * @Date: 2025/05/12/14:03 + * @Version 1.0 + * @注释: + */ +@Data +public class BuildStageDTO { + + private Long shopId; + + private String endTime; +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/ImportOaOldShopDataDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/ImportOaOldShopDataDTO.java new file mode 100644 index 000000000..651de3ede --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/ImportOaOldShopDataDTO.java @@ -0,0 +1,79 @@ +package com.cool.store.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author: WangShuo + * @Date: 2025/05/09/10:22 + * @Version 1.0 + * @注释: + */ +@Data +public class ImportOaOldShopDataDTO { + @ApiModelProperty("门店编码") + private String shopCode; + + @ApiModelProperty("签约门店名称") + private String shopName; + + @ApiModelProperty("省") + private String province; + + @ApiModelProperty("市") + private String city; + + @ApiModelProperty("区") + private String district; + + @ApiModelProperty("门店地址") + private String shopAddress; + + @ApiModelProperty("建店资料完成时间") + private String buildEndTime; + + @ApiModelProperty("店面租金") + private String monthRent; + @ApiModelProperty("场地实际面积") + private String pointArea; + + @ApiModelProperty("签约人2姓名") + private String partnershipSignatorySecond; + @ApiModelProperty("签约人2手机号") + private String partnershipSignatorySecondMobile; + @ApiModelProperty("签约人2身份证号") + private String partnershipSignatorySecondIdNumber; + @ApiModelProperty("合同开始日期") + private String contractStartDate; + @ApiModelProperty("合同结束日期") + private String contractEndDate; + @ApiModelProperty("合同编号") + private String contractCode; + @ApiModelProperty("保护距离(米)") + private String protectionDistance; + @ApiModelProperty("介绍人") + private String introducer; + @ApiModelProperty("介绍门店") + private String introduceStore; + @ApiModelProperty("介绍奖") + private String introductionAward; + @ApiModelProperty("报货物流仓库") + private String declareGoodsLogisticsWarehouseName; + @ApiModelProperty("收款公司民生银行账号") + private String receivingMsBankAccount; + @ApiModelProperty("云流水账号") + private String ylsAccount; + @ApiModelProperty("加盟费") + private String yearFranchiseFee; + @ApiModelProperty("管理费") + private String firstYearManageFee; + @ApiModelProperty("设计费") + private String performanceBond; + @ApiModelProperty("保证金") + private String loanMargin; + @ApiModelProperty("品牌使用管理费") + private String firstYearFee; + @ApiModelProperty("加盟费优惠原因") + private String discountReason; + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/ImportOaOldShopDataErrorDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/ImportOaOldShopDataErrorDTO.java new file mode 100644 index 000000000..5343f2478 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/ImportOaOldShopDataErrorDTO.java @@ -0,0 +1,22 @@ +package com.cool.store.dto; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import lombok.Data; + +/** + * @Author: WangShuo + * @Date: 2025/05/09/10:43 + * @Version 1.0 + * @注释: + */ +@Data +public class ImportOaOldShopDataErrorDTO { + + @ExcelProperty(value = "门店编码", order = 1) + @ColumnWidth(30) + private String shopCode; + @ExcelProperty(value = "错误原因", order = 2) + @ColumnWidth(40) + private String errorReason; +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/AddSignFranchiseRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/AddSignFranchiseRequest.java index a221a8750..a3b6dbbcf 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/AddSignFranchiseRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/AddSignFranchiseRequest.java @@ -90,8 +90,7 @@ public class AddSignFranchiseRequest { @ApiModelProperty("合同金额") @NotBlank(message = "合同金额不能为空") private String contractAmount; - @ApiModelProperty("合伙签约人1") - @NotBlank(message = "合伙签约人1不能为空") + @ApiModelProperty("合伙签约人1//废弃") private String partnershipSignatoryFirst; @ApiModelProperty("合伙签约人2") private String partnershipSignatorySecond; 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 new file mode 100644 index 000000000..03d11268d --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/DataHandlerServer.java @@ -0,0 +1,25 @@ +package com.cool.store.service; + +import com.cool.store.context.LoginUserInfo; +import com.cool.store.entity.ImportTaskDO; + +import java.util.List; +import java.util.Map; + +/** + * @Author: WangShuo + * @Date: 2025/05/09/10:12 + * @Version 1.0 + * @注释: + */ +public interface DataHandlerServer { + + /** + * @Auther: wangshuo + * @Date: 2025/5/9 + * @description: 导入OA旧数据 + */ + Boolean importOaOldShopData(List> dataMapList, String originalFilename, LoginUserInfo user, + ImportTaskDO task); + +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/ShopAccountService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/ShopAccountService.java index dfa4c76fc..c0b168477 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/ShopAccountService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/ShopAccountService.java @@ -89,4 +89,7 @@ public interface ShopAccountService { // 处理账户表没有密码的 Boolean handleAccountPassword(); + //处理老数据加盟商没有密码 + Boolean handleOldDataAccount(); + } 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 new file mode 100644 index 000000000..cd7749463 --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DataHandlerServerImpl.java @@ -0,0 +1,595 @@ +package com.cool.store.service.impl; + +import com.alibaba.fastjson.JSONObject; +import com.cool.store.context.LoginUserInfo; +import com.cool.store.dao.*; +import com.cool.store.dto.*; +import com.cool.store.entity.*; +import com.cool.store.enums.FileTypeEnum; +import com.cool.store.enums.ImportTaskStatusEnum; +import com.cool.store.enums.PosAndOrderEnum; +import com.cool.store.enums.point.ShopSubStageEnum; +import com.cool.store.enums.point.ShopSubStageStatusEnum; +import com.cool.store.mapper.*; +import com.cool.store.service.DataHandlerServer; +import com.cool.store.service.FranchiseFeeService; +import com.cool.store.service.PreparationService; +import com.cool.store.utils.StringUtil; +import com.cool.store.utils.easyExcel.EasyExcelUtil; +import com.cool.store.utils.poi.DateUtils; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.collections4.ListUtils; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; + +import static com.cool.store.utils.poi.DateUtils.SPECIAL_DATE_START_1; +import static com.cool.store.utils.poi.DateUtils.YYYY_MM_DD; + +/** + * @Author: WangShuo + * @Date: 2025/05/09/10:12 + * @Version 1.0 + * @注释: + */ +@Service +@Slf4j +public class DataHandlerServerImpl implements DataHandlerServer { + @Resource + private ImportTaskMapper importTaskMapper; + @Resource + private EasyExcelUtil easyExcelUtil; + @Resource + private ShopInfoDAO shopInfoDAO; + @Resource + private PointInfoDAO pointInfoDAO; + @Resource + private SignFranchiseMapper signFranchiseMapper; + @Resource + private BuildInformationDAO buildInformationDAO; + @Resource + private OrderSysInfoDAO orderSysInfoDAO; + @Resource + private ShopStageInfoDAO shopStageInfoDAO; + @Resource + private FranchiseFeeMapper franchiseFeeMapper; + @Resource + private FranchiseFeeDAO franchiseFeeDAO; + @Resource + private WarehouseInfoMapper warehouseInfoMapper; + @Resource + private PreparationService preparationService; + @Resource + private PosAndOrderInfoDAO posAndOrderInfoDAO; + @Resource + private PointDetailInfoDAO pointDetailInfoDAO; + @Resource + private LineInfoDAO lineInfoDAO; + @Resource + private ShopAccountDAO shopAccountDAO; + @Resource + private SignFranchiseDAO signFranchiseDAO; + @Value("${mybatis.configuration.variables.enterpriseId}") + private String eid; + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean importOaOldShopData(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()); + + //手机号 + 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 (Objects.isNull(franchiseFeeStage)) { + 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("门店未完成合同签约"); + 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); + //建店资料未完成 + 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); + } + BuildStageDTO buildStageDTO = new BuildStageDTO(); + buildStageDTO.setShopId(shopId); + buildStageDTO.setEndTime(dto.getBuildEndTime()); + updateBuildStageList.add(buildStageDTO); + 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); + //数据处理用平台账号 火马,云流水,新掌柜状态改为已完成 + shopAccountDAO.updateStatusDataHandle(shopIds); + //建店资料阶段处理 + shopStageInfoDAO.dataUpdateShopStageInfo(updateBuildStageList, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_156); + 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); + } + //表中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.PART_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(); + errorDTO.setShopCode(dto.getShopCode()); + errorDTO.setErrorReason("门店编码不能为空"); + errorList.add(errorDTO); + return false; + } + if (StringUtil.isBlank(dto.getShopName())){ + ImportOaOldShopDataErrorDTO errorDTO = new ImportOaOldShopDataErrorDTO(); + errorDTO.setShopCode(dto.getShopCode()); + errorDTO.setErrorReason("门店名称不能为空"); + errorList.add(errorDTO); + return false; + } + if (StringUtil.isBlank(dto.getProvince())){ + ImportOaOldShopDataErrorDTO errorDTO = new ImportOaOldShopDataErrorDTO(); + errorDTO.setShopCode(dto.getShopCode()); + errorDTO.setErrorReason("省不能为空"); + errorList.add(errorDTO); + return false; + } + if (StringUtil.isBlank(dto.getCity())){ + ImportOaOldShopDataErrorDTO errorDTO = new ImportOaOldShopDataErrorDTO(); + errorDTO.setShopCode(dto.getShopCode()); + errorDTO.setErrorReason("市不能为空"); + errorList.add(errorDTO); + return false; + } + if (StringUtil.isBlank(dto.getDistrict())){ + ImportOaOldShopDataErrorDTO errorDTO = new ImportOaOldShopDataErrorDTO(); + errorDTO.setShopCode(dto.getShopCode()); + errorDTO.setErrorReason("区不能为空"); + errorList.add(errorDTO); + return false; + } + if (StringUtil.isBlank(dto.getShopAddress())){ + ImportOaOldShopDataErrorDTO errorDTO = new ImportOaOldShopDataErrorDTO(); + errorDTO.setShopCode(dto.getShopCode()); + errorDTO.setErrorReason("门店地址不能为空"); + errorList.add(errorDTO); + return false; + } + if (StringUtil.isBlank(dto.getBuildEndTime())){ + ImportOaOldShopDataErrorDTO errorDTO = new ImportOaOldShopDataErrorDTO(); + errorDTO.setShopCode(dto.getShopCode()); + errorDTO.setErrorReason("建店资料完成时间不能为空"); + 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()); + errorDTO.setErrorReason("合同开始时间不能为空"); + errorList.add(errorDTO); + return false; + } + if (StringUtil.isBlank(dto.getContractEndDate())){ + ImportOaOldShopDataErrorDTO errorDTO = new ImportOaOldShopDataErrorDTO(); + errorDTO.setShopCode(dto.getShopCode()); + errorDTO.setErrorReason("合同结束时间不能为空"); + errorList.add(errorDTO); + return false; + } + if (StringUtil.isBlank(dto.getYearFranchiseFee())){ + ImportOaOldShopDataErrorDTO errorDTO = new ImportOaOldShopDataErrorDTO(); + errorDTO.setShopCode(dto.getShopCode()); + errorDTO.setErrorReason("加盟费不能为空"); + errorList.add(errorDTO); + return false; + } + if (StringUtil.isBlank(dto.getFirstYearManageFee())){ + ImportOaOldShopDataErrorDTO errorDTO = new ImportOaOldShopDataErrorDTO(); + errorDTO.setShopCode(dto.getShopCode()); + errorDTO.setErrorReason("管理费 不能为空"); + errorList.add(errorDTO); + return false; + } + if (StringUtil.isBlank(dto.getFirstYearFee())){ + ImportOaOldShopDataErrorDTO errorDTO = new ImportOaOldShopDataErrorDTO(); + errorDTO.setShopCode(dto.getShopCode()); + errorDTO.setErrorReason("品牌使用管理费不能为空"); + errorList.add(errorDTO); + return false; + } + if (StringUtil.isBlank(dto.getPerformanceBond())){ + ImportOaOldShopDataErrorDTO errorDTO = new ImportOaOldShopDataErrorDTO(); + errorDTO.setShopCode(dto.getShopCode()); + errorDTO.setErrorReason("设计费不能为空"); + errorList.add(errorDTO); + return false; + } + if (StringUtil.isBlank(dto.getLoanMargin())){ + ImportOaOldShopDataErrorDTO errorDTO = new ImportOaOldShopDataErrorDTO(); + errorDTO.setShopCode(dto.getShopCode()); + errorDTO.setErrorReason("保证金不能为空"); + 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()); + errorDTO.setErrorReason("报货物流仓库不能为空"); + errorList.add(errorDTO); + return false; + } + if (StringUtil.isBlank(dto.getContractCode())){ + ImportOaOldShopDataErrorDTO errorDTO = new ImportOaOldShopDataErrorDTO(); + errorDTO.setShopCode(dto.getShopCode()); + errorDTO.setErrorReason("合同编号不能为空"); + errorList.add(errorDTO); + return false; + } + return true; + } + + private static void setOrderInfo(ImportOaOldShopDataDTO dto, OrderSysInfoDO orderSysInfoDO, String warehouseCode) { + orderSysInfoDO.setAddresseeProvince(dto.getProvince().trim()); + orderSysInfoDO.setAddresseeCity(dto.getCity().trim()); + orderSysInfoDO.setAddresseeDistrict(dto.getDistrict().trim()); + orderSysInfoDO.setAddresseeAddress(dto.getShopAddress().trim()); + if (StringUtil.isNotBlank(warehouseCode)) { + orderSysInfoDO.setDeclareGoodsLogisticsWarehouse(warehouseCode); + } + orderSysInfoDO.setReceivingMsBankAccount(dto.getReceivingMsBankAccount().trim()); + } + + private ImportOaOldShopDataDTO buildColumn(Map data) { + ImportOaOldShopDataDTO importOaOldShopDataDTO = new ImportOaOldShopDataDTO(); + importOaOldShopDataDTO.setShopCode(String.valueOf(data.get("门店编码"))); + importOaOldShopDataDTO.setShopName(String.valueOf(data.get("签约门店名称"))); + importOaOldShopDataDTO.setProvince(String.valueOf(data.get("省"))); + importOaOldShopDataDTO.setCity(String.valueOf(data.get("市"))); + importOaOldShopDataDTO.setDistrict(String.valueOf(data.get("区"))); + importOaOldShopDataDTO.setShopAddress(String.valueOf(data.get("门店地址"))); + importOaOldShopDataDTO.setBuildEndTime(String.valueOf(data.get("建店资料完成时间"))); + if (Objects.nonNull(data.get("店面租金"))){ + importOaOldShopDataDTO.setMonthRent(String.valueOf(data.get("店面租金")));} + if (Objects.nonNull(data.get("场地实际面积"))){ + importOaOldShopDataDTO.setPointArea(String.valueOf(data.get("场地实际面积")));} + if (Objects.nonNull(data.get("签约人2姓名"))){ + importOaOldShopDataDTO.setPartnershipSignatorySecond(String.valueOf(data.get("签约人2姓名")));} + if (Objects.nonNull(data.get("签约人2手机号"))){ + importOaOldShopDataDTO.setPartnershipSignatorySecondMobile(String.valueOf(data.get("签约人2手机号")));} + if (Objects.nonNull(data.get("签约人2身份证号"))){ + importOaOldShopDataDTO.setPartnershipSignatorySecondIdNumber(String.valueOf(data.get("签约人2身份证号"))); + } + if (Objects.nonNull(data.get("合同开始日期"))){ + importOaOldShopDataDTO.setContractStartDate(String.valueOf(data.get("合同开始日期"))); + } + if (Objects.nonNull(data.get("合同结束日期"))){ + importOaOldShopDataDTO.setContractEndDate(String.valueOf(data.get("合同结束日期"))); + } + if (Objects.nonNull(data.get("合同编号"))){ + importOaOldShopDataDTO.setContractCode(String.valueOf(data.get("合同编号"))); + } + if (Objects.nonNull(data.get("保护距离(米)"))){ + importOaOldShopDataDTO.setProtectionDistance(String.valueOf(data.get("保护距离(米)"))); + } + if (Objects.nonNull(data.get("介绍人"))){ + importOaOldShopDataDTO.setIntroducer(String.valueOf(data.get("介绍人"))); + } + if (Objects.nonNull(data.get("介绍门店"))){ + importOaOldShopDataDTO.setIntroduceStore(String.valueOf(data.get("介绍门店"))); + } + if (Objects.nonNull(data.get("介绍奖"))){ + importOaOldShopDataDTO.setIntroductionAward(String.valueOf(data.get("介绍奖"))); + } + if (Objects.nonNull(data.get("报货物流仓库"))){ + importOaOldShopDataDTO.setDeclareGoodsLogisticsWarehouseName(String.valueOf(data.get("报货物流仓库"))); + } + if (Objects.nonNull(data.get("收款公司民生银行账号"))){ + importOaOldShopDataDTO.setReceivingMsBankAccount(String.valueOf(data.get("收款公司民生银行账号"))); + } + if (Objects.nonNull(data.get("云流水账号"))){ + importOaOldShopDataDTO.setYlsAccount(String.valueOf(data.get("云流水账号"))); + } + if (Objects.nonNull(data.get("加盟费"))){ + importOaOldShopDataDTO.setYearFranchiseFee(String.valueOf(data.get("加盟费"))); + } + if (Objects.nonNull(data.get("加盟费优惠原因"))){ + importOaOldShopDataDTO.setDiscountReason(String.valueOf(data.get("加盟费优惠原因"))); + } + if (Objects.nonNull(data.get("管理费"))){ + importOaOldShopDataDTO.setFirstYearManageFee(String.valueOf(data.get("管理费"))); + } + if (Objects.nonNull(data.get("设计费"))){ + importOaOldShopDataDTO.setPerformanceBond(String.valueOf(data.get("设计费"))); + } + if (Objects.nonNull(data.get("保证金"))){ + importOaOldShopDataDTO.setLoanMargin(String.valueOf(data.get("保证金"))); + } + if (Objects.nonNull(data.get("品牌使用管理费"))){ + importOaOldShopDataDTO.setFirstYearFee(String.valueOf(data.get("品牌使用管理费"))); + } + return importOaOldShopDataDTO; + } +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseFeeServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseFeeServiceImpl.java index e1e5d0856..93c9c638f 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseFeeServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseFeeServiceImpl.java @@ -22,6 +22,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.math.BigDecimal; import java.math.BigInteger; import java.util.*; import java.util.stream.Collectors; @@ -109,8 +110,8 @@ public class FranchiseFeeServiceImpl implements FranchiseFeeService { LineInfoDO lineInfoDO = lineInfoMapper.getByLineId(linePayDO.getLineId()); linePayResult.setPartnerName(lineInfoDO.getUsername()); } - linePayResult.setAmount(new BigInteger(result.getPerformanceBond()).add(new BigInteger(result.getFirstYearFee())).add(new BigInteger(result.getFirstYearManageFee())) - .add(new BigInteger(result.getYearFranchiseFee())).add(new BigInteger(result.getLoanMargin())).toString()); + linePayResult.setAmount(new BigDecimal(result.getPerformanceBond()).add(new BigDecimal(result.getFirstYearFee())).add(new BigDecimal(result.getFirstYearManageFee())) + .add(new BigDecimal(result.getYearFranchiseFee())).add(new BigDecimal(result.getLoanMargin())).toString()); if (Objects.nonNull(result.getAuditId())) { ShopAuditInfoDO shopAuditInfoDO = shopAuditInfoMapper.selectByPrimaryKey(result.getAuditId()); linePayResult.setStatus(shopAuditInfoDO.getResultType()); diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ShopAccountServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ShopAccountServiceImpl.java index 6e3e9d5ba..02229716e 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ShopAccountServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ShopAccountServiceImpl.java @@ -361,5 +361,15 @@ public class ShopAccountServiceImpl implements ShopAccountService { return true; } + @Override + public Boolean handleOldDataAccount() { + List hyPartnerUserInfoDOS = hyPartnerUserInfoDAO.selectPasswordIsNull(); + if (CollectionUtils.isEmpty(hyPartnerUserInfoDOS)){ + return true; + } + List partnerIds = hyPartnerUserInfoDOS.stream().map(HyPartnerUserInfoDO::getPartnerId).collect(Collectors.toList()); + return 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 new file mode 100644 index 000000000..3457e3f03 --- /dev/null +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/DataHandlerController.java @@ -0,0 +1,73 @@ +package com.cool.store.controller.webb; + +import cn.hutool.poi.excel.ExcelReader; +import cn.hutool.poi.excel.ExcelUtil; +import com.cool.store.context.CurrentUserHolder; +import com.cool.store.context.LoginUserInfo; +import com.cool.store.entity.ImportTaskDO; +import com.cool.store.enums.ImportEnum; +import com.cool.store.enums.ImportTaskStatusEnum; +import com.cool.store.mapper.ImportTaskMapper; +import com.cool.store.response.ResponseResult; +import com.cool.store.service.DataHandlerServer; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.List; +import java.util.Map; + +/** + * @Author: WangShuo + * @Date: 2025/05/12/14:40 + * @Version 1.0 + * @注释: + */ +@RequestMapping("/pc/dataHandler") +@RestController +@Api("数据处理") +@Slf4j +public class DataHandlerController { + + @Resource + private DataHandlerServer dataHandlerServer; + @Resource + private ImportTaskMapper importTaskMapper; + + + @Value("${mybatis.configuration.variables.enterpriseId}") + private String eid; + @PostMapping("/importOaOldShopData") + @ApiOperation("导入OA旧数据") + public ResponseResult importOaOldShopData(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(ImportEnum.IMPORT_OA_OLD_SHOP_DATA.getCode()); + 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.importOaOldShopData(dataMapList, file.getOriginalFilename(), CurrentUserHolder.getUser(), importTaskDO); + return ResponseResult.success(true); + } + + +}