Merge branch 'cc_20250905_franchiseAgreement' into 'master'

Cc 20250905 franchise agreement

See merge request hangzhou/java/custom_zxjp!199
This commit is contained in:
苏竹红
2025-12-02 09:56:59 +00:00
29 changed files with 1689 additions and 93 deletions

View File

@@ -0,0 +1,102 @@
package com.cool.store.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @Author suzhuhong
* @Date 2025/9/8 10:13
* @Version 1.0
*/
@Data
public class ContractInformationDTO {
@ApiModelProperty("门店ID")
private Long shopId;
@ApiModelProperty("门店名称")
private String shopName;
@ApiModelProperty("签约人1名称")
private String sign1Name;
@ApiModelProperty("签约人2名称")
private String sign2Name;
@ApiModelProperty("加盟模式")
private Integer joinModel;
@ApiModelProperty("每年加盟费")
private String yearFranchiseFee;
@ApiModelProperty("保证金")
private String loanMargin;
@ApiModelProperty("第一年度管理费")
private String firstYearManagementFee;
@ApiModelProperty("第一年度品牌使用费")
private String firstYearFee;
@ApiModelProperty("设计费")
private String performanceBond;
@ApiModelProperty("收款方名称")
private String payeeName;
@ApiModelProperty("品牌方")
private String brandOwner;
@ApiModelProperty("老店编码 签约类型选择老店转加盟时有")
private String oldShopCode;
@ApiModelProperty("合同编号")
private String contractNo;
@ApiModelProperty("币种")
private String currency;
@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 = "加盟来源 other-其他 招商会-investment 加盟商推荐-partner_recommend 自然流量-organic_traffic 员工推荐-employee_recommend ")
private String joinSource;
@ApiModelProperty(name = "签约形式 纸质合同-paper_contract 电子合同-electronic_contract 已付款未签约-paid_but_not_signed")
private String signModality;
@ApiModelProperty(name = "加盟费频率")
private Integer franchiseFeeFrequency;
@ApiModelProperty(name = "品牌使用费频率")
private Integer brandUseFeeFrequency;
@ApiModelProperty(name = "管理费频率")
private Integer manageFeeFrequency;
@ApiModelProperty(name = "管理费频率")
private String discountAmount;
@ApiModelProperty(name = "提交人")
private String summitUserName;
@ApiModelProperty(name = "签约人地址")
private String signerAddress;
@ApiModelProperty(name = "签约人手机号")
private String signerPhone;
@ApiModelProperty(name = "合同使用年限")
private Integer contractServiceLife;
@ApiModelProperty(name = "合同开始时间")
private String contractStartTime;
@ApiModelProperty(name = "合同结束时间")
private String contractEndTime;
}

View File

@@ -0,0 +1,19 @@
package com.cool.store.dto.contract;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2025/9/17 14:42
* @Version 1.0
*/
@Data
public class ContractCallbackDTO {
private Integer infoConsistencyFlag;
private String reason;
private String storeCode;
}

View File

@@ -0,0 +1,53 @@
package com.cool.store.dto.contract;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Column;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* @Author suzhuhong
* @Date 2025/9/8 15:52
* @Version 1.0
*/
@Data
public class ContractConfigDTO {
@ApiModelProperty("主键 新建时忽略")
private Long id;
@ApiModelProperty("品牌")
@NotBlank(message = "品牌不能为空")
private String brand;
@ApiModelProperty("合同名称")
@NotBlank(message = "合同名称不能为空")
private String contractName;
@ApiModelProperty("甲方名称")
@NotBlank(message = "甲方名称不能为空")
private String partyA;
@ApiModelProperty("乙方名称")
private String partyB;
@ApiModelProperty(" 丙方名称")
private String partyC;
@ApiModelProperty("加盟模式 多选 用逗号隔开")
private List<String> franchiseModeList;
@ApiModelProperty("法大大模板ID")
private String fadadaTemplateId;
@ApiModelProperty("序号")
@NotNull(message = "序号不能为空")
private Integer serialNumber;
@ApiModelProperty("收款方名称")
private String payeeName;
}

