From 9e1e02aac1e360d33eed2507184f3a0b402fad32 Mon Sep 17 00:00:00 2001 From: "shuo.wang" Date: Thu, 14 Nov 2024 11:41:48 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E7=AD=B9=E5=A4=87=E5=88=97=E8=A1=A8=20?= =?UTF-8?q?=E5=BC=80=E5=BA=97=E6=97=B6=E9=97=B4=E9=94=99=E8=AF=AF=EF=BC=8C?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=E4=B9=9F=E6=98=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cool/store/dao/ShopStageInfoDAO.java | 8 ++++++ .../store/mapper/ShopStageInfoMapper.java | 1 + .../main/resources/mapper/ShopInfoMapper.xml | 3 +- .../resources/mapper/ShopStageInfoMapper.xml | 11 ++++++++ .../store/dto/Preparation/PreparationDTO.java | 2 +- .../vo/Preparation/PreparationScheduleVO.java | 18 ++++++++---- .../impl/ExportRealizeServiceImpl.java | 28 ++++++++++++------- .../service/impl/PreparationServiceImpl.java | 11 ++++++++ .../store/service/impl/ShopServiceImpl.java | 1 + 9 files changed, 65 insertions(+), 18 deletions(-) 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 5c3d13d57..70d5cff00 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 @@ -242,6 +242,14 @@ public class ShopStageInfoDAO { return shopStageInfoMapper.getShopContractActualCompletionTime(shopIdList); } + + public List getOpenActivityActualCompletionTime(List shopIdList){ + if (CollectionUtils.isEmpty(shopIdList)){ + return Collections.emptyList(); + } + return shopStageInfoMapper.getOpenActivityActualCompletionTime(shopIdList); + } + /** * 获取可以上传租赁合同的店铺id * @param shopIds diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopStageInfoMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopStageInfoMapper.java index 07d7908ed..c7c0d3e9d 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopStageInfoMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopStageInfoMapper.java @@ -113,6 +113,7 @@ public interface ShopStageInfoMapper extends Mapper { List getPlatformBuildList(@Param("shopIds") List shopIds); List getShopContractActualCompletionTime(@Param("shopIds") List shopIds); + List getOpenActivityActualCompletionTime(@Param("shopIds") List shopIds); /** * 获取可以上传租赁合同的店铺id diff --git a/coolstore-partner-dao/src/main/resources/mapper/ShopInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/ShopInfoMapper.xml index 5526b272e..1f65fa991 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/ShopInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/ShopInfoMapper.xml @@ -103,7 +103,8 @@ b.username as username, b.mobile as mobile, b.investment_manager as investmentManager, - DATE_ADD(b.create_time, INTERVAL 50 DAY) as planOpenTime + DATE_ADD(b.create_time, INTERVAL 50 DAY) as planOpenTime, + a.create_time as createTime from xfsg_shop_info a left join xfsg_line_info b on a.line_id = b.id where a.deleted = 0 diff --git a/coolstore-partner-dao/src/main/resources/mapper/ShopStageInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/ShopStageInfoMapper.xml index dffcfc088..06b406396 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/ShopStageInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/ShopStageInfoMapper.xml @@ -354,4 +354,15 @@ and shop_sub_stage =#{shopSubStage} + \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/Preparation/PreparationDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/Preparation/PreparationDTO.java index edb379f10..dd0ea9ab1 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/dto/Preparation/PreparationDTO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/Preparation/PreparationDTO.java @@ -36,5 +36,5 @@ public class PreparationDTO { private String supervisorUserId; - + private Date createTime; } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/Preparation/PreparationScheduleVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/Preparation/PreparationScheduleVO.java index 2f929c222..86da786d1 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/Preparation/PreparationScheduleVO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/Preparation/PreparationScheduleVO.java @@ -59,16 +59,22 @@ public class PreparationScheduleVO { private Long lineId; - @ApiModelProperty("督导") private String supervisionName; + @ApiModelProperty("开业活动完成时间") + private Date openingActivityEndTime; + @ApiModelProperty("门店创建时间") + private Date shopCreateTime; public void setDays() { - if (this.planOpenTime==null|| this.ContractCompletionTime==null){ - return; + if (this.openingActivityEndTime==null){ + long between = ChronoUnit.SECONDS.between(new Date().toInstant(), this.shopCreateTime.toInstant()); + double days = (double) between / (24*60*60); + this.days=String.format("%.1f", days); + }else{ + long between = ChronoUnit.SECONDS.between(this.openingActivityEndTime.toInstant(), this.shopCreateTime.toInstant()); + double days = (double) between / (24*60*60); + this.days = String.format("%.1f", days); } - long between = ChronoUnit.SECONDS.between(this.ContractCompletionTime.toInstant(), this.planOpenTime.toInstant()); - double days = (double) between / (24*60*60); - this.days = String.format("%.1f", days); } } 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 9a05d277e..1d8d069ee 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 @@ -24,6 +24,7 @@ import com.cool.store.utils.easyExcel.EasyExcelUtil; import com.cool.store.utils.poi.DateUtils; import com.cool.store.utils.poi.StringUtils; +import io.swagger.annotations.ApiModelProperty; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -107,7 +108,13 @@ public class ExportRealizeServiceImpl implements ExportRealizeService { userIds.addAll(preparationDTOS.stream().filter(x -> StringUtils.isNotEmpty(x.getInvestmentManager())).map(PreparationDTO::getInvestmentManager).collect(Collectors.toSet())); userIds.addAll(preparationDTOS.stream().filter(x -> StringUtils.isNotEmpty(x.getSupervisorUserId())).map(PreparationDTO::getSupervisorUserId).collect(Collectors.toSet())); Map userInfoMap = enterpriseUserDAO.getUserInfoMap(new ArrayList<>(userIds)); - + List openActivityActualCompletionTime = shopStageInfoDAO.getOpenActivityActualCompletionTime(shopIds); + Map openActivityStageMap; + if (openActivityActualCompletionTime !=null){ + openActivityStageMap = openActivityActualCompletionTime.stream().collect(Collectors.toMap(ShopStageInfoDO::getShopId, x -> x)); + } else { + openActivityStageMap = new HashMap<>(); + } List result = new ArrayList<>(); preparationDTOS.forEach(x -> { PreparationScheduleDTO dto1 = new PreparationScheduleDTO(); @@ -120,19 +127,20 @@ public class ExportRealizeServiceImpl implements ExportRealizeService { dto1.setInvestmentManagerName(userInfoMap.getOrDefault(x.getInvestmentManager(), new EnterpriseUserDO()).getName()); dto1.setRegionNodeName(regionNameMap.getOrDefault(x.getRegionId(), "")); ScheduleDTO dto = scheduleDTOMap.getOrDefault(x.getId(), new ScheduleDTO()); - dto1.setCurrentProgress(dto.getCompletionColumn().toString()+ "/" + dto.getTotalColumn().toString() ); - ShopStageInfoDO stageInfoDO = shopStageInfoDOMap.getOrDefault(x.getId(), new ShopStageInfoDO()); - if (StringUtils.isNotEmpty(stageInfoDO.getActualCompleteTime()) && x.getPlanOpenTime() != null) { - long between = ChronoUnit.SECONDS.between(DateUtils.strToDate(stageInfoDO.getActualCompleteTime(), DateUtils.YYYY_MM_DD_HH_MM_SS).toInstant(), x.getPlanOpenTime().toInstant()); + dto1.setCurrentProgress(dto.getCompletionColumn().toString() + "/" + dto.getTotalColumn().toString()); + if ( openActivityStageMap.containsKey(x.getId())) { + Date openActivity = DateUtils.strToDate(openActivityStageMap.get(x.getId()).getActualCompleteTime(), YYYY_MM_DD_HH_MM_SS); + long between = ChronoUnit.SECONDS.between(openActivity.toInstant(), x.getCreateTime().toInstant()); double days = (double) between / (24 * 60 * 60); - String day = String.format("%.1f", days); - if (StringUtils.isNotEmpty(day)) { - dto1.setDays(day); - } + dto1.setDays(String.format("%.1f", days)); + }else{ + long between = ChronoUnit.SECONDS.between(new Date().toInstant(), x.getCreateTime().toInstant()); + double days = (double) between / (24 * 60 * 60); + dto1.setDays(String.format("%.1f", days)); } result.add(dto1); }); - url = easyExcelUtil.exportExcel(PreparationScheduleDTO.class, result, null, FileTypeEnum.PREPARATION.getDesc()+DateUtils.parseDateToStr(DateUtils.SPECIAL_DATE_START_1,new Date()), FileTypeEnum.PREPARATION.getDesc()+DateUtils.parseDateToStr(DateUtils.SPECIAL_DATE_START_1,new Date())); + url = easyExcelUtil.exportExcel(PreparationScheduleDTO.class, result, null, FileTypeEnum.PREPARATION.getDesc() + DateUtils.parseDateToStr(DateUtils.SPECIAL_DATE_START_1, new Date()), FileTypeEnum.PREPARATION.getDesc() + DateUtils.parseDateToStr(DateUtils.SPECIAL_DATE_START_1, new Date())); } catch (Throwable e) { flag = Boolean.FALSE; log.error("fileUpload upload err, originFileName={}", FileTypeEnum.TEAM_LINE.getDesc(), e); diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PreparationServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PreparationServiceImpl.java index 0f7c8496a..6393e1ce8 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PreparationServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PreparationServiceImpl.java @@ -94,6 +94,13 @@ public class PreparationServiceImpl implements PreparationService { List shopContractActualCompletionTime = shopStageInfoDAO.getShopContractActualCompletionTime(shopIds); Map scheduleDTOMap = scheduleList.stream().collect(Collectors.toMap(ScheduleDTO::getShopId, x -> x)); Map shopStageInfoDOMap = shopContractActualCompletionTime.stream().collect(Collectors.toMap(ShopStageInfoDO::getShopId, x -> x)); + List openActivityActualCompletionTime = shopStageInfoDAO.getOpenActivityActualCompletionTime(shopIds); + Map openActivityStageMap; + if (openActivityActualCompletionTime !=null){ + openActivityStageMap = openActivityActualCompletionTime.stream().collect(Collectors.toMap(ShopStageInfoDO::getShopId, x -> x)); + } else { + openActivityStageMap = new HashMap<>(); + } List regionIds = preparationDTOS.stream().map(PreparationDTO::getRegionId).collect(Collectors.toList()); Map regionNameMap = regionService.getBelongWarRegionNameMap(regionIds); Set userIds = preparationDTOS.stream().filter(x -> StringUtils.isNotEmpty(x.getShopManagerUserId())).map(PreparationDTO::getShopManagerUserId).collect(Collectors.toSet()); @@ -112,6 +119,10 @@ public class PreparationServiceImpl implements PreparationService { preparationScheduleVO.setShopCode(x.getShopCode()); preparationScheduleVO.setPlanOpenTime(x.getPlanOpenTime()); preparationScheduleVO.setStoreNum(x.getStoreNum()); + preparationScheduleVO.setShopCreateTime(x.getCreateTime()); + if ( openActivityStageMap.containsKey(x.getId())) { + preparationScheduleVO.setOpeningActivityEndTime(DateUtils.strToDate(openActivityStageMap.get(x.getId()).getActualCompleteTime(), DateUtils.YYYY_MM_DD_HH_MM_SS)); + } preparationScheduleVO.setShopManagerUserName(userInfoMap.getOrDefault(x.getShopManagerUserId(), new EnterpriseUserDO()).getName()); preparationScheduleVO.setSupervisionName(userInfoMap.getOrDefault(x.getSupervisorUserId(), new EnterpriseUserDO()).getName()); preparationScheduleVO.setInvestmentManagerName(userInfoMap.getOrDefault(x.getInvestmentManager(), new EnterpriseUserDO()).getName()); diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ShopServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ShopServiceImpl.java index ad4aa100b..fbf7b00f3 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ShopServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ShopServiceImpl.java @@ -167,6 +167,7 @@ public class ShopServiceImpl implements ShopService { addShop.setLineId(request.getLineId()); addShop.setPartnerId(lineInfo.getPartnerId()); addShop.setShopName(shopName); + addShop.setSupervisorUserId(lineInfo.getInvestmentManager()); addShopList.add(addShop); } shopInfoDAO.batchAddShop(addShopList);