From f6ff88470c42747097d2361ca34e870f8fc6a2ce Mon Sep 17 00:00:00 2001 From: "shuo.wang" Date: Wed, 7 May 2025 14:53:54 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E6=B5=8B=E9=87=8F=E9=98=B6=E6=AE=B5?= =?UTF-8?q?=E5=92=8C=E8=AE=BE=E8=AE=A1=E9=98=B6=E6=AE=B5=E5=BE=85=E5=8A=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../store/dao/DecorationDesignInfoDAO.java | 9 ++ .../cool/store/dao/DecorationMeasureDAO.java | 15 +++ .../mapper/DecorationDesignInfoMapper.java | 6 + .../store/mapper/DecorationMeasureMapper.java | 7 ++ .../mapper/DecorationDesignInfoMapper.xml | 25 ++++- .../mapper/DecorationMeasureMapper.xml | 98 +++++++++++----- .../vo/desk/PreparationCommonPendingVO.java | 8 ++ .../store/service/impl/DeskServiceImpl.java | 106 ++++++++++++++---- 8 files changed, 224 insertions(+), 50 deletions(-) diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/DecorationDesignInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/DecorationDesignInfoDAO.java index 9f0f4f182..e823c5781 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/DecorationDesignInfoDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/DecorationDesignInfoDAO.java @@ -2,7 +2,9 @@ package com.cool.store.dao; import com.cool.store.entity.DecorationDesignInfoDO; import com.cool.store.mapper.DecorationDesignInfoMapper; +import com.cool.store.vo.desk.PreparationCommonPendingVO; import org.apache.commons.collections4.CollectionUtils; +import org.apache.xmlbeans.impl.xb.xsdschema.Public; import org.springframework.stereotype.Repository; import tk.mybatis.mapper.entity.Example; @@ -51,6 +53,13 @@ public class DecorationDesignInfoDAO { return decorationDesignInfoMapper.selectByShopId(shopId); } + // 根据报价员人员id和店铺阶段 SHOP_SUB_STAGE_STATUS_901 查询店铺信息 + public List getByQuotationUserIdAndShopStage(String userId){ + if(userId == null){ + return new ArrayList<>(); + } + return decorationDesignInfoMapper.getByQuotationUserIdAndShopStage(userId); + } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/DecorationMeasureDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/DecorationMeasureDAO.java index 4f83151ff..87151e16f 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/DecorationMeasureDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/DecorationMeasureDAO.java @@ -3,6 +3,8 @@ package com.cool.store.dao; import com.cool.store.entity.DecorationDesignInfoDO; import com.cool.store.entity.DecorationMeasureDO; import com.cool.store.mapper.DecorationMeasureMapper; +import com.cool.store.utils.StringUtil; +import com.cool.store.vo.desk.PreparationCommonPendingVO; import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Repository; import tk.mybatis.mapper.entity.Example; @@ -59,4 +61,17 @@ public class DecorationMeasureDAO { return decorationMeasureMapper.selectByShopId(shopId); } + public List getByMeasureUserIdAndShopStage(String measureUserId){ + if (StringUtil.isBlank(measureUserId)){ + return null; + } + return decorationMeasureMapper.selectByMeasureUserIdAndShopStage(measureUserId); + } + //根据设计师和阶段900 查询 店铺id + public List getShopIdListByDesignUserIdAndShopStage(String userId) { + if (StringUtil.isBlank(userId)){ + return new ArrayList<>(); + } + return decorationMeasureMapper.getShopIdListByDesignUserIdAndShopStage(userId); + } } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/DecorationDesignInfoMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/DecorationDesignInfoMapper.java index 516fdab4c..dae9bf37f 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/DecorationDesignInfoMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/DecorationDesignInfoMapper.java @@ -1,8 +1,12 @@ package com.cool.store.mapper; import com.cool.store.entity.DecorationDesignInfoDO; +import com.cool.store.vo.desk.PreparationCommonPendingVO; +import org.apache.ibatis.annotations.Param; import tk.mybatis.mapper.common.Mapper; +import java.util.List; + public interface DecorationDesignInfoMapper extends Mapper { @@ -13,4 +17,6 @@ public interface DecorationDesignInfoMapper extends Mapper getByQuotationUserIdAndShopStage(@Param("userId") String userId); + } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/DecorationMeasureMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/DecorationMeasureMapper.java index a24a5864e..3ae6e728e 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/DecorationMeasureMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/DecorationMeasureMapper.java @@ -1,8 +1,12 @@ package com.cool.store.mapper; import com.cool.store.entity.DecorationMeasureDO; +import com.cool.store.vo.desk.PreparationCommonPendingVO; +import org.apache.ibatis.annotations.Param; import tk.mybatis.mapper.common.Mapper; +import java.util.List; + public interface DecorationMeasureMapper extends Mapper { /** @@ -13,4 +17,7 @@ public interface DecorationMeasureMapper extends Mapper { */ DecorationMeasureDO selectByShopId(Long shopId); + List selectByMeasureUserIdAndShopStage(@Param("measureUserId") String measureUserId); + + List getShopIdListByDesignUserIdAndShopStage(@Param("userId") String userId); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/DecorationDesignInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/DecorationDesignInfoMapper.xml index c9f23f6e0..543a304bc 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/DecorationDesignInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/DecorationDesignInfoMapper.xml @@ -33,10 +33,29 @@ * from xfsg_decoration_design_info where shop_id = #{shopId} and deleted = 0 + \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/DecorationMeasureMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/DecorationMeasureMapper.xml index b268ee4d3..6723b7fc8 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/DecorationMeasureMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/DecorationMeasureMapper.xml @@ -1,32 +1,80 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + + + \ 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 047f17178..9f3435fa9 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 @@ -3,6 +3,8 @@ package com.cool.store.vo.desk; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.Date; + /** * @Author suzhuhong * @Date 2024/5/7 10:48 @@ -21,6 +23,8 @@ public class PreparationCommonPendingVO { private String shopAddress; @ApiModelProperty("督导") private String investmentManager; + @ApiModelProperty("督导id") + private String investmentManagerId; @ApiModelProperty("加盟商名称") private String partnerName; @ApiModelProperty("手机号") @@ -39,5 +43,9 @@ public class PreparationCommonPendingVO { private Long shopId; @ApiModelProperty("提交时间") private String submitTime; + @ApiModelProperty("门店类型") + private Integer storeType; + private Long regionId; + private Date updateTime; } 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 a03b492ff..b11c10b74 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 + DecorationMeasureDAO decorationMeasureDAO; @Resource LineInfoDAO lineInfoDAO; @Resource @@ -391,24 +393,55 @@ public class DeskServiceImpl implements DeskService { public PageInfo designPendingList(Integer pageNum, Integer pageSize, LoginUserInfo user) { List userRoleIds = enterpriseUserRoleMapper.getUserRoleIds(user.getUserId()); List subStageStatusList = new ArrayList<>(); - if (userRoleIds.contains(UserRoleEnum.HEAD_OF_DESIGN.getCode())) { - subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_90.getShopSubStageStatus()); - } - if (userRoleIds.contains(UserRoleEnum.DESIGN_CUSTOMER.getCode())) { - subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_901.getShopSubStageStatus()); - } - if (userRoleIds.contains(UserRoleEnum.QUOTATION_OFFICE.getCode())) { - subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_902.getShopSubStageStatus()); - subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_903.getShopSubStageStatus()); - } + //报价员和管理员不指定人,看阶段符合的全部数据 Boolean isAdmin = sysRoleService.checkIsAdmin(user.getUserId()); - if (isAdmin) { - subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_90.getShopSubStageStatus()); - subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_901.getShopSubStageStatus()); + if (userRoleIds.contains(UserRoleEnum.QUOTATION_OFFICE.getCode()) || isAdmin) { subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_902.getShopSubStageStatus()); subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_903.getShopSubStageStatus()); + if (isAdmin) { + subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_90.getShopSubStageStatus()); + subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_901.getShopSubStageStatus()); + subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_902.getShopSubStageStatus()); + subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_903.getShopSubStageStatus()); + } + return commonPendingVOPageInfo(pageNum, pageSize, isAdmin ? null : user, ShopSubStageEnum.SHOP_STAGE_9, subStageStatusList, isAdmin ? Boolean.FALSE : Boolean.TRUE); + } else { + List list = new ArrayList<>(); + if (userRoleIds.contains(UserRoleEnum.HEAD_OF_DESIGN.getCode())) { + PageHelper.startPage(pageNum, pageSize); + list = decorationMeasureDAO.getShopIdListByDesignUserIdAndShopStage(user.getUserId()); + } + if (userRoleIds.contains(UserRoleEnum.DESIGN_CUSTOMER.getCode())) { + PageHelper.startPage(pageNum, pageSize); + list = decorationDesignInfoDAO.getByQuotationUserIdAndShopStage(user.getUserId()); + } + if (CollectionUtils.isEmpty(list)) { + return new PageInfo<>(); + } + List shopIds = list.stream().map(PreparationCommonPendingVO::getShopId).collect(Collectors.toList()); + 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)); + + Set regionIdSet = list.stream().map(PreparationCommonPendingVO::getRegionId).collect(Collectors.toSet()); + Map regionNameMap = regionService.getBelongWarRegionNameMap(new ArrayList<>(regionIdSet)); + + Set investmentManagerIds = list.stream().map(PreparationCommonPendingVO::getInvestmentManager).collect(Collectors.toSet()); + Map userNameMap = enterpriseUserDAO.getUserNameMap(new ArrayList<>(investmentManagerIds)); + + for (PreparationCommonPendingVO preparationCommonPendingVO : list) { + LineInfoDO lineInfoDO = lineMap.get(preparationCommonPendingVO.getLineId()); + if (lineInfoDO == null) { + continue; + } + preparationCommonPendingVO.setPartnerName(lineInfoDO.getUsername()); + preparationCommonPendingVO.setPartnerPhone(lineInfoDO.getMobile()); + preparationCommonPendingVO.setRegionNodeName(regionNameMap.getOrDefault(preparationCommonPendingVO.getRegionId(), "")); + preparationCommonPendingVO.setInvestmentManager(userNameMap.getOrDefault(preparationCommonPendingVO.getInvestmentManager(), "")); + preparationCommonPendingVO.setSubmitTime(DateUtils.parseDateToStr(SPECIAL_DATE_START, preparationCommonPendingVO.getUpdateTime())); + } + return new PageInfo<>(list); } - return commonPendingVOPageInfo(pageNum, pageSize, isAdmin ? null : user, ShopSubStageEnum.SHOP_STAGE_9, subStageStatusList, isAdmin ? Boolean.FALSE : Boolean.TRUE); } @Override @@ -535,18 +568,47 @@ public class DeskServiceImpl implements DeskService { public PageInfo measurePendingList(Integer pageNum, Integer pageSize, LoginUserInfo user) { List userRoleIds = enterpriseUserRoleMapper.getUserRoleIds(user.getUserId()); List subStageStatusList = new ArrayList<>(); - if (userRoleIds.contains(UserRoleEnum.CONSTRUCTION_CUSTOMER.getCode())) { + Boolean isAdmin = sysRoleService.checkIsAdmin(user.getUserId()); + if (userRoleIds.contains(UserRoleEnum.CONSTRUCTION_CUSTOMER.getCode()) || isAdmin) { subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_861.getShopSubStageStatus()); + if (isAdmin) { + subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_861.getShopSubStageStatus()); + subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_862.getShopSubStageStatus()); + } + return commonPendingVOPageInfo(pageNum, pageSize, isAdmin ? null : user, ShopSubStageEnum.SHOP_STAGE_8_6, subStageStatusList, isAdmin ? Boolean.FALSE : Boolean.TRUE); + } if (userRoleIds.contains(UserRoleEnum.MEASURE_OFFICE.getCode())) { - subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_862.getShopSubStageStatus()); + PageHelper.startPage(pageNum, pageSize); + List list = decorationMeasureDAO.getByMeasureUserIdAndShopStage(user.getUserId()); + if (CollectionUtils.isEmpty(list)) { + return new PageInfo<>(); + } + List shopIds = list.stream().map(PreparationCommonPendingVO::getShopId).collect(Collectors.toList()); + 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)); + + Set regionIdSet = list.stream().map(PreparationCommonPendingVO::getRegionId).collect(Collectors.toSet()); + Map regionNameMap = regionService.getBelongWarRegionNameMap(new ArrayList<>(regionIdSet)); + + Set investmentManagerIds = list.stream().map(PreparationCommonPendingVO::getInvestmentManager).collect(Collectors.toSet()); + Map userNameMap = enterpriseUserDAO.getUserNameMap(new ArrayList<>(investmentManagerIds)); + + for (PreparationCommonPendingVO preparationCommonPendingVO : list) { + LineInfoDO lineInfoDO = lineMap.get(preparationCommonPendingVO.getLineId()); + if (lineInfoDO == null) { + continue; + } + preparationCommonPendingVO.setPartnerName(lineInfoDO.getUsername()); + preparationCommonPendingVO.setPartnerPhone(lineInfoDO.getMobile()); + preparationCommonPendingVO.setRegionNodeName(regionNameMap.getOrDefault(preparationCommonPendingVO.getRegionId(), "")); + preparationCommonPendingVO.setInvestmentManager(userNameMap.getOrDefault(preparationCommonPendingVO.getInvestmentManager(), "")); + preparationCommonPendingVO.setSubmitTime(DateUtils.parseDateToStr(SPECIAL_DATE_START, preparationCommonPendingVO.getUpdateTime())); + } + return new PageInfo<>(list); } - Boolean isAdmin = sysRoleService.checkIsAdmin(user.getUserId()); - if (isAdmin) { - subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_861.getShopSubStageStatus()); - subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_862.getShopSubStageStatus()); - } - return commonPendingVOPageInfo(pageNum, pageSize, isAdmin ? null : user, ShopSubStageEnum.SHOP_STAGE_8_6, subStageStatusList, isAdmin ? Boolean.FALSE : Boolean.TRUE); + return new PageInfo<>(); } /**