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 1273f2eef..86e46ead0 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 @@ -8,6 +8,8 @@ import com.cool.store.dto.openPreparation.OpenPlanShopInfoDTO; import com.cool.store.entity.AcceptanceInfoDO; import com.cool.store.entity.ShopInfoDO; import com.cool.store.entity.ShopStageInfoDO; +import com.cool.store.enums.ConstructionPhaseEnum; +import com.cool.store.enums.DesignPhaseEnum; import com.cool.store.enums.ErrorCodeEnum; import com.cool.store.enums.WorkflowSubStageStatusEnum; import com.cool.store.enums.point.ShopSubStageEnum; @@ -34,6 +36,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.*; +import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; @@ -75,15 +78,28 @@ public class DecorationServiceImpl implements DecorationService { log.error("DecorationModel storeNum is null"); return null; } + AtomicInteger flag = new AtomicInteger(0); DesignInfoVo designInfoVo = new DesignInfoVo(); List designScheme = decoration.getDesignScheme(); if (designScheme != null && designScheme.size() > CommonConstants.ZERO) { Map designSchemeMap = designScheme.stream().collect(Collectors.toMap(DesignSchemeDTO::getId, dto -> dto)); List designSchemeDTOS = new ArrayList<>(); //平面图 - designSchemeDTOS.add(designSchemeMap.get(CommonConstants.FLOOR_PLAN)); + DesignSchemeDTO planeGraph = designSchemeMap.get(CommonConstants.FLOOR_PLAN); + if (Objects.nonNull(planeGraph)) { + designSchemeDTOS.add(planeGraph); + if (DesignPhaseEnum.DESIGN_PHASE_ACCEPTANCE_PASS.getCode().equals(planeGraph.getStatus()) ){ + flag.incrementAndGet(); + } + } //施工图 - designSchemeDTOS.add(designSchemeMap.get(CommonConstants.CONSTRUCTION_DRAWING)); + DesignSchemeDTO constructionDrawing = designSchemeMap.get(CommonConstants.CONSTRUCTION_DRAWING); + if (Objects.nonNull(constructionDrawing)) { + designSchemeDTOS.add(designSchemeMap.get(CommonConstants.CONSTRUCTION_DRAWING)); + if (DesignPhaseEnum.DESIGN_PHASE_ACCEPTANCE_PASS.getCode().equals(constructionDrawing.getStatus())){ + flag.incrementAndGet(); + } + } designInfoVo.setDesignScheme(designSchemeDTOS); } @@ -93,16 +109,26 @@ public class DecorationServiceImpl implements DecorationService { dto -> dto)); if (constructionScheduleMap != null && constructionScheduleMap.size() > 0) { //量房 - designInfoVo.setMeasuringRoom(constructionScheduleMap.get(CommonConstants.MEASURING_THE_ROOM)); + ConstructionScheduleDTO measuringRoom = constructionScheduleMap.get(CommonConstants.MEASURING_THE_ROOM); + if (Objects.nonNull(measuringRoom)) { + designInfoVo.setMeasuringRoom(measuringRoom); + if (ConstructionPhaseEnum.construction_FINSH.getCode().equals(measuringRoom.getState())){ + flag.incrementAndGet(); + } + } + } } //预算 List proposedBookBudget = decoration.getProposedBookBudget(); Collections.sort(decoration.getProposedBookBudget(), (x1, x2) -> x2.getId().compareTo(x1.getId())); - designInfoVo.setProposedBookBudget(proposedBookBudget.get(CommonConstants.ZERO)); - if (Objects.nonNull(designInfoVo.getMeasuringRoom()) && Objects.nonNull(designInfoVo.getProposedBookBudget()) - && designInfoVo.getDesignScheme().size() == CommonConstants.TWO) { + if (!proposedBookBudget.isEmpty()){ + BudgetDTO budgetDTO = proposedBookBudget.get(CommonConstants.ZERO); + designInfoVo.setProposedBookBudget(budgetDTO); + flag.incrementAndGet(); + } + if (flag.get() == CommonConstants.FOUR) { //如果设计阶段未完成 if (ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_91.getShopSubStageStatus(). equals(shopStageInfoDAO.getShopSubStageInfo(shopId, ShopSubStageEnum.SHOP_STAGE_9).getShopSubStageStatus()) )