diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/OpenAcceptanceInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/OpenAcceptanceInfoDAO.java index b3e432a6a..f5459593c 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/OpenAcceptanceInfoDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/OpenAcceptanceInfoDAO.java @@ -1,5 +1,6 @@ package com.cool.store.dao; +import com.cool.store.entity.OpenAcceptanceInfoDO; import com.cool.store.mapper.OpenAcceptanceInfoMapper; import com.cool.store.request.OpenAcceptanceRequest; import com.cool.store.vo.OpenAcceptanceInfoListVO; @@ -23,5 +24,9 @@ public class OpenAcceptanceInfoDAO { return openAcceptanceInfoMapper.openAcceptanceList(openAcceptanceRequest); } + public int insertSelective(OpenAcceptanceInfoDO openAcceptanceInfoDO){ + return openAcceptanceInfoMapper.insertSelective(openAcceptanceInfoDO); + } + } 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 41fabf7c0..2e7a52342 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 @@ -10,6 +10,7 @@ import com.cool.store.vo.shop.RentInfoToDoVO; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; import com.google.common.collect.Lists; +import io.swagger.models.auth.In; import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Repository; @@ -64,6 +65,13 @@ public class ShopStageInfoDAO { return shopStageInfoMapper.batchInsert(addShopStageList); } + public Integer batchUpdate(List shopStageList) { + if(CollectionUtils.isEmpty(shopStageList)){ + return 0; + } + return shopStageInfoMapper.batchUpdate(shopStageList); + } + /** * 获取店铺阶段信息 * @param shopId @@ -76,6 +84,13 @@ public class ShopStageInfoDAO { return shopStageInfoMapper.getShopStageInfo(shopId, shopStage); } + public Integer getAllCompletionCount(Long shopId) { + if(Objects.isNull(shopId)){ + return 0; + } + return shopStageInfoMapper.getAllCompletionCount(shopId); + } + /** * 获取子阶段信息 * @param shopId 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 1072cdf1e..cd2927c0f 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 @@ -17,6 +17,13 @@ public interface ShopStageInfoMapper extends Mapper { */ Integer batchInsert(@Param("addShopStageList") List addShopStageList); + /** + * 批量修改 + * @param addShopStageList + * @return + */ + Integer batchUpdate(@Param("addShopStageList") List addShopStageList); + /** * 获取店铺阶段信息 * @param shopId @@ -26,14 +33,21 @@ public interface ShopStageInfoMapper extends Mapper { List getShopStageInfo(@Param("shopId") Long shopId, @Param("shopStage") Integer shopStage); /** - * 跟新店铺阶段信息 + * 查询结束阶段的数量 * @param shopId - * @param shopSubStage - * @param shopSubStageStatus - * @param isTerminated - * @param remark * @return */ + Integer getAllCompletionCount(@Param("shopId") Long shopId); + + /** + * 跟新店铺阶段信息 + * @param shopId + * @param shopSubStage + * @param shopSubStageStatus + * @param isTerminated + * @param remark + * @return + */ Integer updateShopStageInfo(@Param("shopId") Long shopId, @Param("shopSubStage") Integer shopSubStage, @Param("shopSubStageStatus") Integer shopSubStageStatus, @Param("isTerminated")boolean isTerminated, @Param("remark") String remark); diff --git a/coolstore-partner-dao/src/main/resources/mapper/ShopStageInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/ShopStageInfoMapper.xml index 8eef2f713..d7a8114a2 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/ShopStageInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/ShopStageInfoMapper.xml @@ -29,6 +29,23 @@ + + + update xfsg_shop_stage_info + + shop_sub_stage_status = CASE id + + WHEN #{item.id} THEN IFNULL(#{item.shopSubStageStatus},shop_sub_stage_status) + + END + + where id in ( + + #{item.id} + + ) + + + + update xfsg_shop_stage_info diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/OpenAcceptanceInfoDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/OpenAcceptanceInfoDO.java index 7d8df5d92..083a4250e 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/OpenAcceptanceInfoDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/OpenAcceptanceInfoDO.java @@ -25,7 +25,7 @@ public class OpenAcceptanceInfoDO { * 验收状态 */ @Column(name = "acceptance_status") - private Byte acceptanceStatus; + private Integer acceptanceStatus; /** * 验收人 @@ -182,7 +182,7 @@ public class OpenAcceptanceInfoDO { * * @return acceptance_status - 验收状态 */ - public Byte getAcceptanceStatus() { + public Integer getAcceptanceStatus() { return acceptanceStatus; } @@ -191,7 +191,7 @@ public class OpenAcceptanceInfoDO { * * @param acceptanceStatus 验收状态 */ - public void setAcceptanceStatus(Byte acceptanceStatus) { + public void setAcceptanceStatus(Integer acceptanceStatus) { this.acceptanceStatus = acceptanceStatus; } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/PreparationService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/PreparationService.java new file mode 100644 index 000000000..54b02cb3c --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/PreparationService.java @@ -0,0 +1,26 @@ +package com.cool.store.service; + +/** + * @Author suzhuhong + * @Date 2024/4/22 16:10 + * @Version 1.0 + */ +public interface PreparationService { + + + /** + * 校验建店与加盟签约合同是否完成 并初始化后续流程数据 + * @param shopId + */ + void contractAndBuildStoreCompletion(Long shopId); + + + /** + * 是否开业验收 改走的流程都已经完成 ->初始化开业验收数据 + * @param shopId + */ + void whetherToOpenForAcceptance(Long shopId); + + + +} 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 new file mode 100644 index 000000000..59b1bbe0e --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PreparationServiceImpl.java @@ -0,0 +1,79 @@ +package com.cool.store.service.impl; + +import com.cool.store.constants.CommonConstants; +import com.cool.store.dao.OpenAcceptanceInfoDAO; +import com.cool.store.dao.ShopStageInfoDAO; +import com.cool.store.entity.OpenAcceptanceInfoDO; +import com.cool.store.entity.ShopStageInfoDO; +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.service.PreparationService; +import com.cool.store.utils.poi.constant.Constants; +import org.apache.commons.collections4.CollectionUtils; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * @Author suzhuhong + * @Date 2024/4/22 16:21 + * @Version 1.0 + */ +@Service +public class PreparationServiceImpl implements PreparationService { + + @Resource + private ShopStageInfoDAO shopStageInfoDAO; + @Resource + private OpenAcceptanceInfoDAO openAcceptanceInfoDAO; + + + @Override + public void contractAndBuildStoreCompletion(Long shopId) { + List shopStageInfo = shopStageInfoDAO.getShopStageInfo(shopId, null); + if (CollectionUtils.isNotEmpty(shopStageInfo)){ + Map shopStageInfoDOMap = shopStageInfo.stream().collect(Collectors.toMap(ShopStageInfoDO::getShopSubStage, data -> data)); + Boolean buildStoreCompletionFlag= ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_33.getShopSubStageStatusName().equals(shopStageInfoDOMap.get(ShopSubStageEnum.SHOP_STAGE_3.getShopSubStage()).getShopSubStageStatus()); + Boolean contractCompletionFlag= ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_73.getShopSubStageStatusName().equals(shopStageInfoDOMap.get(ShopSubStageEnum.SHOP_STAGE_7.getShopSubStage()).getShopSubStageStatus()); + + //都完成了 初始化后续流程数据 + if (buildStoreCompletionFlag && contractCompletionFlag){ + //初始化后续流程数据 设计阶段 装修阶段 开业运营方案 首批订货清单 + List list = new ArrayList<>(); + ShopStageInfoDO data1 = shopStageInfoDOMap.get(ShopSubStageEnum.SHOP_STAGE_9.getShopSubStage()); + data1.setShopSubStageStatus(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_90.getShopSubStageStatus()); + list.add(data1); + ShopStageInfoDO data2 = shopStageInfoDOMap.get(ShopSubStageEnum.SHOP_STAGE_11.getShopSubStage()); + data2.setShopSubStageStatus(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_110.getShopSubStageStatus()); + list.add(data2); + ShopStageInfoDO data3 = shopStageInfoDOMap.get(ShopSubStageEnum.SHOP_STAGE_14.getShopSubStage()); + data3.setShopSubStageStatus(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_140.getShopSubStageStatus()); + list.add(data3); + ShopStageInfoDO data4 = shopStageInfoDOMap.get(ShopSubStageEnum.SHOP_STAGE_15.getShopSubStage()); + data4.setShopSubStageStatus(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_150.getShopSubStageStatus()); + list.add(data4); + shopStageInfoDAO.batchUpdate(list); + } + } + } + + + @Override + public void whetherToOpenForAcceptance(Long shopId) { + Integer allCompletionCount = shopStageInfoDAO.getAllCompletionCount(shopId); + //如果等于5 表示前面阶段都已经完成 初始化开业验收数据 + if (allCompletionCount.equals(CommonConstants.FIVE)){ + OpenAcceptanceInfoDO openAcceptanceInfoDO = new OpenAcceptanceInfoDO(); + openAcceptanceInfoDO.setShopId(shopId); + openAcceptanceInfoDO.setAcceptanceStatus(CommonConstants.ZERO); + openAcceptanceInfoDAO.insertSelective(openAcceptanceInfoDO); + } + } + + +}