From 176e403813e423bd97a76f933715d3015e13e1c5 Mon Sep 17 00:00:00 2001 From: "shuo.wang" Date: Tue, 13 May 2025 17:00:13 +0800 Subject: [PATCH 01/14] =?UTF-8?q?=E5=8A=A0=E7=9B=9F=E6=8A=A5=E8=A1=A8?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cool/store/enums/ErrorCodeEnum.java | 2 +- .../java/com/cool/store/dao/BigRegionDAO.java | 24 +++++ .../java/com/cool/store/dao/ShopInfoDAO.java | 11 +-- .../com/cool/store/mapper/ShopInfoMapper.java | 10 +-- .../main/resources/mapper/BigRegionMapper.xml | 1 + .../main/resources/mapper/ShopInfoMapper.xml | 24 +++++ .../cool/store/dto/FranchiseReportDTO.java | 19 ++++ .../com/cool/store/entity/BigRegionDO.java | 11 +++ .../store/request/FranchiseReportRequest.java | 33 +++++++ .../response/FranchiseReportResponse.java | 62 +++++++++++++ .../store/service/FranchiseReportService.java | 18 ++++ .../impl/FranchiseReportServiceImpl.java | 90 +++++++++++++++++++ .../webb/PCFranchiseReportController.java | 34 +++++++ 13 files changed, 327 insertions(+), 12 deletions(-) create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/FranchiseReportDTO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/request/FranchiseReportRequest.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/response/FranchiseReportResponse.java create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/service/FranchiseReportService.java create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseReportServiceImpl.java create mode 100644 coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCFranchiseReportController.java diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java index 198e62f71..e31ee5dad 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java @@ -195,7 +195,7 @@ public enum ErrorCodeEnum { AUDIT_RESULT_FALSE(109012, "意向加盟合同API本次调用结果与上一次不一致", null), - TIME_NULL_FALSE(109013, "有时间为空", null), + TIME_NULL_FALSE(109013, "完成时间不能为空", null), UNISSUED_STATEMENT_2(109014, "该门店已发布账单", null), diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/BigRegionDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/BigRegionDAO.java index 7ad2de9cc..aa66093cf 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/BigRegionDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/BigRegionDAO.java @@ -5,10 +5,13 @@ import com.cool.store.entity.BigRegionDO; import com.cool.store.enums.ErrorCodeEnum; import com.cool.store.exception.ServiceException; import com.cool.store.mapper.BigRegionMapper; +import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Repository; +import tk.mybatis.mapper.entity.Example; import javax.annotation.Resource; import java.util.List; +import java.util.stream.Collectors; /** * @Author suzhuhong @@ -32,4 +35,25 @@ public class BigRegionDAO { return bigRegionMapper.queryOrgInfoByBigRegionAndJoinMode(regionId,joinMode); } + public List getRegionIdByGroupName(List groupNameList){ + if (CollectionUtils.isEmpty(groupNameList)){ + return null; + } + Example example = new Example(BigRegionDO.class); + example.createCriteria().andIn("groupName", groupNameList); + List bigRegionDOS = bigRegionMapper.selectByExample(example); + if (CollectionUtils.isEmpty(bigRegionDOS)){ + return null; + } + return bigRegionDOS.stream().map(BigRegionDO::getRegionId).collect(Collectors.toList()); + } + public List getByRegionIdList(List regionIdList){ + if (CollectionUtils.isEmpty(regionIdList)){ + return null; + } + Example example = new Example(BigRegionDO.class); + example.createCriteria().andIn("regionId", regionIdList); + return bigRegionMapper.selectByExample(example); + } + } 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 752b70974..8eb4faa79 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 @@ -1,6 +1,7 @@ package com.cool.store.dao; import com.cool.store.constants.CommonConstants; +import com.cool.store.dto.FranchiseReportDTO; import com.cool.store.dto.LicenseSyncDTO; import com.cool.store.dto.Preparation.PreparationDTO; import com.cool.store.dto.openPreparation.OpenPlanShopInfoDTO; @@ -12,11 +13,7 @@ import com.cool.store.enums.ErrorCodeEnum; import com.cool.store.enums.point.ShopStatusEnum; import com.cool.store.exception.ServiceException; import com.cool.store.mapper.ShopInfoMapper; -import com.cool.store.request.BranchShopRequest; -import com.cool.store.request.PlanListRequest; -import com.cool.store.request.PointLinePageRequest; -import com.cool.store.request.PreparationRequest; -import com.cool.store.request.platformBuildListRequest; +import com.cool.store.request.*; import com.cool.store.response.MiniShopsResponse; import com.cool.store.response.PlatformBuildListResponse; import com.cool.store.vo.shop.StageShopCountVO; @@ -290,4 +287,8 @@ public class ShopInfoDAO { example.createCriteria().andIn("shopCode", shopCodeList).andEqualTo("deleted", false); return shopInfoMapper.selectByExample(example); } + + public List getShopFranchiseReportList(FranchiseReportRequest request){ + return shopInfoMapper.getShopFranchiseReportList(request); + } } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopInfoMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopInfoMapper.java index 9b76e07d2..0855df97c 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopInfoMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopInfoMapper.java @@ -1,5 +1,6 @@ package com.cool.store.mapper; +import com.cool.store.dto.FranchiseReportDTO; import com.cool.store.dto.LicenseSyncDTO; import com.cool.store.dto.Preparation.PreparationDTO; import com.cool.store.dto.openPreparation.OpenPlanShopInfoDTO; @@ -7,11 +8,7 @@ import com.cool.store.dto.point.LineCountDTO; import com.cool.store.dto.point.ShopPointDTO; import com.cool.store.entity.PointInfoDO; import com.cool.store.entity.ShopInfoDO; -import com.cool.store.request.BranchShopRequest; -import com.cool.store.request.PlanListRequest; -import com.cool.store.request.PointLinePageRequest; -import com.cool.store.request.PreparationRequest; -import com.cool.store.request.platformBuildListRequest; +import com.cool.store.request.*; import com.cool.store.response.MiniShopsResponse; import com.cool.store.response.PlatformBuildListResponse; import com.cool.store.vo.shop.StageShopCountVO; @@ -114,7 +111,7 @@ public interface ShopInfoMapper extends Mapper { /** * selectAllDataOrByShopId - * @param shopId + * @param * @return */ List selectAllDataOrByLineId(@Param("lineId") Long lineId); @@ -141,4 +138,5 @@ public interface ShopInfoMapper extends Mapper { Integer updateShopCity(@Param("list") List list); + List getShopFranchiseReportList(@Param("request") FranchiseReportRequest request); } diff --git a/coolstore-partner-dao/src/main/resources/mapper/BigRegionMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/BigRegionMapper.xml index 494582b8e..105dc4415 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/BigRegionMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/BigRegionMapper.xml @@ -14,6 +14,7 @@ + diff --git a/coolstore-partner-dao/src/main/resources/mapper/ShopInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/ShopInfoMapper.xml index 8304935e9..5491d7249 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/ShopInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/ShopInfoMapper.xml @@ -482,6 +482,30 @@ a.create_time >= '2025-04-19 00:00:00' and b.downstream_system_salting is null; + diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/FranchiseReportDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/FranchiseReportDTO.java new file mode 100644 index 000000000..5299073c8 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/FranchiseReportDTO.java @@ -0,0 +1,19 @@ +package com.cool.store.dto; + +import lombok.Data; + +/** + * @Author: WangShuo + * @Date: 2025/05/13/15:59 + * @Version 1.0 + * @注释: + */ +@Data +public class FranchiseReportDTO { + + private Long shopId; + + private Long regionId; + + private Integer storeType; +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/BigRegionDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/BigRegionDO.java index 3ce1077d4..d8cdf1d46 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/BigRegionDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/BigRegionDO.java @@ -57,6 +57,17 @@ public class BigRegionDO { @Column(name = "update_time") private Date updateTime; + //集团名称 + @Column(name = "group_name") + private String groupName; + + public String getGroupName() { + return groupName; + } + + public void setGroupName(String groupName) { + this.groupName = groupName; + } /** * @return id */ diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/FranchiseReportRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/FranchiseReportRequest.java new file mode 100644 index 000000000..41c82fbff --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/FranchiseReportRequest.java @@ -0,0 +1,33 @@ +package com.cool.store.request; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; +import java.util.List; + +/** + * @Author: WangShuo + * @Date: 2025/05/13/15:27 + * @Version 1.0 + * @注释: + */ +@Data +public class FranchiseReportRequest { + + @ApiModelProperty(value = "加盟集团") + private List joinGroupName; + + @ApiModelProperty(value = "加盟分部/片区") + private List regionIds; + + @ApiModelProperty(value = "门店类型") + private List storeTypes; + + @ApiModelProperty(value = "建店完成开始 时间格式 2025-05-01 00:00:00") + private String buildStartTime; + + @ApiModelProperty(value = "建店完成结束时间 时间格式 2025-05-01 23:59:59") + private String buildEndTime; +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/response/FranchiseReportResponse.java b/coolstore-partner-model/src/main/java/com/cool/store/response/FranchiseReportResponse.java new file mode 100644 index 000000000..35cc6bc71 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/response/FranchiseReportResponse.java @@ -0,0 +1,62 @@ +package com.cool.store.response; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @Author: WangShuo + * @Date: 2025/05/13/15:30 + * @Version 1.0 + * @注释: + */ +@Data +public class FranchiseReportResponse { + + @ApiModelProperty(value = "加盟集团") + private String joinGroupName; + + @ApiModelProperty(value = "加盟分部/片区") + private String regionName; + + @ApiModelProperty(value = "门店数") + private Integer storeNum; + + @ApiModelProperty(value = "鸡排普通店") + private Integer normalStoreNum = 0; + + @ApiModelProperty(value = "鸡排餐厅店") + private Integer restaurantStoreNum = 0; + + @ApiModelProperty(value = "鸡排无展示门店") + private Integer noShowStoreNum = 0; + + @ApiModelProperty(value = "加盟费") + private BigDecimal franchiseFeeTotal = BigDecimal.ZERO; + + @ApiModelProperty(value = "品牌费") + private BigDecimal firstYearBrandingFeeTotal = BigDecimal.ZERO; + + @ApiModelProperty(value = "管理费") + private BigDecimal firstYearManagementFeeTotal = BigDecimal.ZERO; + + @ApiModelProperty(value = "设计费") + private BigDecimal performanceBondTotal = BigDecimal.ZERO; + + @ApiModelProperty(value = "管理/品牌/设计费") + private BigDecimal managementBrandingDesignFeeTotal = BigDecimal.ZERO; + + @ApiModelProperty(value = "保证金") + private BigDecimal loanMarginTotal = BigDecimal.ZERO; + + @ApiModelProperty(value = "昨日日期") + private String yesterdayDate; + + @ApiModelProperty(value = "昨天门店数") + private Integer yesterdayStoreNum = 0; + + private Long regionId; + + +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/FranchiseReportService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/FranchiseReportService.java new file mode 100644 index 000000000..454eae385 --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/FranchiseReportService.java @@ -0,0 +1,18 @@ +package com.cool.store.service; + +import com.cool.store.request.FranchiseReportRequest; +import com.cool.store.response.FranchiseReportResponse; +import com.github.pagehelper.PageInfo; + +import java.util.List; + +/** + * @Author: WangShuo + * @Date: 2025/05/13/15:22 + * @Version 1.0 + * @注释: + */ +public interface FranchiseReportService { + + List getFranchiseReport(FranchiseReportRequest request); +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseReportServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseReportServiceImpl.java new file mode 100644 index 000000000..32e866c53 --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseReportServiceImpl.java @@ -0,0 +1,90 @@ +package com.cool.store.service.impl; + +import com.cool.store.dao.BigRegionDAO; +import com.cool.store.dao.FranchiseFeeDAO; +import com.cool.store.dao.ShopInfoDAO; +import com.cool.store.dto.FranchiseReportDTO; +import com.cool.store.entity.BigRegionDO; +import com.cool.store.entity.FranchiseFeeDO; +import com.cool.store.enums.ErrorCodeEnum; +import com.cool.store.enums.StoreTypeEnum; +import com.cool.store.exception.ServiceException; +import com.cool.store.mapper.FranchiseFeeMapper; +import com.cool.store.request.FranchiseReportRequest; +import com.cool.store.response.FranchiseReportResponse; +import com.cool.store.service.FranchiseReportService; +import com.cool.store.utils.poi.StringUtils; +import com.github.pagehelper.PageInfo; +import groovy.util.logging.Log4j; +import io.swagger.annotations.ApiModelProperty; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.*; +import java.util.stream.Collectors; + +/** + * @Author: WangShuo + * @Date: 2025/05/13/15:22 + * @Version 1.0 + * @注释: + */ +@Slf4j +@Service +public class FranchiseReportServiceImpl implements FranchiseReportService { + @Resource + private BigRegionDAO bigRegionDAO; + @Resource + private ShopInfoDAO shopInfoDAO; + @Resource + private FranchiseFeeMapper franchiseFeeMapper; + + @Override + public List getFranchiseReport(FranchiseReportRequest request) { + if (StringUtils.isBlank(request.getBuildStartTime()) || StringUtils.isBlank(request.getBuildEndTime())) { + throw new ServiceException(ErrorCodeEnum.TIME_NULL_FALSE); + } + //集团查大区 + List regionIdByGroupName = bigRegionDAO.getRegionIdByGroupName(request.getJoinGroupName()); + if (CollectionUtils.isNotEmpty(regionIdByGroupName)) { + request.getRegionIds().addAll(regionIdByGroupName); + } + List shopFranchiseReportList = shopInfoDAO.getShopFranchiseReportList(request); + if (CollectionUtils.isEmpty(shopFranchiseReportList)) { + log.info("查询门店数据为空"); + return null; + } + List responseList = new ArrayList<>(); + List shopIds = shopFranchiseReportList.stream().map(FranchiseReportDTO::getShopId).collect(Collectors.toList()); + Set regionSet = shopFranchiseReportList.stream().map(FranchiseReportDTO::getRegionId).collect(Collectors.toSet()); + Map> shopByRegionMap = shopFranchiseReportList.stream().collect(Collectors.groupingBy(FranchiseReportDTO::getRegionId)); + //加盟费账单 + List franchiseFeeList = franchiseFeeMapper.getFranchiseFeeByShopIds(shopIds); + Map franchiseFeeMap = franchiseFeeList.stream().collect(Collectors.toMap(FranchiseFeeDO::getShopId, franchiseFeeDO -> franchiseFeeDO)); + List bigRegionDOList = bigRegionDAO.getByRegionIdList(new ArrayList<>(regionSet)); + Map bigRegionDOMap = bigRegionDOList.stream().collect(Collectors.toMap(BigRegionDO::getRegionId, bigRegionDO -> bigRegionDO)); + Map responseByRegionIdMap = new HashMap<>(); + + for (FranchiseReportDTO shopFranchiseReportDTO : shopFranchiseReportList) { + FranchiseReportResponse response = responseByRegionIdMap.get(shopFranchiseReportDTO.getRegionId()); + if (response == null){ + response = new FranchiseReportResponse(); + } + if (StoreTypeEnum.NO_SHOW_STORE.getCode().equals(shopFranchiseReportDTO.getStoreType())){ + response.setNoShowStoreNum(response.getNoShowStoreNum() + 1); + }else if (StoreTypeEnum.ORDINARY_STORE.getCode().equals(shopFranchiseReportDTO.getStoreType())){ + response.setNormalStoreNum(response.getNormalStoreNum() + 1); + }else if (StoreTypeEnum.RESTAURANT_STORE.getCode().equals(shopFranchiseReportDTO.getStoreType())){ + response.setRestaurantStoreNum(response.getRestaurantStoreNum() + 1); + } + FranchiseFeeDO franchiseFeeDO = franchiseFeeMap.get(shopFranchiseReportDTO.getShopId()); + if (franchiseFeeDO != null){ + // response.setFranchiseFeeTotal(response.getFranchiseFeeTotal().add(franchiseFeeDO.getYearFranchiseFee())); + } + } + + return null; + } +} diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCFranchiseReportController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCFranchiseReportController.java new file mode 100644 index 000000000..13342ae2a --- /dev/null +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCFranchiseReportController.java @@ -0,0 +1,34 @@ +package com.cool.store.controller.webb; + +import com.cool.store.request.FranchiseReportRequest; +import com.cool.store.response.FranchiseReportResponse; +import com.cool.store.response.ResponseResult; +import com.cool.store.service.FranchiseReportService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @Author: WangShuo + * @Date: 2025/05/13/15:46 + * @Version 1.0 + * @注释: + */ +@RestController +@RequestMapping("/pc/franchiseReport") +@Api(tags = "PC端加盟报表") +public class PCFranchiseReportController { + @Resource + private FranchiseReportService franchiseReportService; + + @RequestMapping("/getList") + @ApiOperation("正新鸡排开店") + public ResponseResult> getList(@RequestBody FranchiseReportRequest request) { + return ResponseResult.success( franchiseReportService.getFranchiseReport(request)); + } +} From 11de076ba2682c378fabe9703d3b94130aaf8bb0 Mon Sep 17 00:00:00 2001 From: "shuo.wang" Date: Wed, 14 May 2025 10:02:43 +0800 Subject: [PATCH 02/14] =?UTF-8?q?=E5=90=88=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../response/FranchiseReportResponse.java | 2 +- .../impl/FranchiseReportServiceImpl.java | 96 +++++++++++-------- 2 files changed, 55 insertions(+), 43 deletions(-) diff --git a/coolstore-partner-model/src/main/java/com/cool/store/response/FranchiseReportResponse.java b/coolstore-partner-model/src/main/java/com/cool/store/response/FranchiseReportResponse.java index 35cc6bc71..1ca3b0361 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/response/FranchiseReportResponse.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/response/FranchiseReportResponse.java @@ -21,7 +21,7 @@ public class FranchiseReportResponse { private String regionName; @ApiModelProperty(value = "门店数") - private Integer storeNum; + private Integer storeNum = 0; @ApiModelProperty(value = "鸡排普通店") private Integer normalStoreNum = 0; diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseReportServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseReportServiceImpl.java index 32e866c53..cc8daab41 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseReportServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseReportServiceImpl.java @@ -22,6 +22,7 @@ import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.*; import java.util.stream.Collectors; @@ -43,48 +44,59 @@ public class FranchiseReportServiceImpl implements FranchiseReportService { @Override public List getFranchiseReport(FranchiseReportRequest request) { - if (StringUtils.isBlank(request.getBuildStartTime()) || StringUtils.isBlank(request.getBuildEndTime())) { - throw new ServiceException(ErrorCodeEnum.TIME_NULL_FALSE); - } - //集团查大区 - List regionIdByGroupName = bigRegionDAO.getRegionIdByGroupName(request.getJoinGroupName()); - if (CollectionUtils.isNotEmpty(regionIdByGroupName)) { - request.getRegionIds().addAll(regionIdByGroupName); - } - List shopFranchiseReportList = shopInfoDAO.getShopFranchiseReportList(request); - if (CollectionUtils.isEmpty(shopFranchiseReportList)) { - log.info("查询门店数据为空"); - return null; - } - List responseList = new ArrayList<>(); - List shopIds = shopFranchiseReportList.stream().map(FranchiseReportDTO::getShopId).collect(Collectors.toList()); - Set regionSet = shopFranchiseReportList.stream().map(FranchiseReportDTO::getRegionId).collect(Collectors.toSet()); - Map> shopByRegionMap = shopFranchiseReportList.stream().collect(Collectors.groupingBy(FranchiseReportDTO::getRegionId)); - //加盟费账单 - List franchiseFeeList = franchiseFeeMapper.getFranchiseFeeByShopIds(shopIds); - Map franchiseFeeMap = franchiseFeeList.stream().collect(Collectors.toMap(FranchiseFeeDO::getShopId, franchiseFeeDO -> franchiseFeeDO)); - List bigRegionDOList = bigRegionDAO.getByRegionIdList(new ArrayList<>(regionSet)); - Map bigRegionDOMap = bigRegionDOList.stream().collect(Collectors.toMap(BigRegionDO::getRegionId, bigRegionDO -> bigRegionDO)); - Map responseByRegionIdMap = new HashMap<>(); - - for (FranchiseReportDTO shopFranchiseReportDTO : shopFranchiseReportList) { - FranchiseReportResponse response = responseByRegionIdMap.get(shopFranchiseReportDTO.getRegionId()); - if (response == null){ - response = new FranchiseReportResponse(); - } - if (StoreTypeEnum.NO_SHOW_STORE.getCode().equals(shopFranchiseReportDTO.getStoreType())){ - response.setNoShowStoreNum(response.getNoShowStoreNum() + 1); - }else if (StoreTypeEnum.ORDINARY_STORE.getCode().equals(shopFranchiseReportDTO.getStoreType())){ - response.setNormalStoreNum(response.getNormalStoreNum() + 1); - }else if (StoreTypeEnum.RESTAURANT_STORE.getCode().equals(shopFranchiseReportDTO.getStoreType())){ - response.setRestaurantStoreNum(response.getRestaurantStoreNum() + 1); - } - FranchiseFeeDO franchiseFeeDO = franchiseFeeMap.get(shopFranchiseReportDTO.getShopId()); - if (franchiseFeeDO != null){ - // response.setFranchiseFeeTotal(response.getFranchiseFeeTotal().add(franchiseFeeDO.getYearFranchiseFee())); - } - } - +// if (StringUtils.isBlank(request.getBuildStartTime()) || StringUtils.isBlank(request.getBuildEndTime())) { +// throw new ServiceException(ErrorCodeEnum.TIME_NULL_FALSE); +// } +// //集团查大区 +// List regionIdByGroupName = bigRegionDAO.getRegionIdByGroupName(request.getJoinGroupName()); +// if (CollectionUtils.isNotEmpty(regionIdByGroupName)) { +// request.getRegionIds().addAll(regionIdByGroupName); +// } +// List shopFranchiseReportList = shopInfoDAO.getShopFranchiseReportList(request); +// if (CollectionUtils.isEmpty(shopFranchiseReportList)) { +// log.info("查询门店数据为空"); +// return null; +// } +// List responseList = new ArrayList<>(); +// List shopIds = shopFranchiseReportList.stream().map(FranchiseReportDTO::getShopId).collect(Collectors.toList()); +// Set regionSet = shopFranchiseReportList.stream().map(FranchiseReportDTO::getRegionId).collect(Collectors.toSet()); +// Map> shopByRegionMap = shopFranchiseReportList.stream().collect(Collectors.groupingBy(FranchiseReportDTO::getRegionId)); +// //加盟费账单 +// List franchiseFeeList = franchiseFeeMapper.getFranchiseFeeByShopIds(shopIds); +// Map franchiseFeeMap = franchiseFeeList.stream().collect(Collectors.toMap(FranchiseFeeDO::getShopId, franchiseFeeDO -> franchiseFeeDO)); +// List bigRegionDOList = bigRegionDAO.getByRegionIdList(new ArrayList<>(regionSet)); +// Map bigRegionDOMap = bigRegionDOList.stream().collect(Collectors.toMap(BigRegionDO::getRegionId, bigRegionDO -> bigRegionDO)); +// Map responseByRegionIdMap = new HashMap<>(); +// +// for (FranchiseReportDTO shopFranchiseReportDTO : shopFranchiseReportList) { +// FranchiseReportResponse response = responseByRegionIdMap.get(shopFranchiseReportDTO.getRegionId()); +// if (response == null){ +// response = new FranchiseReportResponse(); +// } +// if (StoreTypeEnum.NO_SHOW_STORE.getCode().equals(shopFranchiseReportDTO.getStoreType())){ +// response.setNoShowStoreNum(response.getNoShowStoreNum() + 1); +// }else if (StoreTypeEnum.ORDINARY_STORE.getCode().equals(shopFranchiseReportDTO.getStoreType())){ +// response.setNormalStoreNum(response.getNormalStoreNum() + 1); +// }else if (StoreTypeEnum.RESTAURANT_STORE.getCode().equals(shopFranchiseReportDTO.getStoreType())){ +// response.setRestaurantStoreNum(response.getRestaurantStoreNum() + 1); +// } +// response.setStoreNum(response.getStoreNum() + 1); +// FranchiseFeeDO franchiseFeeDO = franchiseFeeMap.get(shopFranchiseReportDTO.getShopId()); +// if (franchiseFeeDO != null){ +// response.setFranchiseFeeTotal(response.getFranchiseFeeTotal().add(new BigDecimal(franchiseFeeDO.getYearFranchiseFee()))); +// response.setLoanMarginTotal(response.getLoanMarginTotal().add(new BigDecimal(franchiseFeeDO.getLoanMargin()))); +// response.setFirstYearManagementFeeTotal(response.getFirstYearManagementFeeTotal().add(new BigDecimal(franchiseFeeDO.getFirstYearManageFee()))); +// response.setFirstYearBrandingFeeTotal(response.getFirstYearBrandingFeeTotal().add(new BigDecimal(franchiseFeeDO.getFirstYearFee()))); +// response.setPerformanceBondTotal(response.getPerformanceBondTotal().add(new BigDecimal(franchiseFeeDO.getPerformanceBond()))); +// response.setManagementBrandingDesignFeeTotal(response.getManagementBrandingDesignFeeTotal() +// .add(new BigDecimal(franchiseFeeDO.getYearFranchiseFee())) +// .add(new BigDecimal(franchiseFeeDO.getFirstYearManageFee())) +// .add(new BigDecimal(franchiseFeeDO.getFirstYearFee())) +// .add(new BigDecimal(franchiseFeeDO.getPerformanceBond()))); +// } +// responseByRegionIdMap.put(shopFranchiseReportDTO.getRegionId(), response); +// } +// return null; } } From dd3aa8883395bdd47dd7d288b1be210d04f34635 Mon Sep 17 00:00:00 2001 From: "shuo.wang" Date: Wed, 14 May 2025 10:37:31 +0800 Subject: [PATCH 03/14] fix --- .../impl/FranchiseReportServiceImpl.java | 123 ++++++++++-------- 1 file changed, 70 insertions(+), 53 deletions(-) diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseReportServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseReportServiceImpl.java index cc8daab41..8932be004 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseReportServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseReportServiceImpl.java @@ -23,6 +23,9 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.*; import java.util.stream.Collectors; @@ -44,59 +47,73 @@ public class FranchiseReportServiceImpl implements FranchiseReportService { @Override public List getFranchiseReport(FranchiseReportRequest request) { -// if (StringUtils.isBlank(request.getBuildStartTime()) || StringUtils.isBlank(request.getBuildEndTime())) { -// throw new ServiceException(ErrorCodeEnum.TIME_NULL_FALSE); -// } -// //集团查大区 -// List regionIdByGroupName = bigRegionDAO.getRegionIdByGroupName(request.getJoinGroupName()); -// if (CollectionUtils.isNotEmpty(regionIdByGroupName)) { -// request.getRegionIds().addAll(regionIdByGroupName); -// } -// List shopFranchiseReportList = shopInfoDAO.getShopFranchiseReportList(request); -// if (CollectionUtils.isEmpty(shopFranchiseReportList)) { -// log.info("查询门店数据为空"); -// return null; -// } -// List responseList = new ArrayList<>(); -// List shopIds = shopFranchiseReportList.stream().map(FranchiseReportDTO::getShopId).collect(Collectors.toList()); -// Set regionSet = shopFranchiseReportList.stream().map(FranchiseReportDTO::getRegionId).collect(Collectors.toSet()); -// Map> shopByRegionMap = shopFranchiseReportList.stream().collect(Collectors.groupingBy(FranchiseReportDTO::getRegionId)); -// //加盟费账单 -// List franchiseFeeList = franchiseFeeMapper.getFranchiseFeeByShopIds(shopIds); -// Map franchiseFeeMap = franchiseFeeList.stream().collect(Collectors.toMap(FranchiseFeeDO::getShopId, franchiseFeeDO -> franchiseFeeDO)); -// List bigRegionDOList = bigRegionDAO.getByRegionIdList(new ArrayList<>(regionSet)); -// Map bigRegionDOMap = bigRegionDOList.stream().collect(Collectors.toMap(BigRegionDO::getRegionId, bigRegionDO -> bigRegionDO)); -// Map responseByRegionIdMap = new HashMap<>(); -// -// for (FranchiseReportDTO shopFranchiseReportDTO : shopFranchiseReportList) { -// FranchiseReportResponse response = responseByRegionIdMap.get(shopFranchiseReportDTO.getRegionId()); -// if (response == null){ -// response = new FranchiseReportResponse(); -// } -// if (StoreTypeEnum.NO_SHOW_STORE.getCode().equals(shopFranchiseReportDTO.getStoreType())){ -// response.setNoShowStoreNum(response.getNoShowStoreNum() + 1); -// }else if (StoreTypeEnum.ORDINARY_STORE.getCode().equals(shopFranchiseReportDTO.getStoreType())){ -// response.setNormalStoreNum(response.getNormalStoreNum() + 1); -// }else if (StoreTypeEnum.RESTAURANT_STORE.getCode().equals(shopFranchiseReportDTO.getStoreType())){ -// response.setRestaurantStoreNum(response.getRestaurantStoreNum() + 1); -// } -// response.setStoreNum(response.getStoreNum() + 1); -// FranchiseFeeDO franchiseFeeDO = franchiseFeeMap.get(shopFranchiseReportDTO.getShopId()); -// if (franchiseFeeDO != null){ -// response.setFranchiseFeeTotal(response.getFranchiseFeeTotal().add(new BigDecimal(franchiseFeeDO.getYearFranchiseFee()))); -// response.setLoanMarginTotal(response.getLoanMarginTotal().add(new BigDecimal(franchiseFeeDO.getLoanMargin()))); -// response.setFirstYearManagementFeeTotal(response.getFirstYearManagementFeeTotal().add(new BigDecimal(franchiseFeeDO.getFirstYearManageFee()))); -// response.setFirstYearBrandingFeeTotal(response.getFirstYearBrandingFeeTotal().add(new BigDecimal(franchiseFeeDO.getFirstYearFee()))); -// response.setPerformanceBondTotal(response.getPerformanceBondTotal().add(new BigDecimal(franchiseFeeDO.getPerformanceBond()))); -// response.setManagementBrandingDesignFeeTotal(response.getManagementBrandingDesignFeeTotal() -// .add(new BigDecimal(franchiseFeeDO.getYearFranchiseFee())) -// .add(new BigDecimal(franchiseFeeDO.getFirstYearManageFee())) -// .add(new BigDecimal(franchiseFeeDO.getFirstYearFee())) -// .add(new BigDecimal(franchiseFeeDO.getPerformanceBond()))); -// } -// responseByRegionIdMap.put(shopFranchiseReportDTO.getRegionId(), response); -// } -// + if (StringUtils.isBlank(request.getBuildStartTime()) || StringUtils.isBlank(request.getBuildEndTime())) { + throw new ServiceException(ErrorCodeEnum.TIME_NULL_FALSE); + } + //集团查大区 + List regionIdByGroupName = bigRegionDAO.getRegionIdByGroupName(request.getJoinGroupName()); + if (CollectionUtils.isNotEmpty(regionIdByGroupName)) { + request.getRegionIds().addAll(regionIdByGroupName); + } + List shopFranchiseReportList = shopInfoDAO.getShopFranchiseReportList(request); + if (CollectionUtils.isEmpty(shopFranchiseReportList)) { + log.info("查询门店数据为空"); + return null; + } + List responseList = new ArrayList<>(); + List shopIds = shopFranchiseReportList.stream().map(FranchiseReportDTO::getShopId).collect(Collectors.toList()); + Set regionSet = shopFranchiseReportList.stream().map(FranchiseReportDTO::getRegionId).collect(Collectors.toSet()); + //加盟费账单 + List franchiseFeeList = franchiseFeeMapper.getFranchiseFeeByShopIds(shopIds); + Map franchiseFeeMap = franchiseFeeList.stream().collect(Collectors.toMap(FranchiseFeeDO::getShopId, franchiseFeeDO -> franchiseFeeDO)); + List bigRegionDOList = bigRegionDAO.getByRegionIdList(new ArrayList<>(regionSet)); + Map bigRegionDOMap = bigRegionDOList.stream().collect(Collectors.toMap(BigRegionDO::getRegionId, bigRegionDO -> bigRegionDO)); + Map responseByRegionIdMap = new HashMap<>(); + + for (FranchiseReportDTO shopFranchiseReportDTO : shopFranchiseReportList) { + FranchiseReportResponse response = responseByRegionIdMap.get(shopFranchiseReportDTO.getRegionId()); + if (response == null) { + response = new FranchiseReportResponse(); + response.setJoinGroupName(bigRegionDOMap.getOrDefault(shopFranchiseReportDTO.getRegionId(), new BigRegionDO()).getGroupName()); + } + if (StoreTypeEnum.NO_SHOW_STORE.getCode().equals(shopFranchiseReportDTO.getStoreType())) { + response.setNoShowStoreNum(response.getNoShowStoreNum() + 1); + } else if (StoreTypeEnum.ORDINARY_STORE.getCode().equals(shopFranchiseReportDTO.getStoreType())) { + response.setNormalStoreNum(response.getNormalStoreNum() + 1); + } else if (StoreTypeEnum.RESTAURANT_STORE.getCode().equals(shopFranchiseReportDTO.getStoreType())) { + response.setRestaurantStoreNum(response.getRestaurantStoreNum() + 1); + } + response.setStoreNum(response.getStoreNum() + 1); + FranchiseFeeDO franchiseFeeDO = franchiseFeeMap.get(shopFranchiseReportDTO.getShopId()); + if (franchiseFeeDO != null) { + response.setFranchiseFeeTotal(response.getFranchiseFeeTotal().add(new BigDecimal(franchiseFeeDO.getYearFranchiseFee()))); + response.setLoanMarginTotal(response.getLoanMarginTotal().add(new BigDecimal(franchiseFeeDO.getLoanMargin()))); + response.setFirstYearManagementFeeTotal(response.getFirstYearManagementFeeTotal().add(new BigDecimal(franchiseFeeDO.getFirstYearManageFee()))); + response.setFirstYearBrandingFeeTotal(response.getFirstYearBrandingFeeTotal().add(new BigDecimal(franchiseFeeDO.getFirstYearFee()))); + response.setPerformanceBondTotal(response.getPerformanceBondTotal().add(new BigDecimal(franchiseFeeDO.getPerformanceBond()))); + response.setManagementBrandingDesignFeeTotal(response.getManagementBrandingDesignFeeTotal() + .add(new BigDecimal(franchiseFeeDO.getYearFranchiseFee())) + .add(new BigDecimal(franchiseFeeDO.getFirstYearManageFee())) + .add(new BigDecimal(franchiseFeeDO.getFirstYearFee())) + .add(new BigDecimal(franchiseFeeDO.getPerformanceBond()))); + } + responseByRegionIdMap.put(shopFranchiseReportDTO.getRegionId(), response); + } + FranchiseReportRequest yesterdayRequest = new FranchiseReportRequest(); + yesterdayRequest.setJoinGroupName(request.getJoinGroupName()); + yesterdayRequest.setRegionIds(request.getRegionIds()); + yesterdayRequest.setStoreTypes(request.getStoreTypes()); + LocalDate now = LocalDate.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + //昨日 00:00:00 + LocalDateTime yesterdayStartDate = now.minusDays(1).atStartOfDay(); + String yesterdayStartTime = yesterdayStartDate.format(formatter); + //昨日 23:59:59 + LocalDateTime yesterdayEndDate = now.minusDays(1).atTime(23,59,59); + String yesterdayEndTime = yesterdayEndDate.format(formatter); + yesterdayRequest.setBuildStartTime(yesterdayStartTime); + yesterdayRequest.setBuildEndTime(yesterdayEndTime); + List yesterdayShopFranchiseReportList = shopInfoDAO.getShopFranchiseReportList(yesterdayRequest); return null; } } From f09b89b5fed8acd11efd9e1a64fdec57dfe2479b Mon Sep 17 00:00:00 2001 From: "shuo.wang" Date: Wed, 14 May 2025 14:20:27 +0800 Subject: [PATCH 04/14] =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/cool/store/dao/BigRegionDAO.java | 2 +- .../main/resources/mapper/ShopInfoMapper.xml | 2 +- .../impl/FranchiseReportServiceImpl.java | 21 ++++++++++++++++--- .../service/impl/SyncDataServiceImpl.java | 2 +- 4 files changed, 21 insertions(+), 6 deletions(-) diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/BigRegionDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/BigRegionDAO.java index aa66093cf..6acbb0a2f 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/BigRegionDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/BigRegionDAO.java @@ -52,7 +52,7 @@ public class BigRegionDAO { return null; } Example example = new Example(BigRegionDO.class); - example.createCriteria().andIn("regionId", regionIdList); + example.createCriteria().andIn("regionId", regionIdList).andEqualTo("joinMode",0); return bigRegionMapper.selectByExample(example); } diff --git a/coolstore-partner-dao/src/main/resources/mapper/ShopInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/ShopInfoMapper.xml index 5491d7249..cc651b29d 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/ShopInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/ShopInfoMapper.xml @@ -504,7 +504,7 @@ #{storeType} - and b.actual_completion_time >= #{request.buildStartTime} and b.actual_completion_time <= #{request.buildEndTime} + and b.actual_complete_time >= #{request.buildStartTime} and b.actual_complete_time <= #{request.buildEndTime} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseReportServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseReportServiceImpl.java index 8932be004..c35e3221e 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseReportServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseReportServiceImpl.java @@ -60,7 +60,6 @@ public class FranchiseReportServiceImpl implements FranchiseReportService { log.info("查询门店数据为空"); return null; } - List responseList = new ArrayList<>(); List shopIds = shopFranchiseReportList.stream().map(FranchiseReportDTO::getShopId).collect(Collectors.toList()); Set regionSet = shopFranchiseReportList.stream().map(FranchiseReportDTO::getRegionId).collect(Collectors.toSet()); //加盟费账单 @@ -74,6 +73,8 @@ public class FranchiseReportServiceImpl implements FranchiseReportService { FranchiseReportResponse response = responseByRegionIdMap.get(shopFranchiseReportDTO.getRegionId()); if (response == null) { response = new FranchiseReportResponse(); + response.setRegionId(shopFranchiseReportDTO.getRegionId()); + response.setRegionName(bigRegionDOMap.getOrDefault(shopFranchiseReportDTO.getRegionId(), new BigRegionDO()).getRegionName()); response.setJoinGroupName(bigRegionDOMap.getOrDefault(shopFranchiseReportDTO.getRegionId(), new BigRegionDO()).getGroupName()); } if (StoreTypeEnum.NO_SHOW_STORE.getCode().equals(shopFranchiseReportDTO.getStoreType())) { @@ -100,7 +101,6 @@ public class FranchiseReportServiceImpl implements FranchiseReportService { responseByRegionIdMap.put(shopFranchiseReportDTO.getRegionId(), response); } FranchiseReportRequest yesterdayRequest = new FranchiseReportRequest(); - yesterdayRequest.setJoinGroupName(request.getJoinGroupName()); yesterdayRequest.setRegionIds(request.getRegionIds()); yesterdayRequest.setStoreTypes(request.getStoreTypes()); LocalDate now = LocalDate.now(); @@ -114,6 +114,21 @@ public class FranchiseReportServiceImpl implements FranchiseReportService { yesterdayRequest.setBuildStartTime(yesterdayStartTime); yesterdayRequest.setBuildEndTime(yesterdayEndTime); List yesterdayShopFranchiseReportList = shopInfoDAO.getShopFranchiseReportList(yesterdayRequest); - return null; + DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + if (CollectionUtils.isNotEmpty(yesterdayShopFranchiseReportList)) { + Map> yesterdayMap = yesterdayShopFranchiseReportList.stream().collect( Collectors.groupingBy(FranchiseReportDTO::getRegionId)); + for (Long regionId : responseByRegionIdMap.keySet()){ + FranchiseReportResponse response = responseByRegionIdMap.get(regionId); + if (Objects.isNull(response)){ + continue; + } + List yesterdayList = yesterdayMap.get(regionId); + response.setYesterdayDate(yesterdayStartDate.format(formatter1)); + response.setYesterdayStoreNum(CollectionUtils.isEmpty(yesterdayList) ? 0 : yesterdayList.size()); + responseByRegionIdMap.put(regionId, response); + } + } + + return new ArrayList<>(responseByRegionIdMap.values()); } } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SyncDataServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SyncDataServiceImpl.java index 26ccbb1af..c8a0214a6 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SyncDataServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SyncDataServiceImpl.java @@ -218,7 +218,7 @@ public class SyncDataServiceImpl implements SyncDataService { request.setShopProvince(pointInfo.getProvince()); request.setShopCity(pointInfo.getCity()); } - + log.info("/pushData 数据 :{}",JSONObject.toJSONString(request)); return request; } From 177ff32f58fd970ae868bebe714ffea2fecf5a4a Mon Sep 17 00:00:00 2001 From: "shuo.wang" Date: Wed, 14 May 2025 17:33:32 +0800 Subject: [PATCH 05/14] =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cool/store/enums/FileTypeEnum.java | 1 + .../response/FranchiseReportResponse.java | 34 +++++++++- .../store/handler/CenterAlignHandler.java | 40 +++++++++++ .../ImplProgressReportSheetWriteHandler.java | 54 +++++++++++++++ .../store/service/ExportRealizeService.java | 4 ++ .../com/cool/store/service/ExportService.java | 3 + .../store/service/FranchiseReportService.java | 2 +- .../impl/ExportRealizeServiceImpl.java | 22 ++++++- .../store/service/impl/ExportServiceImpl.java | 26 +++++++- .../impl/FranchiseReportServiceImpl.java | 19 ++++-- .../store/utils/easyExcel/EasyExcelUtil.java | 66 ++++++++++++++----- .../controller/webb/ExportController.java | 6 ++ .../webb/PCFranchiseReportController.java | 4 +- 13 files changed, 253 insertions(+), 28 deletions(-) create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/handler/CenterAlignHandler.java create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/handler/ImplProgressReportSheetWriteHandler.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 4aea3aa78..845692052 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 @@ -20,6 +20,7 @@ public enum FileTypeEnum { EXPORT_PROGRESS("exportProgress","进度确认"), IMPORT_OA_OLD_SHOP_DATA_ERROR("OaOldShopDataError", "导入OA旧数据错误列表"), IMPORT_OA_OLD_SHOP_DATA("importOaOldShopData", "导入OA旧数据"), + ZXJP_OPEN_SHOP_REPORT("zxjpOpenShopReport","正新鸡排开店"), ; private String fileType; diff --git a/coolstore-partner-model/src/main/java/com/cool/store/response/FranchiseReportResponse.java b/coolstore-partner-model/src/main/java/com/cool/store/response/FranchiseReportResponse.java index 1ca3b0361..a896f8c2a 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/response/FranchiseReportResponse.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/response/FranchiseReportResponse.java @@ -1,5 +1,9 @@ package com.cool.store.response; +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.cool.store.annotation.Excel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -15,47 +19,75 @@ import java.math.BigDecimal; public class FranchiseReportResponse { @ApiModelProperty(value = "加盟集团") + @ExcelProperty(value = "加盟集团",order = 1) + @ColumnWidth(25) private String joinGroupName; @ApiModelProperty(value = "加盟分部/片区") + @ExcelProperty(value = "加盟分部/片区",order = 2) + @ColumnWidth(20) private String regionName; @ApiModelProperty(value = "门店数") + @ExcelProperty(value = "门店数",order = 3) + @ColumnWidth(15) private Integer storeNum = 0; @ApiModelProperty(value = "鸡排普通店") + @ExcelProperty(value = "鸡排普通店",order = 4) + @ColumnWidth(20) private Integer normalStoreNum = 0; @ApiModelProperty(value = "鸡排餐厅店") + @ExcelProperty(value = "鸡排餐厅店",order = 5) + @ColumnWidth(20) private Integer restaurantStoreNum = 0; @ApiModelProperty(value = "鸡排无展示门店") + @ExcelProperty(value = "鸡排无展示门店",order = 6) + @ColumnWidth(25) private Integer noShowStoreNum = 0; @ApiModelProperty(value = "加盟费") + @ExcelProperty(value = "加盟费",order = 7) + @ColumnWidth(20) private BigDecimal franchiseFeeTotal = BigDecimal.ZERO; @ApiModelProperty(value = "品牌费") + @ExcelProperty(value = "品牌费",order = 8) + @ColumnWidth(20) private BigDecimal firstYearBrandingFeeTotal = BigDecimal.ZERO; @ApiModelProperty(value = "管理费") + @ExcelProperty(value = "管理费",order = 9) + @ColumnWidth(20) private BigDecimal firstYearManagementFeeTotal = BigDecimal.ZERO; @ApiModelProperty(value = "设计费") + @ExcelProperty(value = "设计费",order = 10) + @ColumnWidth(20) private BigDecimal performanceBondTotal = BigDecimal.ZERO; @ApiModelProperty(value = "管理/品牌/设计费") + @ExcelProperty(value = "管理/品牌/设计费",order = 11) + @ColumnWidth(25) private BigDecimal managementBrandingDesignFeeTotal = BigDecimal.ZERO; @ApiModelProperty(value = "保证金") + @ExcelProperty(value = "保证金",order = 12) + @ColumnWidth(20) private BigDecimal loanMarginTotal = BigDecimal.ZERO; @ApiModelProperty(value = "昨日日期") + @ExcelProperty(value = "昨日日期",order = 13) + @ColumnWidth(15) private String yesterdayDate; @ApiModelProperty(value = "昨天门店数") + @ExcelProperty(value = "昨天门店数",order = 14) + @ColumnWidth(15) private Integer yesterdayStoreNum = 0; - + @ExcelIgnore private Long regionId; diff --git a/coolstore-partner-service/src/main/java/com/cool/store/handler/CenterAlignHandler.java b/coolstore-partner-service/src/main/java/com/cool/store/handler/CenterAlignHandler.java new file mode 100644 index 000000000..57567c31e --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/handler/CenterAlignHandler.java @@ -0,0 +1,40 @@ +package com.cool.store.handler; + +import com.alibaba.excel.metadata.CellData; +import com.alibaba.excel.metadata.Head; +import com.alibaba.excel.write.handler.CellWriteHandler; +import com.alibaba.excel.write.metadata.holder.WriteSheetHolder; +import com.alibaba.excel.write.metadata.holder.WriteTableHolder; +import org.apache.poi.ss.usermodel.*; + +import java.util.List; + +public class CenterAlignHandler implements CellWriteHandler { + @Override + public void beforeCellCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Row row, Head head, Integer integer, Integer integer1, Boolean aBoolean) { + + } + + @Override + public void afterCellCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Cell cell, + Head head, Integer relativeRowIndex, Boolean isHead) { + // 行号从0开始,所以第3行及以后的行号>=2 + if (cell.getRowIndex() >= 3) { + Workbook workbook = writeSheetHolder.getSheet().getWorkbook(); + CellStyle cellStyle = workbook.createCellStyle(); + cellStyle.setAlignment(HorizontalAlignment.CENTER); + cellStyle.setVerticalAlignment(VerticalAlignment.CENTER); + cell.setCellStyle(cellStyle); + } + } + + @Override + public void afterCellDataConverted(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, CellData cellData, Cell cell, Head head, Integer integer, Boolean aBoolean) { + + } + + @Override + public void afterCellDispose(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, List list, Cell cell, Head head, Integer integer, Boolean aBoolean) { + + } +} \ No newline at end of file diff --git a/coolstore-partner-service/src/main/java/com/cool/store/handler/ImplProgressReportSheetWriteHandler.java b/coolstore-partner-service/src/main/java/com/cool/store/handler/ImplProgressReportSheetWriteHandler.java new file mode 100644 index 000000000..b2cc9e637 --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/handler/ImplProgressReportSheetWriteHandler.java @@ -0,0 +1,54 @@ +package com.cool.store.handler; + +import com.alibaba.excel.write.metadata.holder.WriteTableHolder; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.CellStyle; +import org.apache.poi.ss.usermodel.Font; +import org.apache.poi.ss.usermodel.HorizontalAlignment; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.VerticalAlignment; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.ss.util.CellRangeAddress; + +import com.alibaba.excel.write.handler.SheetWriteHandler; +import com.alibaba.excel.write.metadata.holder.WriteSheetHolder; +import com.alibaba.excel.write.metadata.holder.WriteWorkbookHolder; + +/** + * 第一行 拦截器 + */ +public class ImplProgressReportSheetWriteHandler implements SheetWriteHandler { + + private final String title; + + public ImplProgressReportSheetWriteHandler(String title) { + this.title = title; + } + @Override + public void beforeSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) { + + } + + @Override + public void afterSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) { + Workbook workbook = writeWorkbookHolder.getWorkbook(); + Sheet sheet = workbook.getSheetAt(0); + // 设置第一行标题 + Row row1 = sheet.createRow(0); + row1.setHeight((short) 300); + Cell row1Cell1 = row1.createCell(0); + row1Cell1.setCellValue(title); + CellStyle row1CellStyle = workbook.createCellStyle(); + row1CellStyle.setVerticalAlignment(VerticalAlignment.CENTER); + row1CellStyle.setAlignment(HorizontalAlignment.LEFT); + Font row1Font = workbook.createFont(); + row1Font.setBold(true); + row1Font.setFontName("方正小标宋_GBK"); + row1Font.setFontHeightInPoints((short) 10); + row1CellStyle.setFont(row1Font); + row1Cell1.setCellStyle(row1CellStyle); + //合并单元格,起始行,结束行,起始列,结束列 + sheet.addMergedRegionUnsafe(new CellRangeAddress(0, 1, 0, 17)); + } +} \ No newline at end of file diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/ExportRealizeService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/ExportRealizeService.java index 269139b5e..bb839e02c 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/ExportRealizeService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/ExportRealizeService.java @@ -4,7 +4,9 @@ import com.cool.store.dto.Preparation.PreparationDTO; import com.cool.store.entity.ImportTaskDO; import com.cool.store.entity.LineInfoDO; import com.cool.store.entity.PointInfoDO; +import com.cool.store.request.FranchiseReportRequest; import com.cool.store.response.BranchShopResponse; +import com.cool.store.response.FranchiseReportResponse; import java.util.List; @@ -24,4 +26,6 @@ public interface ExportRealizeService { void exportJoinShop(List list,ImportTaskDO importTaskDO); void exportProgress(List list,ImportTaskDO importTaskDO); + + void exportZxjpOpenShopReport(List list, ImportTaskDO importTaskDO, FranchiseReportRequest request); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/ExportService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/ExportService.java index 889ba1be6..edb60899f 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/ExportService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/ExportService.java @@ -18,5 +18,8 @@ public interface ExportService { //财务导出 //加盟开店申请 //进度确认 Long exportProgressBase(BranchShopRequest request, LoginUserInfo user, FileTypeEnum fileTypeEnum); + //正新加盟报表导出 + Long exportZxjpOpenShopReport(FranchiseReportRequest request, LoginUserInfo user); + } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/FranchiseReportService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/FranchiseReportService.java index 454eae385..df6303c17 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/FranchiseReportService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/FranchiseReportService.java @@ -14,5 +14,5 @@ import java.util.List; */ public interface FranchiseReportService { - List getFranchiseReport(FranchiseReportRequest request); + List zxjpOpenShopReport(FranchiseReportRequest request); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ExportRealizeServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ExportRealizeServiceImpl.java index 9cb67737e..8c7326fea 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ExportRealizeServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ExportRealizeServiceImpl.java @@ -14,8 +14,10 @@ import com.cool.store.enums.*; import com.cool.store.enums.point.*; import com.cool.store.exception.ServiceException; import com.cool.store.mapper.*; +import com.cool.store.request.FranchiseReportRequest; import com.cool.store.request.InitiatingRequest; import com.cool.store.response.BranchShopResponse; +import com.cool.store.response.FranchiseReportResponse; import com.cool.store.service.*; import com.cool.store.utils.JSONUtils; import com.cool.store.utils.RedisUtilPool; @@ -413,7 +415,7 @@ public class ExportRealizeServiceImpl implements ExportRealizeService { Map franchiseFeeDTOMap = franchiseFees.stream().filter(o -> o.getShopId() != null) .collect(Collectors.toMap(FranchiseFeeDTO::getShopId, Function.identity())); Set lineIds = list.stream().map(BranchShopResponse::getLineId).collect(Collectors.toSet()); - List lineInfoDOS = lineInfoDAO.getByLineIds( new ArrayList<>(lineIds)); + List lineInfoDOS = lineInfoDAO.getByLineIds(new ArrayList<>(lineIds)); Map lineMap = lineInfoDOS.stream().collect(Collectors.toMap(LineInfoDO::getId, Function.identity())); List qualificationsInfoDOList = qualificationsInfoDAO.getByLineIds(new ArrayList<>(lineIds)); Map qualificationsInfoDOMap = qualificationsInfoDOList.stream().collect(Collectors.toMap(QualificationsInfoDO::getLineId, Function.identity())); @@ -627,6 +629,24 @@ public class ExportRealizeServiceImpl implements ExportRealizeService { } } + @Override + public void exportZxjpOpenShopReport(List list, ImportTaskDO importTaskDO, FranchiseReportRequest request) { + String url = ""; + try { + url = easyExcelUtil.exportExcelSpecial(FranchiseReportResponse.class, list, null, + FileTypeEnum.ZXJP_OPEN_SHOP_REPORT.getDesc() + DateUtils.parseDateToStr(SPECIAL_DATE_START_1, new Date()), + FileTypeEnum.ZXJP_OPEN_SHOP_REPORT.getDesc() + DateUtils.parseDateToStr(SPECIAL_DATE_START_1, new Date()), + "建店资料完成日期:",request.getBuildStartTime(),request.getBuildEndTime()); + } catch (Throwable e) { + log.error("fileUpload upload err, originFileName={}", FileTypeEnum.ZXJP_OPEN_SHOP_REPORT.getDesc(), e); + throw new ServiceException(ErrorCodeEnum.INTERNAL_SERVER_ERROR); + } finally { + importTaskDO.setStatus(ImportStatusEnum.success.getCode()); + importTaskDO.setFileUrl(url); + importTaskMapper.update(eid, importTaskDO); + } + } + private String toString(Object o) { if (o == null) { return ""; diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ExportServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ExportServiceImpl.java index e954c5d24..3fedd6995 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ExportServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ExportServiceImpl.java @@ -19,6 +19,7 @@ import com.cool.store.mapper.ImportTaskMapper; import com.cool.store.mapper.PointInfoMapper; import com.cool.store.request.*; import com.cool.store.response.BranchShopResponse; +import com.cool.store.response.FranchiseReportResponse; import com.cool.store.service.*; import com.cool.store.utils.easyExcel.EasyExcelUtil; import com.cool.store.utils.poi.DateUtils; @@ -71,6 +72,9 @@ public class ExportServiceImpl implements ExportService { private ShopInfoDAO shopInfoDAO; @Autowired private ShopService shopService; + @Resource + private FranchiseReportService franchiseReportService; + @Override @@ -109,7 +113,7 @@ public class ExportServiceImpl implements ExportService { if (total == CommonConstants.ZERO) { return CommonConstants.ZERO_LONG; } else if (total > CommonConstants.FIVE_SECONDS) { - throw new ServiceException(ErrorCodeEnum.EXPORT_LIMIT_5000); + throw new ServiceException(ErrorCodeEnum.EXPORT_LIMIT_5000); } ImportTaskDO importTaskDO = new ImportTaskDO(); importTaskDO.setStatus(ImportStatusEnum.Ongoing.getCode()); @@ -137,5 +141,25 @@ public class ExportServiceImpl implements ExportService { return total; } + @Override + public Long exportZxjpOpenShopReport(FranchiseReportRequest request, LoginUserInfo user) { + List franchiseReport = franchiseReportService.zxjpOpenShopReport(request); + if (CollectionUtils.isEmpty(franchiseReport)){ + log.error("导出数据为空"); + return 0L; + } + ImportTaskDO importTaskDO = new ImportTaskDO(); + importTaskDO.setStatus(ImportStatusEnum.Ongoing.getCode()); + importTaskDO.setFileName(FileTypeEnum.ZXJP_OPEN_SHOP_REPORT.getDesc() + DateUtils.parseDateToStr(DateUtils.SPECIAL_DATE_START_1, new Date())); + importTaskDO.setIsImport(Boolean.FALSE); + importTaskDO.setFileType(FileTypeEnum.ZXJP_OPEN_SHOP_REPORT.getFileType()); + importTaskDO.setCreateUserId(user.getUserId()); + importTaskDO.setCreateTime(new Date().getTime()); + importTaskDO.setCreateName(user.getName()); + importTaskMapper.insert(eid, importTaskDO); + exportRealizeService.exportZxjpOpenShopReport(franchiseReport, importTaskDO,request); + return (long) franchiseReport.size(); + } + } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseReportServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseReportServiceImpl.java index c35e3221e..273192f3f 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseReportServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseReportServiceImpl.java @@ -46,13 +46,16 @@ public class FranchiseReportServiceImpl implements FranchiseReportService { private FranchiseFeeMapper franchiseFeeMapper; @Override - public List getFranchiseReport(FranchiseReportRequest request) { + public List zxjpOpenShopReport(FranchiseReportRequest request) { if (StringUtils.isBlank(request.getBuildStartTime()) || StringUtils.isBlank(request.getBuildEndTime())) { throw new ServiceException(ErrorCodeEnum.TIME_NULL_FALSE); } //集团查大区 List regionIdByGroupName = bigRegionDAO.getRegionIdByGroupName(request.getJoinGroupName()); if (CollectionUtils.isNotEmpty(regionIdByGroupName)) { + if (CollectionUtils.isEmpty(request.getRegionIds())){ + request.setRegionIds(new ArrayList<>()); + } request.getRegionIds().addAll(regionIdByGroupName); } List shopFranchiseReportList = shopInfoDAO.getShopFranchiseReportList(request); @@ -75,7 +78,11 @@ public class FranchiseReportServiceImpl implements FranchiseReportService { response = new FranchiseReportResponse(); response.setRegionId(shopFranchiseReportDTO.getRegionId()); response.setRegionName(bigRegionDOMap.getOrDefault(shopFranchiseReportDTO.getRegionId(), new BigRegionDO()).getRegionName()); - response.setJoinGroupName(bigRegionDOMap.getOrDefault(shopFranchiseReportDTO.getRegionId(), new BigRegionDO()).getGroupName()); + String groupName = bigRegionDOMap.getOrDefault(shopFranchiseReportDTO.getRegionId(), new BigRegionDO()).getGroupName(); + if (StringUtils.isBlank(groupName)){ + continue; + } + response.setJoinGroupName(groupName); } if (StoreTypeEnum.NO_SHOW_STORE.getCode().equals(shopFranchiseReportDTO.getStoreType())) { response.setNoShowStoreNum(response.getNoShowStoreNum() + 1); @@ -93,7 +100,6 @@ public class FranchiseReportServiceImpl implements FranchiseReportService { response.setFirstYearBrandingFeeTotal(response.getFirstYearBrandingFeeTotal().add(new BigDecimal(franchiseFeeDO.getFirstYearFee()))); response.setPerformanceBondTotal(response.getPerformanceBondTotal().add(new BigDecimal(franchiseFeeDO.getPerformanceBond()))); response.setManagementBrandingDesignFeeTotal(response.getManagementBrandingDesignFeeTotal() - .add(new BigDecimal(franchiseFeeDO.getYearFranchiseFee())) .add(new BigDecimal(franchiseFeeDO.getFirstYearManageFee())) .add(new BigDecimal(franchiseFeeDO.getFirstYearFee())) .add(new BigDecimal(franchiseFeeDO.getPerformanceBond()))); @@ -129,6 +135,11 @@ public class FranchiseReportServiceImpl implements FranchiseReportService { } } - return new ArrayList<>(responseByRegionIdMap.values()); + List list = new ArrayList<>(responseByRegionIdMap.values()); + if (CollectionUtils.isEmpty(list)){ + log.info("数据为空"); + return Collections.emptyList(); + } + return list.stream().sorted(Comparator.comparing(FranchiseReportResponse::getJoinGroupName)).collect(Collectors.toList()); } } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/utils/easyExcel/EasyExcelUtil.java b/coolstore-partner-service/src/main/java/com/cool/store/utils/easyExcel/EasyExcelUtil.java index 15e716027..6b89e2740 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/utils/easyExcel/EasyExcelUtil.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/utils/easyExcel/EasyExcelUtil.java @@ -3,6 +3,9 @@ package com.cool.store.utils.easyExcel; import cn.hutool.core.date.DateUtil; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.write.style.row.SimpleRowHeightStyleStrategy; + +import com.cool.store.handler.CenterAlignHandler; +import com.cool.store.handler.ImplProgressReportSheetWriteHandler; import com.cool.store.mapper.ImportTaskMapper; import com.cool.store.oss.OssClientService; import com.cool.store.utils.UUIDUtils; @@ -42,24 +45,51 @@ public class EasyExcelUtil { * @throws IOException 异常捕获 */ public String exportExcel( Class head, List list, Set set, String sheetName, String fileName) throws Exception { - ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); - if (set == null) { - EasyExcel.write(outputStream, head) - .autoCloseStream(true) - .registerWriteHandler(new SimpleRowHeightStyleStrategy((short)25,(short)25)) - .sheet(sheetName) - .doWrite(list); - } else { - EasyExcel.write(outputStream, head).autoCloseStream(true).includeColumnFiledNames(set).sheet(sheetName) - .doWrite(list); - } - byte[] bytes = outputStream.toByteArray(); - long size = bytes.length; - InputStream is = new ByteArrayInputStream(bytes); - if (StringUtils.isNotBlank(fileName) && fileName.contains(".")) { - fileName = fileName.substring(0, fileName.lastIndexOf(".")); - } - String file = getUploadPath(eid) + fileName + "_" + UUIDUtils.get32UUID() + EXCEL_SUFFIX; + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + if (set == null) { + EasyExcel.write(outputStream, head) + .autoCloseStream(true) + .registerWriteHandler(new SimpleRowHeightStyleStrategy((short)25,(short)25)) + .sheet(sheetName) + .doWrite(list); + } else { + EasyExcel.write(outputStream, head).autoCloseStream(true).includeColumnFiledNames(set).sheet(sheetName) + .doWrite(list); + } + byte[] bytes = outputStream.toByteArray(); + long size = bytes.length; + InputStream is = new ByteArrayInputStream(bytes); + if (StringUtils.isNotBlank(fileName) && fileName.contains(".")) { + fileName = fileName.substring(0, fileName.lastIndexOf(".")); + } + String file = getUploadPath(eid) + fileName + "_" + UUIDUtils.get32UUID() + EXCEL_SUFFIX; + return ossClientService.putObject(file, is, size, CONTENT_TYPE); + + } + + //表头从第二行开始,第一行显示日期 + public String exportExcelSpecial( Class head, List list, Set set, String sheetName, String fileName,String firstTitle,String startTime,String endTime) throws Exception { + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + if (set == null) { + EasyExcel.write(outputStream) + .head(head) + .autoCloseStream(true) + .registerWriteHandler( new ImplProgressReportSheetWriteHandler(firstTitle+" "+startTime+" 至 "+endTime)) + .registerWriteHandler(new CenterAlignHandler()) + .sheet(sheetName) + .useDefaultStyle(false).relativeHeadRowIndex(2) + .doWrite(list); + } else { + EasyExcel.write(outputStream, head).autoCloseStream(true).includeColumnFiledNames(set).sheet(sheetName) + .doWrite(list); + } + byte[] bytes = outputStream.toByteArray(); + long size = bytes.length; + InputStream is = new ByteArrayInputStream(bytes); + if (StringUtils.isNotBlank(fileName) && fileName.contains(".")) { + fileName = fileName.substring(0, fileName.lastIndexOf(".")); + } + String file = getUploadPath(eid) + fileName + "_" + UUIDUtils.get32UUID() + EXCEL_SUFFIX; return ossClientService.putObject(file, is, size, CONTENT_TYPE); } diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/ExportController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/ExportController.java index 348046261..a2cfd6982 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/ExportController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/ExportController.java @@ -56,4 +56,10 @@ public class ExportController { public ResponseResult exportProgress(@RequestBody BranchShopRequest request) { return ResponseResult.success(exportService.exportProgressBase(request, CurrentUserHolder.getUser(), FileTypeEnum.EXPORT_PROGRESS)); } + + @PostMapping("/zxjpOpenShopReport") + @ApiOperation("正新鸡排开店") + public ResponseResult zxjpOpenShopReport(@RequestBody FranchiseReportRequest request) { + return ResponseResult.success(exportService.exportZxjpOpenShopReport(request, CurrentUserHolder.getUser())); + } } diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCFranchiseReportController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCFranchiseReportController.java index 13342ae2a..6a1f828d5 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCFranchiseReportController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCFranchiseReportController.java @@ -26,9 +26,9 @@ public class PCFranchiseReportController { @Resource private FranchiseReportService franchiseReportService; - @RequestMapping("/getList") + @RequestMapping("/getZxjpOpenShopReport") @ApiOperation("正新鸡排开店") public ResponseResult> getList(@RequestBody FranchiseReportRequest request) { - return ResponseResult.success( franchiseReportService.getFranchiseReport(request)); + return ResponseResult.success( franchiseReportService.zxjpOpenShopReport(request)); } } From 9e324de66f2b56273b56841871a58fdd80b27528 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Thu, 15 May 2025 10:55:01 +0800 Subject: [PATCH 06/14] =?UTF-8?q?feat:=E9=98=B6=E6=AE=B5=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cool/store/enums/point/ShopSubStageStatusEnum.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageStatusEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageStatusEnum.java index c28bc1939..e663b8fc5 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageStatusEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageStatusEnum.java @@ -95,7 +95,7 @@ public enum ShopSubStageStatusEnum { SHOP_SUB_STAGE_STATUS_163(ShopSubStageEnum.SHOP_STAGE_16, 1630, "已完成", Boolean.TRUE), //订货系统 - SHOP_SUB_STAGE_STATUS_170(ShopSubStageEnum.SHOP_STAGE_17, 1700, "待【信息部】提交", Boolean.FALSE), + SHOP_SUB_STAGE_STATUS_170(ShopSubStageEnum.SHOP_STAGE_17, 1700, "待【IT部】提交", Boolean.FALSE), SHOP_SUB_STAGE_STATUS_173(ShopSubStageEnum.SHOP_STAGE_17, 1730, "已完成", Boolean.TRUE), //抖音 @@ -132,11 +132,11 @@ public enum ShopSubStageStatusEnum { //信发系统开通 - SHOP_SUB_STAGE_STATUS_230(ShopSubStageEnum.SHOP_STAGE_23, 2300, "待【信息部】提交", Boolean.FALSE), + SHOP_SUB_STAGE_STATUS_230(ShopSubStageEnum.SHOP_STAGE_23, 2300, "待【火码】提交", Boolean.FALSE), SHOP_SUB_STAGE_STATUS_235(ShopSubStageEnum.SHOP_STAGE_23, 2350, "已完成", Boolean.TRUE), //营帐通开通 - SHOP_SUB_STAGE_STATUS_240(ShopSubStageEnum.SHOP_STAGE_24, 2400, "待【信息部】提交", Boolean.FALSE), + SHOP_SUB_STAGE_STATUS_240(ShopSubStageEnum.SHOP_STAGE_24, 2400, "待【火码】提交", Boolean.FALSE), SHOP_SUB_STAGE_STATUS_244(ShopSubStageEnum.SHOP_STAGE_24, 2440, "无需开通", Boolean.TRUE), SHOP_SUB_STAGE_STATUS_245(ShopSubStageEnum.SHOP_STAGE_24, 2450, "已完成", Boolean.TRUE), From 14035dee4b11d33a6602d953ceb38046793bb1be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Thu, 15 May 2025 14:01:44 +0800 Subject: [PATCH 07/14] =?UTF-8?q?feat:=E8=87=AA=E6=9C=89=E5=BA=97=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/cool/store/request/OrderSysInfoRequest.java | 8 +++++++- .../cool/store/service/impl/OrderSysInfoServiceImpl.java | 5 ++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/OrderSysInfoRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/OrderSysInfoRequest.java index e29e6b137..03b7b1388 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/OrderSysInfoRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/OrderSysInfoRequest.java @@ -1,7 +1,9 @@ package com.cool.store.request; import com.cool.store.entity.OrderSysInfoDO; +import com.cool.store.enums.JoinModeEnum; import com.cool.store.enums.OrderSysTypeEnum; +import com.cool.store.enums.SignTypeEnum; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.apache.commons.lang3.StringUtils; @@ -115,13 +117,17 @@ public class OrderSysInfoRequest { return orderSysInfoDO; } - public Boolean check(){ + public Boolean check(Integer joinMode){ if (Objects.equals(this.type, OrderSysTypeEnum.ORDER_SYS_TYPE_1.getType())){ if (StringUtils.isAnyBlank(this.xgjRegionId,this.xgjVicePresident,this.declareGoodsDate,this.declareGoodsLogisticsWarehouse,this.declareGoodsType)){ return false; } } if (Objects.equals(this.type, OrderSysTypeEnum.ORDER_SYS_TYPE_2.getType())){ + //自由店只需要门店编码 + if (Objects.equals(joinMode, JoinModeEnum.OWN_STORE.getCode())&&this.shopCode!=null){ + return true; + } if (StringUtils.isAnyBlank(this.receivingFirmName,this.receivingMsBankAccount,this.receivingMsBankBranch,this.bankUnionPayAccount,this.shopCode)){ return false; } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/OrderSysInfoServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/OrderSysInfoServiceImpl.java index c9d36bf2d..a4a99d5a2 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/OrderSysInfoServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/OrderSysInfoServiceImpl.java @@ -9,10 +9,12 @@ import com.cool.store.enums.point.ShopSubStageEnum; import com.cool.store.enums.point.ShopSubStageStatusEnum; import com.cool.store.exception.ServiceException; import com.cool.store.mapper.FranchiseFeeMapper; +import com.cool.store.mapper.SignFranchiseMapper; import com.cool.store.request.AuditRequest; import com.cool.store.request.OrderSysInfoRequest; import com.cool.store.service.OperationLogService; import com.cool.store.service.OrderSysInfoService; +import com.cool.store.service.SignFranchiseService; import com.cool.store.service.UserAuthMappingService; import com.cool.store.utils.poi.StringUtils; import org.apache.commons.collections4.CollectionUtils; @@ -73,7 +75,8 @@ public class OrderSysInfoServiceImpl implements OrderSysInfoService { String curUserId = user.getUserId(); String curName = user.getName(); //参数校验 - if (!request.check()) { + ShopInfoDO shopInfo = shopInfoDAO.getShopInfo(request.getShopId()); + if (!request.check(shopInfo.getJoinMode())) { throw new ServiceException(ErrorCodeEnum.THE_DATA_IS_NOT_FILLED); } OrderSysInfoDO orderSysInfoDO = orderSysInfoDAO.selectByShopId(request.getShopId()); From f253b2a0c37ba07699727fcb7cd29e0d6284cc9f Mon Sep 17 00:00:00 2001 From: "shuo.wang" Date: Thu, 15 May 2025 15:31:23 +0800 Subject: [PATCH 08/14] =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E6=8A=A5=E8=A1=A8?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=EF=BC=8C=E6=95=B0=E6=8D=AE=E6=A2=B3=E7=90=86?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cool/store/enums/ErrorCodeEnum.java | 3 +- .../com/cool/store/enums/FileTypeEnum.java | 3 +- .../java/com/cool/store/dao/BigRegionDAO.java | 9 + .../com/cool/store/dao/ShopStageInfoDAO.java | 9 + .../cool/store/mapper/BigRegionMapper.java | 4 +- .../main/resources/mapper/BigRegionMapper.xml | 14 + .../store/request/QueryBigRegionRequest.java | 18 ++ .../cool/store/service/BigRegionService.java | 3 + .../cool/store/service/DataHandlerServer.java | 2 + .../service/impl/BigRegionServiceImpl.java | 7 + .../service/impl/DataHandlerServerImpl.java | 290 ++++++++++++++---- .../impl/FranchiseReportServiceImpl.java | 66 +++- .../impl/PosAndOrderInfoServiceImpl.java | 8 + .../controller/webb/BigRegionController.java | 6 + .../webb/DataHandlerController.java | 26 ++ 15 files changed, 390 insertions(+), 78 deletions(-) create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/request/QueryBigRegionRequest.java diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java index e31ee5dad..b49300433 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java @@ -148,7 +148,7 @@ public enum ErrorCodeEnum { LINE_ALREADY_EXISTS(10211163, "该线索已存在,跟进人为{0}", null), LINE_EXISTS_IN_PUBLIC_SEA(10211164, "该线索已存在,请前往公海认领", null), CONTENT_DUPLICATED(10211200, "动态标题重复!", null), - SIGN_FAIL(600000, "验签失败", null), + SIGN_FAIL(600000, "验签失败=>{0}", null), GET_ACCESSTOKEN_ERROR(600001, "获取小程序TOKEN错误!", null), NEW_MOBILE_HAS_EXIST(600002,"加盟商用户信息已存在",null), INSPECTION_USER_OCCUPY(600003,"当前稽核人已经配置其他战区",null), @@ -257,6 +257,7 @@ public enum ErrorCodeEnum { BANK_EXIST(151007,"当前银行已存在,请直接选择!",null), EXPORT_LIMIT_5000(151008,"导出数据不能超过5000条,请增加筛选条件,减少导出数量",null), + REGION_INTERSECTION_IS_NULL(151011,"所选所属大区/分公司,不在所选集团下",null), ; 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 845692052..988a47875 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,8 @@ 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_ERROR("OaOldShopStageDataError", "导入OA旧数据阶段错误列表"), ; private String fileType; private String desc; diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/BigRegionDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/BigRegionDAO.java index 6acbb0a2f..5a681ab1f 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/BigRegionDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/BigRegionDAO.java @@ -5,6 +5,7 @@ import com.cool.store.entity.BigRegionDO; import com.cool.store.enums.ErrorCodeEnum; import com.cool.store.exception.ServiceException; import com.cool.store.mapper.BigRegionMapper; +import com.cool.store.request.QueryBigRegionRequest; import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Repository; import tk.mybatis.mapper.entity.Example; @@ -55,5 +56,13 @@ public class BigRegionDAO { example.createCriteria().andIn("regionId", regionIdList).andEqualTo("joinMode",0); return bigRegionMapper.selectByExample(example); } + /** + * @Auther: wangshuo + * @Date: 2025/5/15 + * @description:只查询joinMode = 0 + */ + public List queryBigRegion(QueryBigRegionRequest queryBigRegionRequest){ + return bigRegionMapper.queryBigRegion(queryBigRegionRequest); + } } 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 588d7be3f..5db18dbcb 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 @@ -457,4 +457,13 @@ public class ShopStageInfoDAO { boolean isTerminated = shopStageInfo.isTerminated(); return shopStageInfoMapper.dataUpdateAcceptanceStatus(list, shopStageInfo.getShopSubStageEnum().getShopSubStage(), shopStageInfo.getShopSubStageStatus(), isTerminated, remark); } + + public List getStageByShopStage(List shopIds, Integer shopStage){ + if (CollectionUtils.isEmpty(shopIds) || shopStage == null){ + return null; + } + Example example = new Example(ShopStageInfoDO.class); + example.createCriteria().andIn("shopId",shopIds).andEqualTo("shopStage",shopStage); + return shopStageInfoMapper.selectByExample(example); + } } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/BigRegionMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/BigRegionMapper.java index 34bd10701..a56eecc06 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/BigRegionMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/BigRegionMapper.java @@ -2,6 +2,8 @@ package com.cool.store.mapper; import com.cool.store.dto.region.BigRegionDTO; import com.cool.store.entity.BigRegionDO; +import com.cool.store.request.QueryBigRegionRequest; +import org.apache.ibatis.annotations.Param; import tk.mybatis.mapper.common.Mapper; import java.util.List; @@ -24,5 +26,5 @@ public interface BigRegionMapper extends Mapper { */ BigRegionDO queryOrgInfoByBigRegionAndJoinMode(Long regionId,Integer joinMode); - + List queryBigRegion(@Param("request") QueryBigRegionRequest queryBigRegionRequest); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/BigRegionMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/BigRegionMapper.xml index 105dc4415..abf4a1647 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/BigRegionMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/BigRegionMapper.xml @@ -42,4 +42,18 @@ + \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/QueryBigRegionRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/QueryBigRegionRequest.java new file mode 100644 index 000000000..ce6e56b40 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/QueryBigRegionRequest.java @@ -0,0 +1,18 @@ +package com.cool.store.request; + +import lombok.Data; + +import java.util.List; + +/** + * @Author: WangShuo + * @Date: 2025/05/15/10:15 + * @Version 1.0 + * @注释: + */ +@Data +public class QueryBigRegionRequest{ + private String keyword; + + private List groupNameList; +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/BigRegionService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/BigRegionService.java index 5a1c926b7..19df3e8a7 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/BigRegionService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/BigRegionService.java @@ -4,6 +4,7 @@ import com.cool.store.dto.region.BigRegionDTO; import com.cool.store.entity.BigRegionDO; import com.cool.store.enums.ErrorCodeEnum; import com.cool.store.exception.ServiceException; +import com.cool.store.request.QueryBigRegionRequest; import java.util.List; @@ -31,5 +32,7 @@ public interface BigRegionService { */ BigRegionDO queryOrgInfoByBigRegionAndJoinMode(Long regionId, Integer joinMode); + List queryBigRegion(QueryBigRegionRequest queryBigRegionRequest); + } 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 03d11268d..0954f8525 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 @@ -22,4 +22,6 @@ public interface DataHandlerServer { Boolean importOaOldShopData(List> dataMapList, String originalFilename, LoginUserInfo user, ImportTaskDO task); + //数据处理阶段完成 某些阶段数据处理 + Boolean dataStageHandler(List> dataMapList, String originalFilename, LoginUserInfo user, ImportTaskDO task,Boolean flag); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/BigRegionServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/BigRegionServiceImpl.java index d8f74a33a..d2751cb00 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/BigRegionServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/BigRegionServiceImpl.java @@ -5,10 +5,12 @@ import com.cool.store.dto.region.BigRegionDTO; import com.cool.store.entity.BigRegionDO; import com.cool.store.enums.ErrorCodeEnum; import com.cool.store.exception.ServiceException; +import com.cool.store.request.QueryBigRegionRequest; import com.cool.store.service.BigRegionService; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.Collections; import java.util.List; /** @@ -35,4 +37,9 @@ public class BigRegionServiceImpl implements BigRegionService { return bigRegionDAO.queryOrgInfoByBigRegionAndJoinMode(regionId,joinMode); } + @Override + public List queryBigRegion(QueryBigRegionRequest queryBigRegionRequest) { + return bigRegionDAO.queryBigRegion(queryBigRegionRequest); + } + } 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 4df09bbfa..ba9a2db01 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 @@ -8,6 +8,7 @@ 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.ShopStageEnum; import com.cool.store.enums.point.ShopSubStageEnum; import com.cool.store.enums.point.ShopSubStageStatusEnum; import com.cool.store.mapper.*; @@ -60,7 +61,7 @@ public class DataHandlerServerImpl implements DataHandlerServer { @Resource private FranchiseFeeMapper franchiseFeeMapper; @Resource - private FranchiseFeeDAO franchiseFeeDAO; + private FranchiseFeeDAO franchiseFeeDAO; @Resource private WarehouseInfoMapper warehouseInfoMapper; @Resource @@ -77,6 +78,7 @@ public class DataHandlerServerImpl implements DataHandlerServer { 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) { @@ -92,14 +94,14 @@ public class DataHandlerServerImpl implements DataHandlerServer { } }); log.info("导入数据条数:{}", list.size()); - if (CollectionUtils.isEmpty(list)){ + 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)){ + if (CollectionUtils.isEmpty(shopInfoList)) { log.info("导入数据根据shopCode 未找到数据"); } Map shopInfoByCodeMap = shopInfoList.stream().collect(Collectors.toMap(ShopInfoDO::getShopCode, item -> item)); @@ -155,7 +157,7 @@ public class DataHandlerServerImpl implements DataHandlerServer { //建店阶段完成时间 List updateBuildStageList = new ArrayList<>(); for (ImportOaOldShopDataDTO dto : list) { - if( !check(dto,errorList)){ + if (!check(dto, errorList)) { continue; } ShopInfoDO shopInfoDO = shopInfoByCodeMap.get(dto.getShopCode().trim()); @@ -187,7 +189,7 @@ public class DataHandlerServerImpl implements DataHandlerServer { continue; } Date buildEndTime = DateUtils.toDate(YYYY_MM_DD, dto.getBuildEndTime()); - if (Objects.isNull(buildEndTime)){ + if (Objects.isNull(buildEndTime)) { ImportOaOldShopDataErrorDTO errorDTO = new ImportOaOldShopDataErrorDTO(); errorDTO.setShopCode(dto.getShopCode()); errorDTO.setErrorReason("建店资料时间转化失败"); @@ -196,7 +198,7 @@ public class DataHandlerServerImpl implements DataHandlerServer { } //合同 SignFranchiseDO signFranchiseDO = signFranchiseMap.get(shopId); - if (signFranchiseDO==null){ + if (signFranchiseDO == null) { ImportOaOldShopDataErrorDTO errorDTO = new ImportOaOldShopDataErrorDTO(); errorDTO.setShopCode(dto.getShopCode()); errorDTO.setErrorReason("合同DO不存在"); @@ -204,7 +206,7 @@ public class DataHandlerServerImpl implements DataHandlerServer { continue; } FranchiseFeeDO franchiseFeeDO = franchiseFeeMap.get(shopId); - if (franchiseFeeDO==null){ + if (franchiseFeeDO == null) { ImportOaOldShopDataErrorDTO errorDTO = new ImportOaOldShopDataErrorDTO(); errorDTO.setShopCode(dto.getShopCode()); errorDTO.setErrorReason("加盟费DO不存在"); @@ -235,7 +237,7 @@ public class DataHandlerServerImpl implements DataHandlerServer { if (StringUtil.isNotBlank(dto.getIntroductionAward())) { signFranchiseDO.setIntroductionAward(dto.getIntroductionAward()); } - if (StringUtil.isNotBlank(dto.getContractCode()) && dto.getContractCode().trim().startsWith("ZX") && dto.getContractCode().trim()!="0") { + if (StringUtil.isNotBlank(dto.getContractCode()) && dto.getContractCode().trim().startsWith("ZX") && dto.getContractCode().trim() != "0") { signFranchiseDO.setContractCode(dto.getContractCode().trim()); } if (StringUtil.isNotBlank(dto.getProtectionDistance())) { @@ -245,7 +247,7 @@ public class DataHandlerServerImpl implements DataHandlerServer { //建店资料未完成 BuildStageDTO buildStageDTO = new BuildStageDTO(); buildStageDTO.setShopId(shopId); - buildStageDTO.setEndTime(dto.getBuildEndTime()+" 00:00:00"); + buildStageDTO.setEndTime(dto.getBuildEndTime() + " 00:00:00"); updateBuildStageList.add(buildStageDTO); //建店资料阶段处理 shopStageInfoDAO.dataUpdateShopStageInfo(Collections.singletonList(buildStageDTO), ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_156); @@ -257,7 +259,7 @@ public class DataHandlerServerImpl implements DataHandlerServer { preparationService.selectSiteAndBuildStoreComplete(shopId); preparationService.buildStoreComplete(shopId); } - if (buildEndTime.before(new Date(1745164800000L))){ + if (buildEndTime.before(new Date(1745164800000L))) { fitmentFhopIdList.add(shopId); } BuildInformationDO buildInformationDO = buildInformationMap.get(shopId); @@ -321,11 +323,11 @@ public class DataHandlerServerImpl implements DataHandlerServer { } //pos PosAndOrderInfoDO posDO = posSysInfoDOMap.get(shopId); - if (Objects.isNull(posDO)){ + if (Objects.isNull(posDO)) { posDO = new PosAndOrderInfoDO(); posDO.setShopId(shopId); posDO.setType(PosAndOrderEnum.POS.getCode()); - posDO.setAccount(lineMobileMap.getOrDefault(shopInfoDO.getLineId(),"")); + posDO.setAccount(lineMobileMap.getOrDefault(shopInfoDO.getLineId(), "")); posDO.setRemark("已为您开通POS系统账号和密码"); posDO.setCreateTime(new Date()); addPosAndOrderInfoList.add(posDO); @@ -340,7 +342,7 @@ public class DataHandlerServerImpl implements DataHandlerServer { orderSysInfoDAO.batchInsertSpecific(addOrderSysInfoList); franchiseFeeDAO.updateBill(franchiseFeeByShopIds); buildInformationDAO.batchInsertSpecific(addBuildList); - if (CollectionUtils.isNotEmpty(updateBuildStageList)){ + if (CollectionUtils.isNotEmpty(updateBuildStageList)) { List updateStageShopIds = updateBuildStageList.stream().map(BuildStageDTO::getShopId).collect(Collectors.toList()); //pos阶段完成 shopStageInfoDAO.dataUpdateStatus(updateStageShopIds, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_163); @@ -357,13 +359,13 @@ public class DataHandlerServerImpl implements DataHandlerServer { shopStageInfoDAO.dataUpdateAcceptanceStatus(fitmentFhopIdList, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_121); if (!errorList.isEmpty()) { task.setStatus(ImportTaskStatusEnum.ERROR.getCode()); - String url = null ; + String url = null; try { - url = easyExcelUtil.exportExcel(ImportOaOldShopDataErrorDTO.class, errorList, null, + 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)); + log.info("导出失败列表失败 errorList:{}", JSONObject.toJSONString(errorList)); } task.setFileUrl(url); } else { @@ -371,138 +373,296 @@ public class DataHandlerServerImpl implements DataHandlerServer { } task.setTotalNum(dataMapList.size()); task.setSuccessNum(dataMapList.size() - errorList.size()); - importTaskMapper.update(eid,task); + importTaskMapper.update(eid, task); return null; } - private static boolean check(ImportOaOldShopDataDTO dto,List errorList){ - if (StringUtil.isBlank(dto.getShopCode())){ + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean dataStageHandler(List> dataMapList, String originalFilename, LoginUserInfo user, ImportTaskDO task, Boolean flag) { + List shopCodeList = new ArrayList<>(); + ListUtils.emptyIfNull(dataMapList) + .forEach(data -> { + try { + shopCodeList.add(String.valueOf(data.get("门店编码")).trim()); + } catch (Exception e) { + log.info("importOaOldShopData 转化dto error:{}", JSONObject.toJSONString(data)); + } + }); + if (CollectionUtils.isEmpty(shopCodeList)) { + log.info("数据处理 门店编码为空"); + return null; + } + List shopInfoList = shopInfoDAO.selectByShopCodeList(shopCodeList); + if (CollectionUtils.isEmpty(shopInfoList)) { + log.info("数据处理 门店未找到对应数据"); + return null; + } + List errorList = new ArrayList<>(); + List shopIds = shopInfoList.stream().map(ShopInfoDO::getId).collect(Collectors.toList()); + Map shopInfoMap = shopInfoList.stream().collect(Collectors.toMap(ShopInfoDO::getShopCode, x -> x)); + List lineIdList = shopInfoList.stream().map(ShopInfoDO::getLineId).collect(Collectors.toList()); + + //手机号 + Map lineMobileMap = lineInfoDAO.getLineMobileMap(lineIdList); + List stageByShopStage = shopStageInfoDAO.getStageByShopStage(shopIds, ShopStageEnum.SHOP_STAGE_2.getShopStage()); + Map> shopStageInfoMap = stageByShopStage.stream().collect(Collectors.groupingBy(ShopStageInfoDO::getShopId)); + //培训和开业完成 + List trainShopIdList = new ArrayList<>(); + //建店大阶段完成 + List buildShopIdList = new ArrayList<>(); + List addOpeningOperationPlanDO = new ArrayList<>(); + List addPosAndOrderInfoList = new ArrayList<>(); + for (String shopCode : shopCodeList) { + ShopInfoDO shop = shopInfoMap.get(shopCode); + if (shop == null) { + ImportOaOldShopDataErrorDTO errorDTO = new ImportOaOldShopDataErrorDTO(); + errorDTO.setShopCode(shopCode); + errorDTO.setErrorReason("code未找到对应门店数据"); + errorList.add(errorDTO); + continue; + } + Long shopId = shop.getId(); + List shopStageInfoList = shopStageInfoMap.get(shopId); + if (CollectionUtils.isEmpty(shopStageInfoList)) { + ImportOaOldShopDataErrorDTO errorDTO = new ImportOaOldShopDataErrorDTO(); + errorDTO.setShopCode(shop.getShopCode()); + errorDTO.setErrorReason("门店未找到对应阶段数据"); + errorList.add(errorDTO); + continue; + } + Map stageMap = shopStageInfoList.stream().collect(Collectors.toMap(ShopStageInfoDO::getShopSubStage, Function.identity())); + if (!ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_84.getShopSubStageStatus() + .equals(stageMap.get(ShopSubStageEnum.SHOP_STAGE_8.getShopSubStage()).getShopSubStageStatus())) { + ImportOaOldShopDataErrorDTO errorDTO = new ImportOaOldShopDataErrorDTO(); + errorDTO.setShopCode(shop.getShopCode()); + errorDTO.setErrorReason("合同未完成"); + errorList.add(errorDTO); + continue; + } + trainShopIdList.add(shopId); + if (!ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_143.getShopSubStageStatus() + .equals(stageMap.get(ShopSubStageEnum.SHOP_STAGE_14.getShopSubStage()).getShopSubStageStatus())) { + OpeningOperationPlanDO openingOperationPlanDO = new OpeningOperationPlanDO(); + openingOperationPlanDO.setShopId(shopId); + openingOperationPlanDO.setCreateTime(new Date()); + addOpeningOperationPlanDO.add(openingOperationPlanDO); + } + if (!ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_156.getShopSubStageStatus() + .equals(stageMap.get(ShopSubStageEnum.SHOP_STAGE_15.getShopSubStage()).getShopSubStageStatus())) { + ImportOaOldShopDataErrorDTO errorDTO = new ImportOaOldShopDataErrorDTO(); + errorDTO.setShopCode(shop.getShopCode()); + errorDTO.setErrorReason("建店资料未完成"); + errorList.add(errorDTO); + continue; + } + buildShopIdList.add(shopId); + if (!ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_173.getShopSubStageStatus() + .equals(stageMap.get(ShopSubStageEnum.SHOP_STAGE_17.getShopSubStage()).getShopSubStageStatus())) { + PosAndOrderInfoDO posDO = new PosAndOrderInfoDO(); + posDO.setShopId(shopId); + posDO.setAccount("ZXA8_" + shop.getShopCode()); + posDO.setPassword("888888"); + posDO.setType(PosAndOrderEnum.ORDER.getCode()); + posDO.setRemark("已为您开通订货系统账号和密码,密码已加密,初始密码为888888,可通过加盟小程序修改密码!"); + posDO.setCreateTime(new Date()); + addPosAndOrderInfoList.add(posDO); + } + if (!ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_163.getShopSubStageStatus() + .equals(stageMap.get(ShopSubStageEnum.SHOP_STAGE_16.getShopSubStage()).getShopSubStageStatus())) { + PosAndOrderInfoDO posDO = new PosAndOrderInfoDO(); + posDO.setShopId(shopId); + posDO.setAccount(lineMobileMap.get(shop.getLineId())); + posDO.setType(PosAndOrderEnum.POS.getCode()); + posDO.setRemark("已为您开通POS系统账号和密码"); + posDO.setCreateTime(new Date()); + addPosAndOrderInfoList.add(posDO); + } + if (!ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_235.getShopSubStageStatus() + .equals(stageMap.get(ShopSubStageEnum.SHOP_STAGE_23.getShopSubStage()).getShopSubStageStatus())) { + PosAndOrderInfoDO posDO = new PosAndOrderInfoDO(); + posDO.setShopId(shopId); + posDO.setAccount(shop.getShopCode()); + posDO.setType(PosAndOrderEnum.XIN_FA_SYS.getCode()); + posDO.setCreateTime(new Date()); + addPosAndOrderInfoList.add(posDO); + } + if (!ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_245.getShopSubStageStatus() + .equals(stageMap.get(ShopSubStageEnum.SHOP_STAGE_24.getShopSubStage()).getShopSubStageStatus()) + && !ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_244.getShopSubStageStatus() + .equals(stageMap.get(ShopSubStageEnum.SHOP_STAGE_24.getShopSubStage()).getShopSubStageStatus())) { + PosAndOrderInfoDO posDO = new PosAndOrderInfoDO(); + posDO.setShopId(shopId); + posDO.setType(PosAndOrderEnum.TENT_PASS.getCode()); + posDO.setCreateTime(new Date()); + addPosAndOrderInfoList.add(posDO); + } + } + if (flag) { + //装修大阶段 + shopStageInfoDAO.dataUpdateStatus(trainShopIdList, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_863); + shopStageInfoDAO.dataUpdateStatus(trainShopIdList, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_91); + shopStageInfoDAO.dataUpdateStatus(trainShopIdList, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_112); + shopStageInfoDAO.dataUpdateStatus(trainShopIdList, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_123); + } + //培训 + shopStageInfoDAO.dataUpdateStatus(trainShopIdList, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_51); + //开业方案 + shopStageInfoDAO.dataUpdateStatus(trainShopIdList, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_143); + //营帐通 + shopStageInfoDAO.dataUpdateStatus(buildShopIdList, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_245); + //新发 + shopStageInfoDAO.dataUpdateStatus(buildShopIdList, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_235); + //pos + shopStageInfoDAO.dataUpdateStatus(buildShopIdList, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_163); + if (!errorList.isEmpty()) { + task.setStatus(ImportTaskStatusEnum.ERROR.getCode()); + String url = null; + try { + url = easyExcelUtil.exportExcel(ImportOaOldShopDataErrorDTO.class, errorList, null, + FileTypeEnum.IMPORT_OA_OLD_SHOP_STAGE_DATA_ERROR.getDesc() + DateUtils.parseDateToStr(SPECIAL_DATE_START_1, new Date()), + FileTypeEnum.IMPORT_OA_OLD_SHOP_STAGE_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 true; + } + + 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())){ + 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())){ + 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())){ + 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())){ + 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())){ + 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())){ + 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())){ + 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())){ + 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())){ + 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())){ + 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())){ + 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())){ + 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())){ + 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())){ + if (StringUtil.isBlank(dto.getPerformanceBond())) { ImportOaOldShopDataErrorDTO errorDTO = new ImportOaOldShopDataErrorDTO(); errorDTO.setShopCode(dto.getShopCode()); errorDTO.setErrorReason("设计费不能为空"); errorList.add(errorDTO); - return false; + return false; } - if (StringUtil.isBlank(dto.getLoanMargin())){ + 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())){ + 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())){ + 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())){ + if (StringUtil.isBlank(dto.getContractCode())) { ImportOaOldShopDataErrorDTO errorDTO = new ImportOaOldShopDataErrorDTO(); errorDTO.setShopCode(dto.getShopCode()); errorDTO.setErrorReason("合同编号不能为空"); @@ -532,63 +692,67 @@ public class DataHandlerServerImpl implements DataHandlerServer { 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身份证号码"))){ + 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("合同开始日期"))){ + if (Objects.nonNull(data.get("合同开始日期"))) { importOaOldShopDataDTO.setContractStartDate(String.valueOf(data.get("合同开始日期"))); } - if (Objects.nonNull(data.get("合同结束日期"))){ + if (Objects.nonNull(data.get("合同结束日期"))) { importOaOldShopDataDTO.setContractEndDate(String.valueOf(data.get("合同结束日期"))); } - if (Objects.nonNull(data.get("合同编号"))){ + if (Objects.nonNull(data.get("合同编号"))) { importOaOldShopDataDTO.setContractCode(String.valueOf(data.get("合同编号"))); } - if (Objects.nonNull(data.get("保护距离(米)"))){ + if (Objects.nonNull(data.get("保护距离(米)"))) { importOaOldShopDataDTO.setProtectionDistance(String.valueOf(data.get("保护距离(米)"))); } - if (Objects.nonNull(data.get("介绍人"))){ + if (Objects.nonNull(data.get("介绍人"))) { importOaOldShopDataDTO.setIntroducer(String.valueOf(data.get("介绍人"))); } - if (Objects.nonNull(data.get("介绍门店"))){ + if (Objects.nonNull(data.get("介绍门店"))) { importOaOldShopDataDTO.setIntroduceStore(String.valueOf(data.get("介绍门店"))); } - if (Objects.nonNull(data.get("介绍奖"))){ + if (Objects.nonNull(data.get("介绍奖"))) { importOaOldShopDataDTO.setIntroductionAward(String.valueOf(data.get("介绍奖"))); } - if (Objects.nonNull(data.get("报货物流仓库"))){ + if (Objects.nonNull(data.get("报货物流仓库"))) { importOaOldShopDataDTO.setDeclareGoodsLogisticsWarehouseName(String.valueOf(data.get("报货物流仓库"))); } - if (Objects.nonNull(data.get("收款公司民生银行账号"))){ + if (Objects.nonNull(data.get("收款公司民生银行账号"))) { importOaOldShopDataDTO.setReceivingMsBankAccount(String.valueOf(data.get("收款公司民生银行账号"))); } - if (Objects.nonNull(data.get("云流水账号"))){ + if (Objects.nonNull(data.get("云流水账号"))) { importOaOldShopDataDTO.setYlsAccount(String.valueOf(data.get("云流水账号"))); } - if (Objects.nonNull(data.get("加盟费"))){ + if (Objects.nonNull(data.get("加盟费"))) { importOaOldShopDataDTO.setYearFranchiseFee(String.valueOf(data.get("加盟费"))); } - if (Objects.nonNull(data.get("加盟费优惠原因"))){ + if (Objects.nonNull(data.get("加盟费优惠原因"))) { importOaOldShopDataDTO.setDiscountReason(String.valueOf(data.get("加盟费优惠原因"))); } - if (Objects.nonNull(data.get("管理费"))){ + if (Objects.nonNull(data.get("管理费"))) { importOaOldShopDataDTO.setFirstYearManageFee(String.valueOf(data.get("管理费"))); } - if (Objects.nonNull(data.get("设计费"))){ + if (Objects.nonNull(data.get("设计费"))) { importOaOldShopDataDTO.setPerformanceBond(String.valueOf(data.get("设计费"))); } - if (Objects.nonNull(data.get("保证金"))){ + if (Objects.nonNull(data.get("保证金"))) { importOaOldShopDataDTO.setLoanMargin(String.valueOf(data.get("保证金"))); } - if (Objects.nonNull(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/FranchiseReportServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseReportServiceImpl.java index 273192f3f..668978268 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseReportServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseReportServiceImpl.java @@ -53,10 +53,14 @@ public class FranchiseReportServiceImpl implements FranchiseReportService { //集团查大区 List regionIdByGroupName = bigRegionDAO.getRegionIdByGroupName(request.getJoinGroupName()); if (CollectionUtils.isNotEmpty(regionIdByGroupName)) { - if (CollectionUtils.isEmpty(request.getRegionIds())){ - request.setRegionIds(new ArrayList<>()); + if (CollectionUtils.isEmpty(request.getRegionIds())) { + request.setRegionIds(regionIdByGroupName); + } else { + request.getRegionIds().retainAll(regionIdByGroupName); + if (CollectionUtils.isEmpty(request.getRegionIds())){ + throw new ServiceException(ErrorCodeEnum.REGION_INTERSECTION_IS_NULL); + } } - request.getRegionIds().addAll(regionIdByGroupName); } List shopFranchiseReportList = shopInfoDAO.getShopFranchiseReportList(request); if (CollectionUtils.isEmpty(shopFranchiseReportList)) { @@ -77,9 +81,9 @@ public class FranchiseReportServiceImpl implements FranchiseReportService { if (response == null) { response = new FranchiseReportResponse(); response.setRegionId(shopFranchiseReportDTO.getRegionId()); - response.setRegionName(bigRegionDOMap.getOrDefault(shopFranchiseReportDTO.getRegionId(), new BigRegionDO()).getRegionName()); + response.setRegionName(bigRegionDOMap.getOrDefault(shopFranchiseReportDTO.getRegionId(), new BigRegionDO()).getRegionName()); String groupName = bigRegionDOMap.getOrDefault(shopFranchiseReportDTO.getRegionId(), new BigRegionDO()).getGroupName(); - if (StringUtils.isBlank(groupName)){ + if (StringUtils.isBlank(groupName)) { continue; } response.setJoinGroupName(groupName); @@ -109,23 +113,23 @@ public class FranchiseReportServiceImpl implements FranchiseReportService { FranchiseReportRequest yesterdayRequest = new FranchiseReportRequest(); yesterdayRequest.setRegionIds(request.getRegionIds()); yesterdayRequest.setStoreTypes(request.getStoreTypes()); - LocalDate now = LocalDate.now(); + LocalDate now = LocalDate.now(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); //昨日 00:00:00 LocalDateTime yesterdayStartDate = now.minusDays(1).atStartOfDay(); String yesterdayStartTime = yesterdayStartDate.format(formatter); //昨日 23:59:59 - LocalDateTime yesterdayEndDate = now.minusDays(1).atTime(23,59,59); + LocalDateTime yesterdayEndDate = now.minusDays(1).atTime(23, 59, 59); String yesterdayEndTime = yesterdayEndDate.format(formatter); yesterdayRequest.setBuildStartTime(yesterdayStartTime); yesterdayRequest.setBuildEndTime(yesterdayEndTime); List yesterdayShopFranchiseReportList = shopInfoDAO.getShopFranchiseReportList(yesterdayRequest); DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd"); if (CollectionUtils.isNotEmpty(yesterdayShopFranchiseReportList)) { - Map> yesterdayMap = yesterdayShopFranchiseReportList.stream().collect( Collectors.groupingBy(FranchiseReportDTO::getRegionId)); - for (Long regionId : responseByRegionIdMap.keySet()){ + Map> yesterdayMap = yesterdayShopFranchiseReportList.stream().collect(Collectors.groupingBy(FranchiseReportDTO::getRegionId)); + for (Long regionId : responseByRegionIdMap.keySet()) { FranchiseReportResponse response = responseByRegionIdMap.get(regionId); - if (Objects.isNull(response)){ + if (Objects.isNull(response)) { continue; } List yesterdayList = yesterdayMap.get(regionId); @@ -136,10 +140,48 @@ public class FranchiseReportServiceImpl implements FranchiseReportService { } List list = new ArrayList<>(responseByRegionIdMap.values()); - if (CollectionUtils.isEmpty(list)){ + if (CollectionUtils.isEmpty(list)) { log.info("数据为空"); return Collections.emptyList(); } - return list.stream().sorted(Comparator.comparing(FranchiseReportResponse::getJoinGroupName)).collect(Collectors.toList()); + sortByName(list); + return list; + } + + public static void sortByName(List list) { + list.sort(Comparator.comparingInt(f -> extractNumberFromName(f.getJoinGroupName()))); + } + + private static int extractNumberFromName(String name) { + try { + + if (name.contains("第一加盟集团")) { + return 1; + } + if (name.contains("第二加盟集团")) { + return 2; + } + if (name.contains("第三加盟集团")) { + return 3; + } + if (name.contains("第四加盟集团")) { + return 4; + } + if (name.contains("第五加盟集团")) { + return 5; + } + if (name.contains("第六加盟集团")) { + return 6; + } + if (name.contains("第七加盟集团")) { + return 7; + } + if (name.contains("第八加盟集团")) { + return 8; + } + return Integer.MAX_VALUE; + } catch (Exception e) { + return Integer.MAX_VALUE; + } } } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PosAndOrderInfoServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PosAndOrderInfoServiceImpl.java index 8cb48812f..4c592b520 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PosAndOrderInfoServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PosAndOrderInfoServiceImpl.java @@ -3,8 +3,10 @@ package com.cool.store.service.impl; import com.cool.store.dao.EnterpriseUserDAO; import com.cool.store.dao.PosAndOrderInfoDAO; +import com.cool.store.dao.ShopInfoDAO; import com.cool.store.dao.ShopStageInfoDAO; import com.cool.store.entity.PosAndOrderInfoDO; +import com.cool.store.entity.ShopInfoDO; import com.cool.store.entity.ShopStageInfoDO; import com.cool.store.enums.ErrorCodeEnum; import com.cool.store.enums.PosAndOrderEnum; @@ -32,6 +34,8 @@ import java.util.Objects; @Service public class PosAndOrderInfoServiceImpl implements PosAndOrderInfoService { + @Resource + private ShopInfoDAO shopInfoDAO; @Resource private PosAndOrderInfoDAO posAndOrderInfoDAO; @Autowired @@ -68,6 +72,7 @@ public class PosAndOrderInfoServiceImpl implements PosAndOrderInfoService { public PosAndOrderResponse get(Long shopId, Integer type) { PosAndOrderResponse response = new PosAndOrderResponse(); PosAndOrderInfoDO posAndOrderInfoDO = posAndOrderInfoDAO.selectOneByShopId(shopId, type); + ShopInfoDO shopInfo = shopInfoDAO.getShopInfo(shopId); if (Objects.nonNull(posAndOrderInfoDO)) { response.setShopId(posAndOrderInfoDO.getShopId()); response.setAccount(posAndOrderInfoDO.getAccount()); @@ -77,6 +82,9 @@ public class PosAndOrderInfoServiceImpl implements PosAndOrderInfoService { response.setCreateTime(posAndOrderInfoDO.getCreateTime()); response.setCreateUser(enterpriseUserDAO.getUserName(posAndOrderInfoDO.getCreateUser())); } + else{ + response.setAccount(shopInfo.getShopCode()); + } return response; } diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/BigRegionController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/BigRegionController.java index ab5bf2f3a..c16945bf8 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/BigRegionController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/BigRegionController.java @@ -3,6 +3,7 @@ package com.cool.store.controller.webb; import com.cool.store.dto.content.ContentQueryDetailDto; import com.cool.store.dto.region.BigRegionDTO; import com.cool.store.entity.HyContentInfoDO; +import com.cool.store.request.QueryBigRegionRequest; import com.cool.store.response.ResponseResult; import com.cool.store.service.BigRegionService; import io.swagger.annotations.Api; @@ -31,5 +32,10 @@ public class BigRegionController { return ResponseResult.success(bigRegionService.queryAllBigRegion(keyword)); } + @PostMapping("/queryBigRegion") + @ApiOperation("获取可选择的大区joinMode = 0") + public ResponseResult> queryBigRegion(@RequestBody QueryBigRegionRequest queryBigRegionRequest) { + return ResponseResult.success(bigRegionService.queryBigRegion(queryBigRegionRequest)); + } } 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 c93fbaae9..c4b91084b 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 @@ -15,6 +15,7 @@ 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.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; @@ -68,5 +69,30 @@ public class DataHandlerController { return ResponseResult.success(true); } + @PostMapping("/dataStageHandler") + @ApiOperation("阶段处理") + public ResponseResult importOaOldShopData(MultipartFile file, @RequestParam("flag") Boolean flag) { + ExcelReader reader = null; + try { + reader = ExcelUtil.getReader(file.getInputStream()); + } catch (IOException e) { + log.error("read file error:", e); + } + assert reader != null; + log.info("----------------------:{}",file.getOriginalFilename()); + List> dataMapList = reader.read(0, 1, Integer.MAX_VALUE); + ImportTaskDO importTaskDO = new ImportTaskDO(); + importTaskDO.setFileName(file.getOriginalFilename()); + importTaskDO.setFileType(FileTypeEnum.IMPORT_OA_OLD_SHOP_STAGE_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.dataStageHandler(dataMapList, file.getOriginalFilename(), CurrentUserHolder.getUser(), importTaskDO,flag); + return ResponseResult.success(true); + } + } From cf5af4cb77c7c65f0f82b59c1bde3a95b628667f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Thu, 15 May 2025 17:05:00 +0800 Subject: [PATCH 09/14] =?UTF-8?q?feat:=E8=87=AA=E6=9C=89=E5=BA=97=E8=B4=A2?= =?UTF-8?q?=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/cool/store/enums/UserRoleEnum.java | 2 ++ .../cool/store/service/impl/OrderSysInfoServiceImpl.java | 7 ++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/UserRoleEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/UserRoleEnum.java index 9743767ae..74e04dba4 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/UserRoleEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/UserRoleEnum.java @@ -60,6 +60,8 @@ public enum UserRoleEnum { HEAD_OF_DESIGN(450000000L,"设计组长"), QUOTATION_OFFICE(470000000L,"报价员"), + + OWN_SHOP_OFFICE(480000000L,"自有店财务"), ; private Long code; diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/OrderSysInfoServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/OrderSysInfoServiceImpl.java index a4a99d5a2..18d27b750 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/OrderSysInfoServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/OrderSysInfoServiceImpl.java @@ -108,7 +108,12 @@ public class OrderSysInfoServiceImpl implements OrderSysInfoService { map.put("partnerUsername", lineInfoDO.getUsername()); map.put("partnerMobile", lineInfoDO.getMobile()); map.put("storeName", shopInfoDO.getShopName()); - List itList = userAuthMappingService.getAllUserByRoleEnumAndRegionId(UserRoleEnum.FINANCE, shopInfoDO.getRegionId()); + //自有店财务 + UserRoleEnum finance = UserRoleEnum.FINANCE; + if (JoinModeEnum.OWN_STORE.equals(shopInfo.getJoinMode())){ + finance = UserRoleEnum.OWN_SHOP_OFFICE; + } + List itList = userAuthMappingService.getAllUserByRoleEnumAndRegionId(finance, shopInfoDO.getRegionId()); List itUsers = new ArrayList<>(); if (Objects.nonNull(itList)) { itUsers.addAll(itList.stream().map(EnterpriseUserDO::getUserId).collect(Collectors.toList())); From bd3fa05bf257820049be1f9da5db109b315072d0 Mon Sep 17 00:00:00 2001 From: "shuo.wang" Date: Thu, 15 May 2025 17:58:06 +0800 Subject: [PATCH 10/14] =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E6=8A=A5=E8=A1=A8?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=EF=BC=8C=E6=95=B0=E6=8D=AE=E6=A2=B3=E7=90=86?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cool/store/dao/AcceptanceInfoDAO.java | 11 ++++++++ .../store/mapper/AcceptanceInfoMapper.java | 3 ++ .../com/cool/store/mapper/ShopInfoMapper.java | 3 ++ .../resources/mapper/AcceptanceInfoMapper.xml | 6 ++++ .../main/resources/mapper/ShopInfoMapper.xml | 24 ++++++++++++++++ .../cool/store/service/DataHandlerServer.java | 3 ++ .../service/impl/DataHandlerServerImpl.java | 22 +++++++++++++++ .../service/impl/DecorationServiceImpl.java | 28 ++++++++++--------- .../webb/DataHandlerController.java | 22 +++++++++------ 9 files changed, 100 insertions(+), 22 deletions(-) diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/AcceptanceInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/AcceptanceInfoDAO.java index ba8ce5d2b..9c18fb3d6 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 @@ -11,6 +11,7 @@ import javax.annotation.Resource; import java.util.Date; import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; /** * @Auther: WangShuo @@ -57,4 +58,14 @@ public class AcceptanceInfoDAO { public List selectByEntryTimeNull(){ return acceptanceInfoMapper.selectByEntryTimeNull(); } + + public List getAllShopIds(){ + List acceptanceInfoDOList = acceptanceInfoMapper.selectAll(); + + return acceptanceInfoDOList.stream().map(AcceptanceInfoDO::getShopId).collect(Collectors.toList()); + } + + public Integer initAcceptanceInfo(List shopIds){ + return acceptanceInfoMapper.initAcceptanceInfo(shopIds); + } } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/AcceptanceInfoMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/AcceptanceInfoMapper.java index 297e17dac..34c627ca1 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/AcceptanceInfoMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/AcceptanceInfoMapper.java @@ -36,4 +36,7 @@ public interface AcceptanceInfoMapper extends Mapper { * @description:查询进场时间为空的数据 */ List selectByEntryTimeNull(); + + + Integer initAcceptanceInfo(@Param("list") List shopIds); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopInfoMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopInfoMapper.java index 0855df97c..eeb076ae4 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopInfoMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopInfoMapper.java @@ -98,6 +98,9 @@ public interface ShopInfoMapper extends Mapper { */ List selectShopListByRegionId(@Param("regionIds") List regionIds,@Param("shopSubStage") Integer shopSubStage,@Param("subStageStatus")List subStageStatus,@Param("keyWord")String keyWord); + List selectShopListByUser(@Param("userId") String userId,@Param("shopSubStage") Integer shopSubStage,@Param("subStageStatus")List subStageStatus,@Param("keyWord")String keyWord); + + List selectByIdOrSelectAll(@Param("shopId") Long shopId); diff --git a/coolstore-partner-dao/src/main/resources/mapper/AcceptanceInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/AcceptanceInfoMapper.xml index 3234c9d3d..084d77448 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/AcceptanceInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/AcceptanceInfoMapper.xml @@ -36,6 +36,12 @@ create_time,update_time,deleted,plan_acceptance_time,actual_acceptance_time,booking_user,plan_exit_time, ks_account,verification_mobile,shop_location_screenshots,shop_doorway_photo,shop_interior_photo + + + insert into xfsg_acceptance_info (shop_id,create_time,update_time,deleted) + values (#{item},now(),now(),0) + + update xfsg_acceptance_info diff --git a/coolstore-partner-dao/src/main/resources/mapper/ShopInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/ShopInfoMapper.xml index cc651b29d..0a9bee34d 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/ShopInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/ShopInfoMapper.xml @@ -506,6 +506,30 @@ and b.actual_complete_time >= #{request.buildStartTime} and b.actual_complete_time <= #{request.buildEndTime} + 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 0954f8525..32ea2a8c8 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 @@ -24,4 +24,7 @@ public interface DataHandlerServer { //数据处理阶段完成 某些阶段数据处理 Boolean dataStageHandler(List> dataMapList, String originalFilename, LoginUserInfo user, ImportTaskDO task,Boolean flag); + + //装修数据初始化 + Boolean decorationDataInit(); } 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 ba9a2db01..33685ea2c 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 @@ -42,6 +42,8 @@ import static com.cool.store.utils.poi.DateUtils.YYYY_MM_DD; @Service @Slf4j public class DataHandlerServerImpl implements DataHandlerServer { + @Resource + private AcceptanceInfoDAO acceptanceInfoDAO; @Resource private ImportTaskMapper importTaskMapper; @Resource @@ -535,6 +537,26 @@ public class DataHandlerServerImpl implements DataHandlerServer { return true; } + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean decorationDataInit() { + + //施工阶段 + List subStages = shopStageInfoDAO.getSubStages(ShopSubStageEnum.SHOP_STAGE_11.getShopSubStage()); + 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())){ + addShopIds.add(subStage.getShopId()); + } + } + } + acceptanceInfoDAO.initAcceptanceInfo(addShopIds); + return true; + } + private static boolean check(ImportOaOldShopDataDTO dto, List errorList) { if (StringUtil.isBlank(dto.getShopCode())) { ImportOaOldShopDataErrorDTO errorDTO = new ImportOaOldShopDataErrorDTO(); diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DecorationServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DecorationServiceImpl.java index 81ffaa465..722497dd5 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DecorationServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DecorationServiceImpl.java @@ -377,22 +377,24 @@ public class DecorationServiceImpl implements DecorationService { @Override public PageInfo getFitmentAcceptanceList(AcceptanceListRequest request, LoginUserInfo user) { - List regions = new ArrayList<>(); - if (!sysRoleService.checkIsAdmin(user.getUserId())) { - List authRegionIds = userAuthMappingService.getAuthRegionIdAndSubRegionIdByUserId(user.getUserId()); - for (String authRegionId : authRegionIds) { - regions.add(Long.parseLong(authRegionId)); - } - if (regions.isEmpty()) { - log.info("该用户下权限没有管理区域"); - return new PageInfo<>(); - } - } + // List regions = new ArrayList<>(); +// if (!sysRoleService.checkIsAdmin(user.getUserId())) { +// List authRegionIds = userAuthMappingService.getAuthRegionIdAndSubRegionIdByUserId(user.getUserId()); +// for (String authRegionId : authRegionIds) { +// regions.add(Long.parseLong(authRegionId)); +// } +// if (regions.isEmpty()) { +// log.info("该用户下权限没有管理区域"); +// return new PageInfo<>(); +// } +// } + //判断是否是管理员 + Boolean isAdmin = sysRoleService.checkIsAdmin(user.getUserId()); PageHelper.startPage(request.getPageNum(), request.getPageSize()); List fitmentCheckVOList = new ArrayList<>(); //shopId,lineid,regionid,shopname,storenum, - - List shopInfoDOS = shopInfoMapper.selectShopListByRegionId(regions, ShopSubStageEnum.SHOP_STAGE_12.getShopSubStage(), request.getSubStageStatus(), null); + //督导查询是自己的 + List shopInfoDOS = shopInfoMapper.selectShopListByUser(isAdmin?null:user.getUserId(), ShopSubStageEnum.SHOP_STAGE_12.getShopSubStage(), request.getSubStageStatus(), null); PageInfo pageInfo = new PageInfo<>(shopInfoDOS); if (shopInfoDOS.isEmpty()) { log.info("该工程部监理下门店为空"); 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 c4b91084b..40f3a366b 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 @@ -13,10 +13,7 @@ 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.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; @@ -44,6 +41,7 @@ public class DataHandlerController { @Value("${mybatis.configuration.variables.enterpriseId}") private String eid; + @PostMapping("/importOaOldShopData") @ApiOperation("导入OA旧数据") public ResponseResult importOaOldShopData(MultipartFile file) { @@ -54,7 +52,7 @@ public class DataHandlerController { log.error("read file error:", e); } assert reader != null; - log.info("----------------------:{}",file.getOriginalFilename()); + log.info("----------------------:{}", file.getOriginalFilename()); List> dataMapList = reader.read(0, 1, Integer.MAX_VALUE); ImportTaskDO importTaskDO = new ImportTaskDO(); importTaskDO.setFileName(file.getOriginalFilename()); @@ -64,7 +62,7 @@ public class DataHandlerController { importTaskDO.setCreateUserId(CurrentUserHolder.getUserId()); importTaskDO.setCreateName(CurrentUserHolder.getUser().getName()); importTaskDO.setCreateTime(System.currentTimeMillis()); - importTaskMapper.insert(eid ,importTaskDO); + importTaskMapper.insert(eid, importTaskDO); dataHandlerServer.importOaOldShopData(dataMapList, file.getOriginalFilename(), CurrentUserHolder.getUser(), importTaskDO); return ResponseResult.success(true); } @@ -79,7 +77,7 @@ public class DataHandlerController { log.error("read file error:", e); } assert reader != null; - log.info("----------------------:{}",file.getOriginalFilename()); + log.info("----------------------:{}", file.getOriginalFilename()); List> dataMapList = reader.read(0, 1, Integer.MAX_VALUE); ImportTaskDO importTaskDO = new ImportTaskDO(); importTaskDO.setFileName(file.getOriginalFilename()); @@ -89,10 +87,16 @@ public class DataHandlerController { importTaskDO.setCreateUserId(CurrentUserHolder.getUserId()); importTaskDO.setCreateName(CurrentUserHolder.getUser().getName()); importTaskDO.setCreateTime(System.currentTimeMillis()); - importTaskMapper.insert(eid ,importTaskDO); - dataHandlerServer.dataStageHandler(dataMapList, file.getOriginalFilename(), CurrentUserHolder.getUser(), importTaskDO,flag); + importTaskMapper.insert(eid, importTaskDO); + dataHandlerServer.dataStageHandler(dataMapList, file.getOriginalFilename(), CurrentUserHolder.getUser(), importTaskDO, flag); return ResponseResult.success(true); } + @GetMapping("decorationDataInit") + @ApiOperation("装修数据初始化") + public ResponseResult decorationDataInit() { + dataHandlerServer.decorationDataInit(); + return ResponseResult.success(true); + } } From 94e187df1c22a2e9e5e969d4291884adb2dfdec9 Mon Sep 17 00:00:00 2001 From: "shuo.wang" Date: Thu, 15 May 2025 18:04:43 +0800 Subject: [PATCH 11/14] =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E6=8A=A5=E8=A1=A8?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=EF=BC=8C=E6=95=B0=E6=8D=AE=E6=A2=B3=E7=90=86?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/DecorationServiceImpl.java | 29 +++++++++---------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DecorationServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DecorationServiceImpl.java index 722497dd5..a587fa01d 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DecorationServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DecorationServiceImpl.java @@ -377,24 +377,23 @@ public class DecorationServiceImpl implements DecorationService { @Override public PageInfo getFitmentAcceptanceList(AcceptanceListRequest request, LoginUserInfo user) { - // List regions = new ArrayList<>(); -// if (!sysRoleService.checkIsAdmin(user.getUserId())) { -// List authRegionIds = userAuthMappingService.getAuthRegionIdAndSubRegionIdByUserId(user.getUserId()); -// for (String authRegionId : authRegionIds) { -// regions.add(Long.parseLong(authRegionId)); -// } -// if (regions.isEmpty()) { -// log.info("该用户下权限没有管理区域"); -// return new PageInfo<>(); -// } -// } - //判断是否是管理员 - Boolean isAdmin = sysRoleService.checkIsAdmin(user.getUserId()); + List regions = new ArrayList<>(); + if (!sysRoleService.checkIsAdmin(user.getUserId())) { + List authRegionIds = userAuthMappingService.getAuthRegionIdAndSubRegionIdByUserId(user.getUserId()); + for (String authRegionId : authRegionIds) { + regions.add(Long.parseLong(authRegionId)); + } + if (regions.isEmpty()) { + log.info("该用户下权限没有管理区域"); + return new PageInfo<>(); + } + } +// //判断是否是管理员 +// Boolean isAdmin = sysRoleService.checkIsAdmin(user.getUserId()); PageHelper.startPage(request.getPageNum(), request.getPageSize()); List fitmentCheckVOList = new ArrayList<>(); //shopId,lineid,regionid,shopname,storenum, - //督导查询是自己的 - List shopInfoDOS = shopInfoMapper.selectShopListByUser(isAdmin?null:user.getUserId(), ShopSubStageEnum.SHOP_STAGE_12.getShopSubStage(), request.getSubStageStatus(), null); + List shopInfoDOS = shopInfoMapper.selectShopListByRegionId(regions, ShopSubStageEnum.SHOP_STAGE_12.getShopSubStage(), request.getSubStageStatus(), null); PageInfo pageInfo = new PageInfo<>(shopInfoDOS); if (shopInfoDOS.isEmpty()) { log.info("该工程部监理下门店为空"); From 45feec8a1baebc7809086ce5e91a85d945f70ea5 Mon Sep 17 00:00:00 2001 From: "shuo.wang" Date: Thu, 15 May 2025 18:09:08 +0800 Subject: [PATCH 12/14] =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E6=8A=A5=E8=A1=A8?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=EF=BC=8C=E6=95=B0=E6=8D=AE=E6=A2=B3=E7=90=86?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cool/store/controller/webb/DataHandlerController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 40f3a366b..79933c053 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 @@ -93,7 +93,7 @@ public class DataHandlerController { } - @GetMapping("decorationDataInit") + @GetMapping("/decorationDataInit") @ApiOperation("装修数据初始化") public ResponseResult decorationDataInit() { dataHandlerServer.decorationDataInit(); From e344acc7de3d4f064382e606be5b71f3a4cfeafd Mon Sep 17 00:00:00 2001 From: "shuo.wang" Date: Thu, 15 May 2025 18:12:15 +0800 Subject: [PATCH 13/14] fix --- .../com/cool/store/service/impl/DataHandlerServerImpl.java | 5 +++++ 1 file changed, 5 insertions(+) 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 33685ea2c..5f4233690 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 @@ -5,12 +5,14 @@ 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.ErrorCodeEnum; import com.cool.store.enums.FileTypeEnum; import com.cool.store.enums.ImportTaskStatusEnum; import com.cool.store.enums.PosAndOrderEnum; import com.cool.store.enums.point.ShopStageEnum; import com.cool.store.enums.point.ShopSubStageEnum; import com.cool.store.enums.point.ShopSubStageStatusEnum; +import com.cool.store.exception.ServiceException; import com.cool.store.mapper.*; import com.cool.store.service.DataHandlerServer; import com.cool.store.service.FranchiseFeeService; @@ -553,6 +555,9 @@ public class DataHandlerServerImpl implements DataHandlerServer { } } } + if (CollectionUtils.isEmpty(addShopIds)){ + throw new ServiceException(ErrorCodeEnum.PARAMS_VALIDATE_ERROR); + } acceptanceInfoDAO.initAcceptanceInfo(addShopIds); return true; } From 3c2f97d2f6ece44e3c89f97413096e0458ca30ec Mon Sep 17 00:00:00 2001 From: "shuo.wang" Date: Thu, 15 May 2025 19:00:55 +0800 Subject: [PATCH 14/14] fix --- .../com/cool/store/dao/SignFranchiseDAO.java | 8 ++++++++ .../store/mapper/SignFranchiseMapper.java | 2 ++ .../resources/mapper/SignFranchiseMapper.xml | 8 ++++++++ .../vo/desk/PreparationCommonPendingVO.java | 2 ++ .../store/service/impl/DeskServiceImpl.java | 19 +++++++++++++++++++ 5 files changed, 39 insertions(+) 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 index 500b16e89..c3ec4e4f9 100644 --- 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 @@ -7,6 +7,7 @@ import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.List; /** @@ -26,4 +27,11 @@ public class SignFranchiseDAO { } return signFranchiseMapper.updateSpecific(list); } + + public List getSignType(List shopIds){ + if (CollectionUtils.isEmpty(shopIds)){ + return new ArrayList<>(); + } + return signFranchiseMapper.getSignType(shopIds); + } } 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 54bd00639..8ac02937f 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 @@ -23,4 +23,6 @@ public interface SignFranchiseMapper extends Mapper { * @description:数据处理用修改特定字段 */ Integer updateSpecific(@Param("list") List list); + + List getSignType(@Param("list") List shopIds); } diff --git a/coolstore-partner-dao/src/main/resources/mapper/SignFranchiseMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/SignFranchiseMapper.xml index a4297f6c9..5cfb3a0de 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/SignFranchiseMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/SignFranchiseMapper.xml @@ -75,4 +75,12 @@ #{item} + \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/desk/PreparationCommonPendingVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/desk/PreparationCommonPendingVO.java index d0a5b0df2..6f2569622 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/desk/PreparationCommonPendingVO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/desk/PreparationCommonPendingVO.java @@ -49,5 +49,7 @@ public class PreparationCommonPendingVO { private Integer joinMode; private Long regionId; private Date updateTime; + @ApiModelProperty("签约类型") + private Integer signType; } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DeskServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DeskServiceImpl.java index 87afc1c9d..6cb7b933d 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DeskServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DeskServiceImpl.java @@ -52,6 +52,8 @@ import static com.cool.store.utils.poi.DateUtils.YYYY_MM_DD_HH_MM_SS; @Service public class DeskServiceImpl implements DeskService { + @Resource + private SignFranchiseDAO signFranchiseDAO; @Resource DecorationMeasureDAO decorationMeasureDAO; @Resource @@ -418,6 +420,8 @@ public class DeskServiceImpl implements DeskService { List lineIds = list.stream().map(PreparationCommonPendingVO::getLineId).collect(Collectors.toList()); List lineInfoDOS = lineInfoDAO.getByLineIds(lineIds); Map lineMap = lineInfoDOS.stream().collect(Collectors.toMap(LineInfoDO::getId, line -> line)); + List signType = signFranchiseDAO.getSignType(shopIds); + Map signTypeMap = signType.stream().collect(Collectors.toMap(SignFranchiseDO::getShopId, dto -> dto)); Set regionIdSet = list.stream().map(PreparationCommonPendingVO::getRegionId).collect(Collectors.toSet()); Map regionNameMap = regionService.getBelongWarRegionNameMap(new ArrayList<>(regionIdSet)); @@ -430,6 +434,8 @@ public class DeskServiceImpl implements DeskService { if (lineInfoDO == null) { continue; } + SignFranchiseDO signFranchiseDO = signTypeMap.getOrDefault(preparationCommonPendingVO.getShopId(),new SignFranchiseDO()); + preparationCommonPendingVO.setSignType(signFranchiseDO.getSignType()); preparationCommonPendingVO.setPartnerName(lineInfoDO.getUsername()); preparationCommonPendingVO.setPartnerPhone(lineInfoDO.getMobile()); preparationCommonPendingVO.setRegionNodeName(regionNameMap.getOrDefault(preparationCommonPendingVO.getRegionId(), "")); @@ -603,6 +609,8 @@ public class DeskServiceImpl implements DeskService { List lineIds = list.stream().map(PreparationCommonPendingVO::getLineId).collect(Collectors.toList()); List lineInfoDOS = lineInfoDAO.getByLineIds(lineIds); Map lineMap = lineInfoDOS.stream().collect(Collectors.toMap(LineInfoDO::getId, line -> line)); + List signType = signFranchiseDAO.getSignType(shopIds); + Map signTypeMap = signType.stream().collect(Collectors.toMap(SignFranchiseDO::getShopId, dto -> dto)); Set regionIdSet = list.stream().map(PreparationCommonPendingVO::getRegionId).collect(Collectors.toSet()); Map regionNameMap = regionService.getBelongWarRegionNameMap(new ArrayList<>(regionIdSet)); @@ -615,6 +623,7 @@ public class DeskServiceImpl implements DeskService { if (lineInfoDO == null) { continue; } + preparationCommonPendingVO.setSignType(signTypeMap.getOrDefault(preparationCommonPendingVO.getShopId(), new SignFranchiseDO()).getSignType()); preparationCommonPendingVO.setPartnerName(lineInfoDO.getUsername()); preparationCommonPendingVO.setPartnerPhone(lineInfoDO.getMobile()); preparationCommonPendingVO.setRegionNodeName(regionNameMap.getOrDefault(preparationCommonPendingVO.getRegionId(), "")); @@ -653,6 +662,8 @@ public class DeskServiceImpl implements DeskService { List shopInfoList = shopInfoDAO.getShopListByIds(shopIds); List lines = lineInfoDAO.getLines(lineIds); + List signType = signFranchiseDAO.getSignType(shopIds); + Map signTypeMap = signType.stream().collect(Collectors.toMap(SignFranchiseDO::getShopId, dto -> dto)); //将shopInfoList 转为map Map shopInfoMap = shopInfoList.stream().collect(Collectors.toMap(ShopInfoDO::getId, shop -> shop)); //将lines 转为map @@ -682,6 +693,10 @@ public class DeskServiceImpl implements DeskService { preparationCommonPendingVO.setShopAddress(pointInfoDO.getAddress()); } } + SignFranchiseDO signFranchiseDO = signTypeMap.get(x.getShopId()); + if (signFranchiseDO != null) { + preparationCommonPendingVO.setSignType(signFranchiseDO.getSignType()); + } preparationCommonPendingVO.setShopCode(shopInfoDO.getShopCode()); preparationCommonPendingVO.setJoinMode(shopInfoDO.getJoinMode()); preparationCommonPendingVO.setInvestmentManager(lineMap.getOrDefault(x.getLineId(), new PlanLineDTO()).getInvestmentManagerName()); @@ -742,6 +757,9 @@ public class DeskServiceImpl implements DeskService { //将lines 转为map Map lineMap = lines.stream().collect(Collectors.toMap(PlanLineDTO::getLineId, line -> line)); + List signType = signFranchiseDAO.getSignType(shopIds); + Map signTypeMap = signType.stream().collect(Collectors.toMap(SignFranchiseDO::getShopId, dto -> dto)); + List regionIds = shopInfoList.stream().map(ShopInfoDO::getRegionId).distinct().collect(Collectors.toList()); List developmentManagers = shopInfoList.stream().filter(x -> StringUtil.isNotEmpty(x.getShopManagerUserId())).map(ShopInfoDO::getShopManagerUserId).distinct().collect(Collectors.toList()); Map userNameMap = enterpriseUserDAO.getUserNameMap(developmentManagers); @@ -754,6 +772,7 @@ public class DeskServiceImpl implements DeskService { preparationCommonPendingVO.setStoreType(shopInfoDO.getStoreType()); preparationCommonPendingVO.setJoinMode(shopInfoDO.getJoinMode()); preparationCommonPendingVO.setShopAddress(shopInfoDO.getDetailAddress()); + preparationCommonPendingVO.setSignType(signTypeMap.getOrDefault(x.getShopId(), new SignFranchiseDO()).getSignType()); preparationCommonPendingVO.setShopCode(shopInfoDO.getShopCode()); preparationCommonPendingVO.setLineId(shopInfoDO.getLineId()); preparationCommonPendingVO.setShopId(x.getShopId());