View File

@@ -0,0 +1,167 @@
package com.cool.store.dto.contract;
import com.cool.store.common.PageBasicInfo;
import com.cool.store.enums.JoinModeEnum;
import com.cool.store.utils.StringUtil;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
* @Author suzhuhong
* @Date 2025/9/8 16:43
* @Version 1.0
*/
public class ContractListDTO {
@ApiModelProperty("主键 新建时忽略")
private Long id;
@ApiModelProperty("品牌")
@NotBlank(message = "品牌不能为空")
private String brand;
@ApiModelProperty("合同名称")
@NotBlank(message = "合同名称不能为空")
private String contractName;
@ApiModelProperty("甲方名称")
@NotBlank(message = "甲方名称不能为空")
private String partyA;
@ApiModelProperty("乙方名称")
@NotBlank(message = "乙方名称不能为空")
private String partyB;
@ApiModelProperty(" 丙方名称")
private String partyC;
@ApiModelProperty("加盟模式 多选 用逗号隔开")
private List<FranchiseModeDTO> franchiseModeList;
@ApiModelProperty("法大大模板ID")
private String fadadaTemplateId;
@ApiModelProperty("序号")
@NotNull(message = "序号不能为空")
private Integer serialNumber;
@ApiModelProperty("收款方名称")
private String payeeName;
private String franchiseMode;
@Data
protected class FranchiseModeDTO{
private String id;
private String name;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public String getContractName() {
return contractName;
}
public void setContractName(String contractName) {
this.contractName = contractName;
}
public String getPartyA() {
return partyA;
}
public void setPartyA(String partyA) {
this.partyA = partyA;
}
public String getPartyB() {
return partyB;
}
public void setPartyB(String partyB) {
this.partyB = partyB;
}
public String getPartyC() {
return partyC;
}
public void setPartyC(String partyC) {
this.partyC = partyC;
}
public void setFranchiseModeList(List<FranchiseModeDTO> franchiseModeList) {
this.franchiseModeList = franchiseModeList;
}
public String getFadadaTemplateId() {
return fadadaTemplateId;
}
public void setFadadaTemplateId(String fadadaTemplateId) {
this.fadadaTemplateId = fadadaTemplateId;
}
public Integer getSerialNumber() {
return serialNumber;
}
public void setSerialNumber(Integer serialNumber) {
this.serialNumber = serialNumber;
}
public String getPayeeName() {
return payeeName;
}
public void setPayeeName(String payeeName) {
this.payeeName = payeeName;
}
public String getFranchiseMode() {
return franchiseMode;
}
public void setFranchiseMode(String franchiseMode) {
this.franchiseMode = franchiseMode;
}
public List<FranchiseModeDTO> getFranchiseModeList(){
String[] split = this.franchiseMode.split(",");
ArrayList<FranchiseModeDTO> result = new ArrayList<>();
Arrays.stream(split).filter(item -> StringUtil.isNotEmpty(item)).forEach(item -> {
FranchiseModeDTO franchiseModeDTO = new FranchiseModeDTO();
franchiseModeDTO.setId(item);
franchiseModeDTO.setName(JoinModeEnum.getByCode(Integer.parseInt(item)));
result.add(franchiseModeDTO);
});
return result;
}
}

View File

@@ -0,0 +1,44 @@
package com.cool.store.dto.contract;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Column;
/**
* @Author suzhuhong
* @Date 2025/9/9 13:35
* @Version 1.0
*/
@Data
public class PushContractDTO {
/**
* 品牌
*/
@ApiModelProperty("品牌方名称")
private String brand;
@ApiModelProperty("合同名称")
private String contractName;
@ApiModelProperty("甲方名称")
private String partyA;
@ApiModelProperty("乙方名称")
private String partyB;
@ApiModelProperty("丙方名称")
private String partyC;
@ApiModelProperty("法大大模板ID")
private String fadadaTemplateId;
@ApiModelProperty("合同签约顺序")
private Integer serialNumber;
@ApiModelProperty("收款方名称")
private String payeeName;
}

View File

@@ -0,0 +1,16 @@
package com.cool.store.dto.contract;
import com.cool.store.common.PageBasicInfo;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2025/9/8 16:43
* @Version 1.0
*/
@Data
public class QueryContractListDTO extends PageBasicInfo {
private String brand;
}

View File

@@ -0,0 +1,297 @@
package com.cool.store.entity;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.models.auth.In;
import java.util.Date;
import javax.persistence.*;
@Table(name = "xfsg_contract_config")
public class ContractConfigDO {
/**
* 主键ID
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
/**
* 品牌
*/
private String brand;
/**
* 合同名称
*/
@Column(name = "contract_name")
private String contractName;
/**
* 甲方名称
*/
@Column(name = "party_a")
private String partyA;
/**
* 乙方名称
*/
@Column(name = "party_b")
private String partyB;
/**
* 丙方名称
*/
@Column(name = "party_c")
private String partyC;
/**
* 加盟模式 多选 用逗号隔开
*/
@Column(name = "franchise_mode")
private String franchiseMode;
/**
* 法大大模板ID
*/
@Column(name = "fadada_template_id")
private String fadadaTemplateId;
/**
* 序号
*/
@Column(name = "serial_number")
private Integer serialNumber;
/**
* 创建时间
*/
@Column(name = "create_time")
private Date createTime;
/**
* 更新时间
*/
@Column(name = "update_time")
private Date updateTime;
@Column(name = "payee_name")
@ApiModelProperty("收款方名称")
private String payeeName;
@Column(name = "deleted")
private Integer deleted;
public String getPayeeName() {
return payeeName;
}
public void setPayeeName(String payeeName) {
this.payeeName = payeeName;
}
public Integer getDeleted() {
return deleted;
}
public void setDeleted(Integer deleted) {
this.deleted = deleted;
}
/**
* 获取主键ID
*
* @return id - 主键ID
*/
public Long getId() {
return id;
}
/**
* 设置主键ID
*
* @param id 主键ID
*/
public void setId(Long id) {
this.id = id;
}
/**
* 获取品牌
*
* @return brand - 品牌
*/
public String getBrand() {
return brand;
}
/**
* 设置品牌
*
* @param brand 品牌
*/
public void setBrand(String brand) {
this.brand = brand;
}
/**
* 获取合同名称
*
* @return contract_name - 合同名称
*/
public String getContractName() {
return contractName;
}
/**
* 设置合同名称
*
* @param contractName 合同名称
*/
public void setContractName(String contractName) {
this.contractName = contractName;
}
/**
* 获取甲方名称
*
* @return party_a - 甲方名称
*/
public String getPartyA() {
return partyA;
}
/**
* 设置甲方名称
*
* @param partyA 甲方名称
*/
public void setPartyA(String partyA) {
this.partyA = partyA;
}
/**
* 获取乙方名称
*
* @return party_b - 乙方名称
*/
public String getPartyB() {
return partyB;
}
/**
* 设置乙方名称
*
* @param partyB 乙方名称
*/
public void setPartyB(String partyB) {
this.partyB = partyB;
}
/**
* 获取丙方名称
*
* @return party_c - 丙方名称
*/
public String getPartyC() {
return partyC;
}
/**
* 设置丙方名称
*
* @param partyC 丙方名称
*/
public void setPartyC(String partyC) {
this.partyC = partyC;
}
/**
* 获取加盟模式 多选 用逗号隔开
*
* @return franchise_mode - 加盟模式 多选 用逗号隔开
*/
public String getFranchiseMode() {
return franchiseMode;
}
/**
* 设置加盟模式 多选 用逗号隔开
*
* @param franchiseMode 加盟模式 多选 用逗号隔开
*/
public void setFranchiseMode(String franchiseMode) {
this.franchiseMode = franchiseMode;
}
/**
* 获取法大大模板ID
*
* @return fadada_template_id - 法大大模板ID
*/
public String getFadadaTemplateId() {
return fadadaTemplateId;
}
/**
* 设置法大大模板ID
*
* @param fadadaTemplateId 法大大模板ID
*/
public void setFadadaTemplateId(String fadadaTemplateId) {
this.fadadaTemplateId = fadadaTemplateId;
}
/**
* 获取序号
*
* @return serial_number - 序号
*/
public Integer getSerialNumber() {
return serialNumber;
}
/**
* 设置序号
*
* @param serialNumber 序号
*/
public void setSerialNumber(Integer serialNumber) {
this.serialNumber = serialNumber;
}
/**
* 获取创建时间
*
* @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;
}
}

View File

@@ -86,4 +86,102 @@ public class SignFranchiseDO {
//是否统管 1-统管0-不统管',
@Column(name = "unified_management")
private Integer unifiedManagement;
/**
* 信息是否一致 财务使用
*/
@Column(name = "info_consistency_flag")
private Integer infoConsistencyFlag;
/**
* 不一致原因
*/
@Column(name = "reason")
private String reason;
@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;
@Column(name = "create_user_id")
private String createUserId;
@Column(name = "update_user_id")
private String updateUserId;
@Column(name = "currency")
private String currency;
@Column(name = "contract_service_life")
private Integer contractServiceLife;
}

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;
@@ -148,6 +149,91 @@ public class AddSignFranchiseRequest {
@ApiModelProperty("是否统管 1-统管0-不统管")
private Integer unifiedManagement;
@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;
@ApiModelProperty("币种")
private String currency;
@ApiModelProperty("合同使用年限")
private Integer contractServiceLife;
public SignFranchiseDO toSignFranchiseDO() {
@@ -161,6 +247,7 @@ public class AddSignFranchiseRequest {
signFranchiseDO.setContractStartTime(this.contractStartTime);
signFranchiseDO.setContractEndTime(this.contractStartEndTime);
signFranchiseDO.setImpressionNum(this.impressionNum);
signFranchiseDO.setOldShopCode(this.oldShopCode);
// signFranchiseDO.setBusinessStartHours(setMill(this.businessStartHours));
// signFranchiseDO.setBusinessEndHours(setMill(this.businessEndHours));
// signFranchiseDO.setIrregularReason(this.irregularReason);
@@ -180,6 +267,20 @@ 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);
signFranchiseDO.setCurrency(this.currency);
signFranchiseDO.setContractServiceLife(this.contractServiceLife);
return signFranchiseDO;
}

View File

@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Column;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
@@ -46,7 +47,7 @@ public class AddSignFranchiseResponse {
private Date contractStartTime;
@ApiModelProperty("合同结束日期")
private Date contractStartEndTime;
private Date contractEndTime;
@ApiModelProperty("用印次数")
private String impressionNum;
@@ -240,10 +241,95 @@ public class AddSignFranchiseResponse {
@ApiModelProperty("是否统管 1-统管0-不统管")
private Integer unifiedManagement;
@ApiModelProperty("信息是否一致")
private Integer infoConsistencyFlag;
@ApiModelProperty("不一致原因")
private String reason;
@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 cashierFee;
/**
* 签约形式
*/
@ApiModelProperty("签约形式")
private String signModality;
/**
* 加盟费频率
*/
@ApiModelProperty("加盟费频率")
private Integer franchiseFeeFrequency;
/**
* 品牌使用费频率
*/
@ApiModelProperty("品牌使用费频率")
private Integer brandUseFeeFrequency;
/**
* 管理费频率
*/
@ApiModelProperty("管理费频率")
private Integer manageFeeFrequency;
/**
* 加盟费折扣金额
*/
@ApiModelProperty("加盟费折扣金额")
private String discountAmount;
@ApiModelProperty("收银费(系统费)大写")
private String bigCashierFee;
@Column(name = "currency")
private String currency;
@Column(name = "contract_service_life")
private Integer contractServiceLife;
}