diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageEnum.java index 5f410e516..b2d400787 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageEnum.java @@ -3,6 +3,7 @@ package com.cool.store.enums.point; import java.time.LocalDate; import java.util.ArrayList; import java.util.List; +import java.util.Objects; /** * @author zhangchenbiao @@ -129,4 +130,16 @@ public enum ShopSubStageEnum { } } + public static ShopSubStageEnum getByShopSubStage(Integer shopSubStage) { + if(Objects.isNull(shopSubStage)){ + return null; + } + for (ShopSubStageEnum value : ShopSubStageEnum.values()) { + if (value.getShopSubStage().equals(shopSubStage)) { + return value; + } + } + return null; + } + } diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageFieldEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageFieldEnum.java new file mode 100644 index 000000000..be82c7ec7 --- /dev/null +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageFieldEnum.java @@ -0,0 +1,67 @@ +package com.cool.store.enums.point; + +import java.util.Objects; + +/** + * @author zhangchenbiao + * @FileName: ShopStageEnum + * @Description:店铺阶段 + * @date 2024-04-10 17:34 + */ +public enum ShopSubStageFieldEnum { + + SHOP_STAGE_3(30, "系统建店", "systemSetup"), + SHOP_STAGE_4(40, "证照办理", "licenseProcessing"), + SHOP_STAGE_5(50, "员工招聘", "trainingRegistration"), + SHOP_STAGE_6(60, "加盟商/员工培训", "trainingForFranchisee"), + SHOP_STAGE_7(70, "缴纳加盟费/保证金", "franchiseFeeDeposit"), + SHOP_STAGE_8( 80, "加盟合同签约", "contractSigning"), + SHOP_STAGE_9( 90, "设计阶段", "storeDesign"), + SHOP_STAGE_11(110, "施工阶段", "construction"), + SHOP_STAGE_12(120, "三方验收", "tripleAcceptance"), + SHOP_STAGE_13(130, "视觉验收", "visualAcceptance"), + SHOP_STAGE_14(140, "开业运营方案", "marketPlanning"), + SHOP_STAGE_15(150, "首批订货清单", "initialDeliveryList"), + ; + + //子阶段 + private Integer shopSubStage; + + //子阶段名称 + private String shopSubStageName; + + //属性名称 + private String filed; + + ShopSubStageFieldEnum(Integer shopSubStage, String shopSubStageName, String planCompleteDays) { + this.shopSubStage = shopSubStage; + this.shopSubStageName = shopSubStageName; + this.filed = planCompleteDays; + } + + + public Integer getShopSubStage() { + return shopSubStage; + } + + public String getShopSubStageName() { + return shopSubStageName; + } + + + public String getFiled() { + return filed; + } + + public static ShopSubStageFieldEnum getByShopSubStage(Integer shopSubStage) { + if(Objects.isNull(shopSubStage)){ + return null; + } + for (ShopSubStageFieldEnum value : ShopSubStageFieldEnum.values()) { + if (value.getShopSubStage().equals(shopSubStage)) { + return value; + } + } + return null; + } +} 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 f5459593c..d3ed8ec3b 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 @@ -20,7 +20,8 @@ public class OpenAcceptanceInfoDAO { private OpenAcceptanceInfoMapper openAcceptanceInfoMapper; - public List openAcceptanceList(OpenAcceptanceRequest openAcceptanceRequest){ + public List openAcceptanceList(OpenAcceptanceRequest openAcceptanceRequest) { + return openAcceptanceInfoMapper.openAcceptanceList(openAcceptanceRequest); } @@ -28,5 +29,10 @@ public class OpenAcceptanceInfoDAO { return openAcceptanceInfoMapper.insertSelective(openAcceptanceInfoDO); } - + public OpenAcceptanceInfoDO selectOne(OpenAcceptanceInfoDO acceptanceInfoDO) { + return openAcceptanceInfoMapper.selectOne(acceptanceInfoDO); + } + public int updateByPrimaryKeySelective(OpenAcceptanceInfoDO acceptanceInfoDO) { + return openAcceptanceInfoMapper.updateByPrimaryKeySelective(acceptanceInfoDO); + } } 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 083a4250e..70c0e6527 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 @@ -1,8 +1,17 @@ package com.cool.store.entity; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + import java.util.Date; import javax.persistence.*; +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor @Table(name = "xfsg_open_acceptance_info") public class OpenAcceptanceInfoDO { @Id @@ -43,72 +52,72 @@ public class OpenAcceptanceInfoDO { * 系统建店是否合格 0-不合格 1-合格 */ @Column(name = "system_setup") - private Byte systemSetup; + private Boolean systemSetup; /** * 证照办理是否合格 */ @Column(name = "license_processing") - private Byte licenseProcessing; + private Boolean licenseProcessing; /** * 缴纳加盟费/保证金是否合格 */ @Column(name = "franchise_fee_deposit") - private Byte franchiseFeeDeposit; + private Boolean franchiseFeeDeposit; /** * 加盟合同签约是否合格 */ @Column(name = "contract_signing") - private Byte contractSigning; + private Boolean contractSigning; /** * 培训登记是否合格 */ @Column(name = "training_registration") - private Byte trainingRegistration; + private Boolean trainingRegistration; /** * 加盟商/员工培训是否合格 */ @Column(name = "training_for_franchisee") - private Byte trainingForFranchisee; + private Boolean trainingForFranchisee; /** * 新店设计是否合格 */ @Column(name = "store_design") - private Byte storeDesign; + private Boolean storeDesign; /** * 工程施工是否合格 */ - private Byte construction; + private Boolean construction; /** * 三方验收是否合格 */ @Column(name = "triple_acceptance") - private Byte tripleAcceptance; + private Boolean tripleAcceptance; /** * 视觉验收是否合格 */ @Column(name = "visual_acceptance") - private Byte visualAcceptance; + private Boolean visualAcceptance; /** * 市调和活动策划是否合格 */ @Column(name = "market_planning") - private Byte marketPlanning; + private Boolean marketPlanning; /** * 首批配送清单是否合格 */ @Column(name = "initial_delivery_list") - private Byte initialDeliveryList; + private Boolean initialDeliveryList; /** * 删除标识 @@ -127,359 +136,4 @@ public class OpenAcceptanceInfoDO { @Column(name = "update_time") private Date updateTime; - /** - * @return id - */ - public Long getId() { - return id; - } - - /** - * @param id - */ - public void setId(Long id) { - this.id = id; - } - - /** - * 获取line_info.id - * - * @return shop_id - line_info.id - */ - public Long getShopId() { - return shopId; - } - - /** - * 设置line_info.id - * - * @param shopId line_info.id - */ - public void setShopId(Long shopId) { - this.shopId = shopId; - } - - /** - * 获取计划开业时间 - * - * @return plan_open_time - 计划开业时间 - */ - public Date getPlanOpenTime() { - return planOpenTime; - } - - /** - * 设置计划开业时间 - * - * @param planOpenTime 计划开业时间 - */ - public void setPlanOpenTime(Date planOpenTime) { - this.planOpenTime = planOpenTime; - } - - /** - * 获取验收状态 - * - * @return acceptance_status - 验收状态 - */ - public Integer getAcceptanceStatus() { - return acceptanceStatus; - } - - /** - * 设置验收状态 - * - * @param acceptanceStatus 验收状态 - */ - public void setAcceptanceStatus(Integer acceptanceStatus) { - this.acceptanceStatus = acceptanceStatus; - } - - /** - * 获取验收时间 - * - * @return acceptance_time - 验收时间 - */ - public Date getAcceptanceTime() { - return acceptanceTime; - } - - /** - * 设置验收时间 - * - * @param acceptanceTime 验收时间 - */ - public void setAcceptanceTime(Date acceptanceTime) { - this.acceptanceTime = acceptanceTime; - } - - /** - * 获取系统建店是否合格 0-不合格 1-合格 - * - * @return system_setup - 系统建店是否合格 0-不合格 1-合格 - */ - public Byte getSystemSetup() { - return systemSetup; - } - - /** - * 设置系统建店是否合格 0-不合格 1-合格 - * - * @param systemSetup 系统建店是否合格 0-不合格 1-合格 - */ - public void setSystemSetup(Byte systemSetup) { - this.systemSetup = systemSetup; - } - - /** - * 获取证照办理是否合格 - * - * @return license_processing - 证照办理是否合格 - */ - public Byte getLicenseProcessing() { - return licenseProcessing; - } - - /** - * 设置证照办理是否合格 - * - * @param licenseProcessing 证照办理是否合格 - */ - public void setLicenseProcessing(Byte licenseProcessing) { - this.licenseProcessing = licenseProcessing; - } - - /** - * 获取缴纳加盟费/保证金是否合格 - * - * @return franchise_fee_deposit - 缴纳加盟费/保证金是否合格 - */ - public Byte getFranchiseFeeDeposit() { - return franchiseFeeDeposit; - } - - /** - * 设置缴纳加盟费/保证金是否合格 - * - * @param franchiseFeeDeposit 缴纳加盟费/保证金是否合格 - */ - public void setFranchiseFeeDeposit(Byte franchiseFeeDeposit) { - this.franchiseFeeDeposit = franchiseFeeDeposit; - } - - /** - * 获取加盟合同签约是否合格 - * - * @return contract_signing - 加盟合同签约是否合格 - */ - public Byte getContractSigning() { - return contractSigning; - } - - /** - * 设置加盟合同签约是否合格 - * - * @param contractSigning 加盟合同签约是否合格 - */ - public void setContractSigning(Byte contractSigning) { - this.contractSigning = contractSigning; - } - - /** - * 获取培训登记是否合格 - * - * @return training_registration - 培训登记是否合格 - */ - public Byte getTrainingRegistration() { - return trainingRegistration; - } - - /** - * 设置培训登记是否合格 - * - * @param trainingRegistration 培训登记是否合格 - */ - public void setTrainingRegistration(Byte trainingRegistration) { - this.trainingRegistration = trainingRegistration; - } - - /** - * 获取加盟商/员工培训是否合格 - * - * @return training_for_franchisee - 加盟商/员工培训是否合格 - */ - public Byte getTrainingForFranchisee() { - return trainingForFranchisee; - } - - /** - * 设置加盟商/员工培训是否合格 - * - * @param trainingForFranchisee 加盟商/员工培训是否合格 - */ - public void setTrainingForFranchisee(Byte trainingForFranchisee) { - this.trainingForFranchisee = trainingForFranchisee; - } - - /** - * 获取新店设计是否合格 - * - * @return store_design - 新店设计是否合格 - */ - public Byte getStoreDesign() { - return storeDesign; - } - - /** - * 设置新店设计是否合格 - * - * @param storeDesign 新店设计是否合格 - */ - public void setStoreDesign(Byte storeDesign) { - this.storeDesign = storeDesign; - } - - /** - * 获取工程施工是否合格 - * - * @return construction - 工程施工是否合格 - */ - public Byte getConstruction() { - return construction; - } - - /** - * 设置工程施工是否合格 - * - * @param construction 工程施工是否合格 - */ - public void setConstruction(Byte construction) { - this.construction = construction; - } - - /** - * 获取三方验收是否合格 - * - * @return triple_acceptance - 三方验收是否合格 - */ - public Byte getTripleAcceptance() { - return tripleAcceptance; - } - - /** - * 设置三方验收是否合格 - * - * @param tripleAcceptance 三方验收是否合格 - */ - public void setTripleAcceptance(Byte tripleAcceptance) { - this.tripleAcceptance = tripleAcceptance; - } - - /** - * 获取视觉验收是否合格 - * - * @return visual_acceptance - 视觉验收是否合格 - */ - public Byte getVisualAcceptance() { - return visualAcceptance; - } - - /** - * 设置视觉验收是否合格 - * - * @param visualAcceptance 视觉验收是否合格 - */ - public void setVisualAcceptance(Byte visualAcceptance) { - this.visualAcceptance = visualAcceptance; - } - - /** - * 获取市调和活动策划是否合格 - * - * @return market_planning - 市调和活动策划是否合格 - */ - public Byte getMarketPlanning() { - return marketPlanning; - } - - /** - * 设置市调和活动策划是否合格 - * - * @param marketPlanning 市调和活动策划是否合格 - */ - public void setMarketPlanning(Byte marketPlanning) { - this.marketPlanning = marketPlanning; - } - - /** - * 获取首批配送清单是否合格 - * - * @return initial_delivery_list - 首批配送清单是否合格 - */ - public Byte getInitialDeliveryList() { - return initialDeliveryList; - } - - /** - * 设置首批配送清单是否合格 - * - * @param initialDeliveryList 首批配送清单是否合格 - */ - public void setInitialDeliveryList(Byte initialDeliveryList) { - this.initialDeliveryList = initialDeliveryList; - } - - /** - * 获取删除标识 - * - * @return deleted - 删除标识 - */ - public Boolean getDeleted() { - return deleted; - } - - /** - * 设置删除标识 - * - * @param deleted 删除标识 - */ - public void setDeleted(Boolean deleted) { - this.deleted = deleted; - } - - /** - * 获取创建时间 - * - * @return create_time - 创建时间 - */ - public Date getCreateTime() { - return createTime; - } - - /** - * 设置创建时间 - * - * @param createTime 创建时间 - */ - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - /** - * 获取更新时间 - * - * @return update_time - 更新时间 - */ - public Date getUpdateTime() { - return updateTime; - } - - /** - * 设置更新时间 - * - * @param updateTime 更新时间 - */ - public void setUpdateTime(Date updateTime) { - this.updateTime = updateTime; - } } \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/ShopAcceptanceRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/ShopAcceptanceRequest.java new file mode 100644 index 000000000..98a263ebe --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/ShopAcceptanceRequest.java @@ -0,0 +1,28 @@ +package com.cool.store.request; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; +import java.util.List; + +/** + * @author byd + */ +@Data +public class ShopAcceptanceRequest { + + + /** + * 店铺id + */ + @ApiModelProperty("店铺id") + private Long shopId; + + @ApiModelProperty("开业时间") + private Date planOpenTime; + + @ApiModelProperty("店铺子阶段验收结果") + private List shopStageAcceptanceList; + +} \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/ShopStageAcceptanceRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/ShopStageAcceptanceRequest.java new file mode 100644 index 000000000..098dd34b8 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/ShopStageAcceptanceRequest.java @@ -0,0 +1,24 @@ +package com.cool.store.request; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author byd + */ +@Data +public class ShopStageAcceptanceRequest { + + + + /** + * 店铺阶段 + */ + @ApiModelProperty("店铺子阶段") + private Integer shopSubStage; + + + @ApiModelProperty("是否合格 0:不合格 1:合格") + private Boolean result; + +} \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/OpenAcceptanceInfoListVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/OpenAcceptanceInfoListVO.java index 832248d74..816c7744a 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/OpenAcceptanceInfoListVO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/OpenAcceptanceInfoListVO.java @@ -43,7 +43,7 @@ public class OpenAcceptanceInfoListVO { private Long largeRegionId; @ApiModelProperty("大区名称") - private Long largeRegionName; + private String largeRegionName; @ApiModelProperty("计划开业时间") private Date planOpenTime; @ApiModelProperty("验收状态 0:未验收 1:已验收") diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/ShopStageAcceptanceVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/ShopStageAcceptanceVO.java new file mode 100644 index 000000000..4696c719f --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/ShopStageAcceptanceVO.java @@ -0,0 +1,51 @@ +package com.cool.store.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.persistence.*; +import java.util.Date; + +/** + * @author byd + */ +@Data +public class ShopStageAcceptanceVO { + + /** + * 店铺id + */ + @ApiModelProperty("id") + private Long id; + + /** + * 店铺id + */ + @ApiModelProperty("店铺id") + private Long shopId; + + /** + * 店铺阶段 + */ + @ApiModelProperty("店铺子阶段") + private Integer shopSubStage; + + + /** + * 店铺阶段 + */ + @ApiModelProperty("店铺子阶段名称") + private String shopSubStageName; + + + /** + * 实际完成时间 + */ + @ApiModelProperty("实际完成时间") + private String actualCompleteTime; + + + @ApiModelProperty("是否合格 0:不合格 1:合格") + private Boolean result; + +} \ No newline at end of file diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/OpenAcceptanceInfoService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/OpenAcceptanceInfoService.java index 5e2f50fde..9d2a15afa 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/OpenAcceptanceInfoService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/OpenAcceptanceInfoService.java @@ -1,14 +1,36 @@ package com.cool.store.service; import com.cool.store.request.OpenAcceptanceRequest; +import com.cool.store.request.ShopAcceptanceRequest; import com.cool.store.vo.OpenAcceptanceInfoListVO; +import com.cool.store.vo.ShopStageAcceptanceVO; import com.github.pagehelper.PageInfo; +import java.util.List; + /** * @author byd * @date 2024-04-22 14:41 */ public interface OpenAcceptanceInfoService { + /** + * 开业验收列表 + * @param openAcceptanceRequest + * @return + */ PageInfo openAcceptanceList(OpenAcceptanceRequest openAcceptanceRequest); + + /** + * 获取验收阶段 + * @param shopId 店铺id + * @return + */ + List acceptanceStageList(Long shopId); + + /** + * 验收 + * @param shopAcceptanceRequest + */ + void acceptance(ShopAcceptanceRequest shopAcceptanceRequest, String userId); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/OpenAcceptanceInfoServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/OpenAcceptanceInfoServiceImpl.java index 7c0a65b5f..c5154058c 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/OpenAcceptanceInfoServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/OpenAcceptanceInfoServiceImpl.java @@ -1,15 +1,29 @@ package com.cool.store.service.impl; +import cn.hutool.core.util.ReflectUtil; +import com.cool.store.dao.EnterpriseUserDAO; import com.cool.store.dao.OpenAcceptanceInfoDAO; +import com.cool.store.dao.RegionDao; +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.ShopSubStageFieldEnum; +import com.cool.store.exception.ServiceException; import com.cool.store.request.OpenAcceptanceRequest; +import com.cool.store.request.ShopAcceptanceRequest; import com.cool.store.service.OpenAcceptanceInfoService; +import com.cool.store.service.RegionService; import com.cool.store.vo.OpenAcceptanceInfoListVO; +import com.cool.store.vo.ShopStageAcceptanceVO; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.List; +import java.util.*; /** * @author byd @@ -21,10 +35,94 @@ public class OpenAcceptanceInfoServiceImpl implements OpenAcceptanceInfoService @Resource private OpenAcceptanceInfoDAO openAcceptanceInfoDAO; + @Resource + private EnterpriseUserDAO userDAO; + + @Resource + private RegionService regionService; + + @Resource + private RegionDao regionDao; + + @Resource + private ShopStageInfoDAO shopStageInfoDAO; + @Override public PageInfo openAcceptanceList(OpenAcceptanceRequest openAcceptanceRequest) { PageHelper.startPage(openAcceptanceRequest.getPageNum(), openAcceptanceRequest.getPageSize()); List resultList = openAcceptanceInfoDAO.openAcceptanceList(openAcceptanceRequest); + List userIdList = new ArrayList<>(); + for (OpenAcceptanceInfoListVO vo : resultList) { + userIdList.add(vo.getSupervisorUserId()); + userIdList.add(vo.getShopManagerUserId()); + userIdList.add(vo.getAcceptanceUserId()); + userIdList.add(vo.getInvestmentManager()); + } + if (CollectionUtils.isNotEmpty(userIdList)) { + Map userNameMap = userDAO.getUserNameMap(userIdList); + for (OpenAcceptanceInfoListVO vo : resultList) { + vo.setSupervisorUserName(userNameMap.get(vo.getSupervisorUserId())); + vo.setShopManagerUserName(userNameMap.get(vo.getShopManagerUserId())); + vo.setAcceptanceUserName(userNameMap.get(vo.getAcceptanceUserId())); + vo.setInvestmentManagerName(userNameMap.get(vo.getInvestmentManager())); + if (vo.getRegionId() != null) { + Long bigRegionIdByAreaId = regionService.getBigRegionIdByAreaId(vo.getRegionId()); + Map regionNameMap = regionDao.getRegionNameMap(Arrays.asList(bigRegionIdByAreaId, vo.getRegionId())); + vo.setRegionId(vo.getRegionId()); + vo.setRegionName(regionNameMap.get(vo.getRegionId())); + vo.setLargeRegionId(bigRegionIdByAreaId); + vo.setLargeRegionName(regionNameMap.get(bigRegionIdByAreaId)); + } + } + } return new PageInfo<>(resultList); } + + @Override + public List acceptanceStageList(Long shopId) { + + List stageInfoDOList = shopStageInfoDAO.getShopStageInfo(shopId, ShopStageEnum.SHOP_STAGE_2.getShopStage()); + List result = new ArrayList<>(); + OpenAcceptanceInfoDO openAcceptanceInfoDO = openAcceptanceInfoDAO.selectOne(OpenAcceptanceInfoDO.builder().shopId(shopId).build()); + stageInfoDOList.forEach(stageInfoDO -> { + ShopStageAcceptanceVO shopStageAcceptanceVO = new ShopStageAcceptanceVO(); + shopStageAcceptanceVO.setShopId(stageInfoDO.getShopId()); + shopStageAcceptanceVO.setShopSubStage(stageInfoDO.getShopSubStage()); + shopStageAcceptanceVO.setId(stageInfoDO.getId()); + shopStageAcceptanceVO.setActualCompleteTime(stageInfoDO.getActualCompleteTime()); + ShopSubStageEnum shopSubStageEnum = ShopSubStageEnum.getByShopSubStage(stageInfoDO.getShopSubStage()); + if (shopSubStageEnum != null) { + shopStageAcceptanceVO.setShopSubStageName(shopSubStageEnum.getShopSubStageName()); + } + ShopSubStageFieldEnum shopSubStageFieldEnum = ShopSubStageFieldEnum.getByShopSubStage(stageInfoDO.getShopSubStage()); + if (shopSubStageFieldEnum != null) { + shopStageAcceptanceVO.setResult(ReflectUtil.getFieldValue(openAcceptanceInfoDO, shopSubStageFieldEnum.getFiled()) == null ? + null : (Boolean) ReflectUtil.getFieldValue(openAcceptanceInfoDO, shopSubStageFieldEnum.getFiled())); + } + result.add(shopStageAcceptanceVO); + }); + return result; + } + + @Override + public void acceptance(ShopAcceptanceRequest shopAcceptanceRequest, String userId) { + OpenAcceptanceInfoDO openAcceptanceInfoDO = openAcceptanceInfoDAO.selectOne(OpenAcceptanceInfoDO.builder().shopId(shopAcceptanceRequest.getShopId()).build()); + if(openAcceptanceInfoDO == null){ + throw new ServiceException("该店铺不存在"); + } + if(openAcceptanceInfoDO.getAcceptanceStatus() != null && openAcceptanceInfoDO.getAcceptanceStatus() == 1){ + throw new ServiceException("该店铺已验收完成,不能再次验收"); + } + shopAcceptanceRequest.getShopStageAcceptanceList().forEach(shopStageAcceptanceRequest -> { + ShopSubStageFieldEnum shopSubStageFieldEnum = ShopSubStageFieldEnum.getByShopSubStage(shopStageAcceptanceRequest.getShopSubStage()); + if (shopSubStageFieldEnum != null) { + ReflectUtil.setFieldValue(openAcceptanceInfoDO, shopSubStageFieldEnum.getFiled(), shopStageAcceptanceRequest.getResult()); + } + }); + openAcceptanceInfoDO.setAcceptanceStatus(1); + openAcceptanceInfoDO.setAcceptanceUserId(userId); + openAcceptanceInfoDO.setPlanOpenTime(shopAcceptanceRequest.getPlanOpenTime()); + openAcceptanceInfoDO.setAcceptanceTime(new Date()); + openAcceptanceInfoDAO.updateByPrimaryKeySelective(openAcceptanceInfoDO); + } } diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/OpenAcceptanceInfoController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/OpenAcceptanceInfoController.java index eea463889..017238a13 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/OpenAcceptanceInfoController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/OpenAcceptanceInfoController.java @@ -1,17 +1,21 @@ package com.cool.store.controller.webb; +import com.cool.store.context.CurrentUserHolder; import com.cool.store.request.OpenAcceptanceRequest; +import com.cool.store.request.ShopAcceptanceRequest; import com.cool.store.response.ResponseResult; import com.cool.store.service.OpenAcceptanceInfoService; import com.cool.store.vo.OpenAcceptanceInfoListVO; +import com.cool.store.vo.ShopStageAcceptanceVO; import com.github.pagehelper.PageInfo; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.util.List; /** * @Author byd @@ -32,4 +36,21 @@ public class OpenAcceptanceInfoController { return ResponseResult.success(openAcceptanceInfoService.openAcceptanceList(openAcceptanceRequest)); } + @GetMapping(path = "/acceptanceStageList") + @ApiOperation("开业验收阶段结果列表") + @ApiImplicitParams({ + @ApiImplicitParam(name = "shopId", value = "店铺id", required = true) + }) + public ResponseResult> acceptanceStageList(@RequestParam("shopId") Long shopId) { + return ResponseResult.success(openAcceptanceInfoService.acceptanceStageList(shopId)); + } + + + @ApiOperation("开业验收") + @PostMapping(path = "/acceptance") + public ResponseResult acceptance(@RequestBody ShopAcceptanceRequest shopAcceptanceRequest) { + openAcceptanceInfoService.acceptance(shopAcceptanceRequest, CurrentUserHolder.getUserId()); + return ResponseResult.success(Boolean.TRUE); + } + }