feat:正新

This commit is contained in:
苏竹红
2025-11-25 13:50:30 +08:00
parent 537ecb2f61
commit 19376134d0
5 changed files with 254 additions and 6 deletions

View File

@@ -292,6 +292,7 @@ public enum ErrorCodeEnum {
PRODUCTS_DISCARDED(1511034,"产品已报销,无法操作",null),
PRODUCTS_SALES_COMPLETED(1511034,"含有销售完成的产品,无法批量报销",null),
STORE_IS_EXIST(1511035,"该门店已存在",null),
FEE_NOT_CONSISTENT(1511036,"合同金额与缴费账单金额不一致,请确定!",null),
MESSAGE_TEMPLATE_NOT_SUPPORT_EDIT(1610001,"当前消息已发布,不支持编辑!",null),

View File

@@ -1,14 +1,8 @@
package com.cool.store.dto;
import com.cool.store.dto.contract.PushContractDTO;
import com.cool.store.vo.BaseInfoVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* @Author suzhuhong
@@ -46,4 +40,40 @@ public class ContractInformationDTO {
@ApiModelProperty("合同编号")
private String contractNo;
@ApiModelProperty(name = "合同加盟费")
private String contractFranchiseFee;
@ApiModelProperty(name = "合同管理费")
private String contractManageFee;
@ApiModelProperty(name = "合同品牌使用费")
private String contractBrandUseFee;
@ApiModelProperty(name = "合同设计费")
private String contractPerformanceBond;
@ApiModelProperty(name = "合同保证金")
private String contractLoanMargin;
@ApiModelProperty(name = "合同系统使用费")
private String contractSysUserFee;
@ApiModelProperty(name = "加盟来源")
private String joinSource;
@ApiModelProperty(name = "签约形式")
private String signModality;
@ApiModelProperty(name = "加盟费频率")
private Integer franchiseFeeFrequency;
@ApiModelProperty(name = "品牌使用费频率")
private Integer brandUseFeeFrequency;
@ApiModelProperty(name = "管理费频率")
private Integer manageFeeFrequency;
@ApiModelProperty(name = "管理费频率")
private String discountAmount;
}

View File

@@ -99,4 +99,76 @@ public class SignFranchiseDO {
@Column(name = "old_shop_code")
private String oldShopCode;
/**
* 合同加盟费
*/
@Column(name = "contract_franchise_fee")
private String contractFranchiseFee;
/**
* 合同管理费
*/
@Column(name = "contract_manage_fee")
private String contractManageFee;
/**
* 合同品牌使用费
*/
@Column(name = "contract_brand_use_fee")
private String contractBrandUseFee;
/**
* 合同设计费
*/
@Column(name = "contract_performance_bond")
private String contractPerformanceBond;
/**
* 合同保证金
*/
@Column(name = "contract_loan_margin")
private String contractLoanMargin;
/**
* 合同系统使用费
*/
@Column(name = "contract_sys_user_fee")
private String contractSysUserFee;
/**
* 加盟来源
*/
@Column(name = "join_source")
private String joinSource;
/**
* 签约形式
*/
@Column(name = "sign_modality")
private String signModality;
/**
* 加盟费频率
*/
@Column(name = "franchise_fee_frequency")
private Integer franchiseFeeFrequency;
/**
* 品牌使用费频率
*/
@Column(name = "brand_use_fee_frequency")
private Integer brandUseFeeFrequency;
/**
* 管理费频率
*/
@Column(name = "manage_fee_frequency")
private Integer manageFeeFrequency;
/**
* 加盟费折扣金额
*/
@Column(name = "discount_amount")
private String discountAmount;
}

View File

@@ -1,6 +1,7 @@
package com.cool.store.request;
import com.cool.store.entity.SignFranchiseDO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -151,6 +152,82 @@ public class AddSignFranchiseRequest {
@ApiModelProperty("老店编码 签约类型选择老店转加盟时有")
private String oldShopCode;
@ApiModelProperty("合同加盟费")
@NotBlank(message = "合同加盟费不能为空")
private String contractFranchiseFee;
/**
* 合同管理费
*/
@ApiModelProperty("合同管理费")
@NotBlank(message = "合同管理费不能为空")
private String contractManageFee;
/**
* 合同品牌使用费
*/
@ApiModelProperty("合同品牌使用费")
@NotBlank(message = "合同品牌使用费不能为空")
private String contractBrandUseFee;
/**
* 合同设计费
*/
@ApiModelProperty("合同设计费")
@NotBlank(message = "合同设计费不能为空")
private String contractPerformanceBond;
/**
* 合同保证金
*/
@ApiModelProperty("合同保证金")
@NotBlank(message = "合同保证金不能为空")
private String contractLoanMargin;
/**
* 合同系统使用费
*/
@ApiModelProperty("合同系统使用费")
@NotBlank(message = "合同系统使用费不能为空")
private String contractSysUserFee;
/**
* 加盟来源
*/
@ApiModelProperty("加盟来源")
private String joinSource;
/**
* 签约形式
*/
@ApiModelProperty("签约形式")
private String signModality;
/**
* 加盟费频率
*/
@ApiModelProperty("加盟费频率")
private Integer franchiseFeeFrequency;
/**
* 品牌使用费频率
*/
@ApiModelProperty("品牌使用费频率")
private Integer brandUseFeeFrequency;
/**
* 管理费频率
*/
@ApiModelProperty("管理费频率")
private Integer manageFeeFrequency;
/**
* 加盟费折扣金额
*/
@ApiModelProperty("加盟费折扣金额")
private String discountAmount;
public SignFranchiseDO toSignFranchiseDO() {
@@ -184,6 +261,18 @@ public class AddSignFranchiseRequest {
signFranchiseDO.setIntroductionAward(this.introductionAward);
signFranchiseDO.setPartnershipSignatoryFirstWhichStore(this.partnershipSignatoryFirstWhichStore);
signFranchiseDO.setUnifiedManagement(this.unifiedManagement);
signFranchiseDO.setContractFranchiseFee(this.contractFranchiseFee);
signFranchiseDO.setContractManageFee(this.contractManageFee);
signFranchiseDO.setContractBrandUseFee(this.contractBrandUseFee);
signFranchiseDO.setContractPerformanceBond(this.contractPerformanceBond);
signFranchiseDO.setContractLoanMargin(this.contractLoanMargin);
signFranchiseDO.setContractSysUserFee(this.contractSysUserFee);
signFranchiseDO.setJoinSource(this.joinSource);
signFranchiseDO.setSignModality(this.signModality);
signFranchiseDO.setFranchiseFeeFrequency(this.franchiseFeeFrequency);
signFranchiseDO.setBrandUseFeeFrequency(this.brandUseFeeFrequency);
signFranchiseDO.setManageFeeFrequency(this.manageFeeFrequency);
signFranchiseDO.setDiscountAmount(this.discountAmount);
return signFranchiseDO;
}

View File

@@ -185,6 +185,10 @@ public class SignFranchiseServiceImpl implements SignFranchiseService, AuditResu
if (Objects.isNull(request.getShopId())) {
throw new ServiceException(ErrorCodeEnum.SHOP_ID_NOT_EXIST);
}
//校验金额
if (!feeCheck(request)){
throw new ServiceException(ErrorCodeEnum.FEE_NOT_CONSISTENT);
}
SignFranchiseDO isExist = signFranchiseMapper.selectByShopId(request.getShopId());
if (Objects.nonNull(isExist) && Objects.isNull(request.getId())) {
throw new ServiceException(ErrorCodeEnum.DUPLICATE_SUBMISSION);
@@ -268,6 +272,10 @@ public class SignFranchiseServiceImpl implements SignFranchiseService, AuditResu
if (Objects.isNull(request.getShopId())) {
throw new ServiceException(ErrorCodeEnum.SHOP_ID_NOT_EXIST);
}
//校验金额
if (!feeCheck(request)){
throw new ServiceException(ErrorCodeEnum.FEE_NOT_CONSISTENT);
}
ShopInfoDO shopInfoDO = shopInfoMapper.selectByPrimaryKey(request.getShopId());
PointInfoDO pointInfoById = pointInfoDAO.getPointInfoById(shopInfoDO.getPointId());
SignFranchiseDO signFranchiseDO = request.toSignFranchiseDO();
@@ -298,6 +306,39 @@ public class SignFranchiseServiceImpl implements SignFranchiseService, AuditResu
return Boolean.TRUE;
}
/**
* 费用校验
* @param request
* @return
*/
private Boolean feeCheck(AddSignFranchiseRequest request){
//查询账单金额
FranchiseFeeDO franchiseFeeDO = franchiseFeeMapper.selectByShopId(request.getShopId());
if (!request.getContractFranchiseFee().equals(franchiseFeeDO.getYearFranchiseFee())){
return Boolean.FALSE;
}
//合同设计费
if (!request.getContractPerformanceBond().equals(franchiseFeeDO.getPerformanceBond())){
return Boolean.FALSE;
}
//品牌使用费
if (!request.getContractBrandUseFee().equals(franchiseFeeDO.getFirstYearFee())){
return Boolean.FALSE;
}
//合同保证金
if (!request.getContractLoanMargin().equals(franchiseFeeDO.getLoanMargin())){
return Boolean.FALSE;
}
//合同管理费
if (!request.getContractManageFee().equals(franchiseFeeDO.getFirstYearManageFee())){
return Boolean.FALSE;
}
return Boolean.TRUE;
}
private void updateShopAndPoint(AddSignFranchiseRequest request, ShopInfoDO shopInfoDO, PointInfoDO pointInfoById) {
//店铺信息
shopInfoDO.setManagerRegionId(request.getManagerRegionId());
@@ -506,6 +547,21 @@ public class SignFranchiseServiceImpl implements SignFranchiseService, AuditResu
contractInformationDTO.setFirstYearManagementFee(franchiseFeeDO.getFirstYearManageFee());
contractInformationDTO.setYearFranchiseFee(franchiseFeeDO.getYearFranchiseFee());
contractInformationDTO.setPerformanceBond(franchiseFeeDO.getPerformanceBond());
contractInformationDTO.setContractFranchiseFee(signFranchiseDO.getContractFranchiseFee());
contractInformationDTO.setContractManageFee(signFranchiseDO.getContractManageFee());
contractInformationDTO.setContractBrandUseFee(signFranchiseDO.getContractBrandUseFee());
contractInformationDTO.setContractPerformanceBond(signFranchiseDO.getContractPerformanceBond());
contractInformationDTO.setContractLoanMargin(signFranchiseDO.getContractLoanMargin());
contractInformationDTO.setContractSysUserFee(signFranchiseDO.getContractSysUserFee());
contractInformationDTO.setSignModality(signFranchiseDO.getSignModality());
contractInformationDTO.setFranchiseFeeFrequency(signFranchiseDO.getFranchiseFeeFrequency());
contractInformationDTO.setBrandUseFeeFrequency(signFranchiseDO.getBrandUseFeeFrequency());
contractInformationDTO.setJoinSource(signFranchiseDO.getJoinSource());
contractInformationDTO.setManageFeeFrequency(signFranchiseDO.getManageFeeFrequency());
contractInformationDTO.setDiscountAmount(signFranchiseDO.getDiscountAmount());
//老店转加盟(也叫直营转加盟)
if (SignTypeEnum.DIRECT_SALES_TO_JOINING.getCode().equals(signFranchiseDO.getSignType())){
contractInformationDTO.setOldShopCode(signFranchiseDO.getOldShopCode());