Merge #8 into master from cc_20250922_closeStore_w

闭店

* cc_20250922_closeStore_w: (44 commits squashed)

  - feat:闭店流程init

  - feat:闭店流程接口

  - feat:闭店

  - Merge branch 'refs/heads/master' into cc_20250922_closeStore_w

  - fix:闭店材料模块

  - fix:账号关闭流程

  - feat:闭店审批流程(未测);字典表

  - fix:闭店审批流程完善

  - Merge branch 'master' into cc_20250922_closeStore_w

  - fix:闭店流程流转补充

  - feat:闭店退款

  - fix:字典表接口

  - Merge branch 'master' into cc_20250922_closeStore_w

  - fix:闭店原因接口新增闭店发起方式字段

  - fix:修改审批记录返回数据类型
    feat:新增退款流程跳过

  - fix

  - fix:新增字段

  - feat:新增闭店退款提交人列表接口

  - fix:闭店初始化数据来源修改;小程序闭店材料详情新增模板url字段

  - fix:新增接口返回字段

  - fix:闭店管理、审批待办类别所属品牌筛选改为多选

  - fix:闭店管理列表新增完成阶段数量字段

  - feat:新增第三方闭店申请接口

  - Merge branch 'refs/heads/master' into cc_20250922_closeStore_w
    
    # Conflicts:
    #	coolstore-partner-common/src/main/java/com/cool/store/constants/CommonConstants.java
    #	coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java
    #	coolstore-partner-common/src/main/java/com/cool/store/utils/BeanUtil.java
    #	coolstore-partner-dao/src/main/java/com/cool/store/dao/StoreDao.java
    #	coolstore-partner-dao/src/main/java/com/cool/store/mapper/StoreMapper.java
    #	coolstore-partner-dao/src/main/resources/mapper/StoreMapper.xml

  - fix:自动发起闭店申请定时任务

  - feat:火码账号关闭

  - fix:闭店流程修改

  - Merge branch 'master' into cc_20250922_closeStore_w
    
    # Conflicts:
    #	coolstore-partner-common/src/main/java/com/cool/store/constants/RedisConstant.java
    #	coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java
    #	coolstore-partner-web/src/main/java/com/cool/store/controller/webb/OpenApiController.java

  - fix:删除云流水发起闭店接口

  - fix:取消闭店申请入参修改

  - fix:闭店申请列表赋值异常问题

  - fix:闭店审批通过异常

  - fix:普通方法参数校验

  - fix:账号关闭时校验阶段状态

  - fix:初始化

  - fix:字段新增

  - fix:接口补充

  - fix

  - Merge branch 'refs/heads/master' into cc_20250922_closeStore_w
    
    # Conflicts:
    #	coolstore-partner-common/src/main/java/com/cool/store/constants/RedisConstant.java
    #	coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java
    #	coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqGroupEnum.java
    #	coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqTagEnum.java
    #	coolstore-partner-web/src/main/java/com/cool/store/controller/webb/OpenApiController.java
    #	coolstore-partner-web/src/main/java/com/cool/store/controller/webc/TestController.java

  - Merge branch 'refs/heads/master' into cc_20250922_closeStore_w
    
    # Conflicts:
    #	coolstore-partner-common/src/main/java/com/cool/store/common/InsertGroup.java
    #	coolstore-partner-common/src/main/java/com/cool/store/common/UpdateGroup.java
    #	coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java
    #	coolstore-partner-dao/src/main/java/com/cool/store/dao/StoreDao.java
    #	coolstore-partner-dao/src/main/java/com/cool/store/dao/dict/SysDictColumnDAO.java
    #	coolstore-partner-dao/src/main/java/com/cool/store/mapper/StoreMapper.java
    #	coolstore-partner-dao/src/main/java/com/cool/store/mapper/dict/SysDictColumnMapper.java
    #	coolstore-partner-dao/src/main/resources/mapper/StoreMapper.xml
    #	coolstore-partner-dao/src/main/resources/mapper/dict/SysDictColumnMapper.xml
    #	coolstore-partner-web/src/main/java/com/cool/store/controller/webb/DictManagerController.java
    #	coolstore-partner-web/src/main/java/com/cool/store/job/XxlJobHandler.java

  - fix:闭店流程修改

  - fix:闭店流程修改

  - fix:修改三方付款状态接口

  - fix:闭店申请测试接口

Signed-off-by: 王非凡 <accounts_67eba0c5fee9c49c80c8e2b4@mail.teambition.com>
Reviewed-by: 苏竹红 <accounts_68551bf01395375227aee211@mail.teambition.com>
Merged-by: 苏竹红 <accounts_68551bf01395375227aee211@mail.teambition.com>

CR-link: https://codeup.aliyun.com/692ea314dec569489f6f167c/hangzhou/java/custom_zxjp/change/8
This commit is contained in:
王非凡
2025-12-09 08:55:47 +00:00
committed by 苏竹红
parent 1b0fb1b034
commit 4be2276287
142 changed files with 8144 additions and 20 deletions

View File

@@ -0,0 +1,34 @@
package com.cool.store.dto.close;
import lombok.Data;
/**
* <p>
* 每刻用户信息DTO
* </p>
*
* @author wangff
* @since 2025/11/28
*/
@Data
public class CloseStoreMkUserDTO {
/**
* 名称
*/
private String name;
/**
* 工号
*/
private String jobnumber;
/**
* 部门编码
*/
private String depCode;
/**
* 部门名称
*/
private String depName;
}

View File

@@ -0,0 +1,30 @@
package com.cool.store.dto.store;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* <p>
* 门店主数据下发DTO
* </p>
*
* @author wangff
* @since 2025/10/10
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class StoreMasterIssueDTO {
/**
* 企业id
*/
private String enterpriseId;
/**
* 门店id列表
*/
private List<String> storeIds;
}

View File

@@ -0,0 +1,23 @@
package com.cool.store.dto.xgj;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* <p>
* 新管家支行DTO
* </p>
*
* @author wangff
* @since 2025/12/1
*/
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class XgjBranchBankDTO {
@ApiModelProperty("银行名称")
private String matchBankName;
@ApiModelProperty("支行号")
private String basBankNo;
}

View File

@@ -0,0 +1,32 @@
package com.cool.store.dto.xgj;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* <p>
* 新管家供应商账户信息DTO
* </p>
*
* @author wangff
* @since 2025/11/28
*/
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class XgjPartnerAccountDTO {
@ApiModelProperty("账户名称")
private String accountName;
@ApiModelProperty("银行账号")
private String accountNumber;
@ApiModelProperty("开户银行")
private String bankName;
@ApiModelProperty("开户支行号")
private String bankBranchNo;
@ApiModelProperty("账户类型")
private String accountType;
}

View File

@@ -0,0 +1,43 @@
package com.cool.store.dto.xgj;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* <p>
* 新管家供应商DTO
* </p>
*
* @author wangff
* @since 2025/11/28
*/
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class XgjPartnerDTO {
@ApiModelProperty("父节点名称")
private String parentName;
@ApiModelProperty("父节点编码")
private String parentBizCode;
@ApiModelProperty("往来单位名称")
private String name;
@ApiModelProperty("往来单位英文名")
private String nameEN;
@ApiModelProperty("往来单位编码")
private String businessCode;
@ApiModelProperty("往来单位关系")
private List<String> partnerType;
@ApiModelProperty("往来单位性质")
private List<String> partnerProperty;
@ApiModelProperty("账户信息")
private List<XgjPartnerAccountDTO> accounts;
}

View File

@@ -0,0 +1,25 @@
package com.cool.store.dto.xgj;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* <p>
* 新管家分页DTO
* </p>
*
* @author wangff
* @since 2025/11/28
*/
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class XgjPartnerPageDTO {
@ApiModelProperty("是否有下一页")
private Boolean hasNextPage;
@ApiModelProperty("列表")
private List<XgjPartnerDTO> dataList;
}

View File

@@ -0,0 +1,31 @@
package com.cool.store.dto.xgj;
import com.cool.store.enums.close.XgjRefundPayStatusEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* <p>
* 信管家支付结果DTO
* </p>
*
* @author wangff
* @since 2025/12/3
*/
@Data
public class XgjPayResultDTO {
/**
* {@link XgjRefundPayStatusEnum#getStatus()}
*/
@ApiModelProperty("支付状态")
private String status;
@ApiModelProperty("msg")
private String message;
@ApiModelProperty("每刻订单号")
private String outNo;
@ApiModelProperty("支付成功时间yyyy-MM-dd HH:mm:ss")
private String paySuccessTime;
}

View File

@@ -0,0 +1,33 @@
package com.cool.store.dto.xgj;
import com.cool.store.enums.close.XgjRefundPayStatusEnum;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* <p>
* 新管家单据支付结果DTO
* </p>
*
* @author wangff
* @since 2025/11/28
*/
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class XgjPaymentDTO {
@ApiModelProperty("每刻单号")
private String outNo;
@ApiModelProperty("新管家单号")
private String orderNo;
/**
* {@link XgjRefundPayStatusEnum#getStatus()}
*/
@ApiModelProperty("支付状态")
private String status;
@ApiModelProperty("反馈信息")
private String message;
}

View File

@@ -0,0 +1,70 @@
package com.cool.store.entity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
import javax.persistence.*;
@Table(name = "zxjp_close_store_account_info")
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class CloseStoreAccountInfoDO {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
/**
* 闭店申请ID
*/
@Column(name = "close_store_id")
private Long closeStoreId;
/**
* 系统名称
*/
@Column(name = "system_name")
private String systemName;
/**
* 系统code
*/
@Column(name = "system_code")
private String systemCode;
/**
* 账号分类0-IT账号1-外卖账号
*/
@Column(name = "account_type")
private Integer accountType;
/**
* 状态1-使用中, 2-已关闭, 3-关闭中
*/
@Column(name = "status")
private Integer status;
/**
* 关闭类型0直接关闭1申请关闭
*/
@Column(name = "close_type")
private Integer closeType;
/**
* 创建时间
*/
@Column(name = "create_time")
private Date createTime;
/**
* 更新时间
*/
@Column(name = "update_time")
private Date updateTime;
}

View File

@@ -0,0 +1,92 @@
package com.cool.store.entity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
import javax.persistence.*;
@Table(name = "zxjp_close_store_audit_record")
@Data@Builder
@NoArgsConstructor
@AllArgsConstructor
public class CloseStoreAuditRecordDO {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
/**
* 闭店申请ID
*/
@Column(name = "close_store_id")
private Long closeStoreId;
/**
* 记录类型1-申请提交2-审批操作
*/
@Column(name = "record_type")
private Integer recordType;
/**
* 备注
*/
@Column(name = "action_remark")
private String actionRemark;
/**
* 实际处理人
*/
@Column(name = "handler_user_id")
private String handlerUserId;
/**
* 实际处理人名称
*/
@Column(name = "handler_user_name")
private String handlerUserName;
/**
* 处理人集合
*/
@Column(name = "handler_user_ids")
private String handlerUserIds;
/**
* 收到任务时间
*/
@Column(name = "receive_task_time")
private Date receiveTaskTime;
/**
* 完成任务时间
*/
@Column(name = "finish_task_time")
private Date finishTaskTime;
/**
* 审核状态 0待处理,1通过,2拒绝
*/
@Column(name = "audit_status")
private Integer auditStatus;
/**
* 删除标识
*/
private Integer deleted;
/**
* 创建时间
*/
@Column(name = "create_time")
private Date createTime;
/**
* 更新时间
*/
@Column(name = "updated_time")
private Date updatedTime;
}

View File

@@ -0,0 +1,115 @@
package com.cool.store.entity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
import javax.persistence.*;
/**
* <p>
* 闭店资料详情
* </p>
*
* @author wangff
* @since 2025/10/7
*/
@Table(name = "zxjp_close_store_file_detail")
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class CloseStoreFileDetailDO {
/**
* id
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
/**
* 闭店申请ID
*/
@Column(name = "close_store_id")
private Long closeStoreId;
/**
* 审批完成状态
*/
@Column(name = "approve_complete")
private Integer approveComplete;
/**
* 邮件单号
*/
@Column(name = "mail_number")
private String mailNumber;
/**
* 邮件状态0未邮寄1已邮寄
*/
@Column(name = "mail_status")
private Integer mailStatus;
/**
* 快递公司
*/
@Column(name = "mail_company")
private String mailCompany;
/**
* 材料邮寄地址
*/
@Column(name = "mail_address")
private String mailAddress;
/**
* 收件人
*/
@Column(name = "mail_addressee")
private String mailAddressee;
/**
* 收件人手机号
*/
@Column(name = "mail_mobile")
private String mailMobile;
/**
* 户名
*/
@Column(name = "bank_account")
private String bankAccount;
/**
* 开户行
*/
@Column(name = "bank_opening")
private String bankOpening;
/**
* 退款账号
*/
@Column(name = "refund_account")
private String refundAccount;
/**
* 创建时间
*/
@Column(name = "create_time")
private Date createTime;
/**
* 更新时间
*/
@Column(name = "update_time")
private Date updateTime;
/**
* 督导审批意见
*/
@Column(name = "remark")
private String remark;
}

View File

@@ -0,0 +1,80 @@
package com.cool.store.entity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
import javax.persistence.*;
@Table(name = "zxjp_close_store_file_info")
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class CloseStoreFileInfoDO {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
/**
* 闭店申请ID
*/
@Column(name = "close_store_id")
private Long closeStoreId;
/**
* 资料code
*/
@Column(name = "file_code")
private String fileCode;
/**
* 资料名称
*/
@Column(name = "file_name")
private String fileName;
/**
* 邮件状态
*/
@Column(name = "mail_status")
private Integer mailStatus;
/**
* 材料审批状态 1-合格 2-不合格
*/
@Column(name = "approve_status")
private Integer approveStatus;
/**
* 材料状态 0-未上传 1-合格 2-不合格 3-已上传 4-审批中 5-已修改
*/
@Column(name = "file_status")
private Integer fileStatus;
/**
* 审批意见
*/
@Column(name = "approve_opinion")
private String approveOpinion;
/**
* 创建时间
*/
@Column(name = "create_time")
private Date createTime;
/**
* 更新时间
*/
@Column(name = "update_time")
private Date updateTime;
/**
* 图片列表
*/
@Column(name = "urls")
private String urls;
}

View File

@@ -0,0 +1,98 @@
package com.cool.store.entity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
import javax.persistence.*;
@Table(name = "zxjp_close_store_info")
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class CloseStoreInfoDO {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
/**
* 闭店申请单号
*/
@Column(name = "close_store_no")
private String closeStoreNo;
/**
* 门店ID
*/
@Column(name = "store_id")
private String storeId;
/**
* 区域ID
*/
@Column(name = "region_id")
private Long regionId;
/**
* 计划闭店日期
*/
@Column(name = "plan_close_data")
private Date planCloseData;
/**
* 实际闭店日期
*/
@Column(name = "actual_close_data")
private Date actualCloseData;
/**
* 闭店发起方式 1-主动发起 2-云流水发起
*/
@Column(name = "close_type")
private Integer closeType;
/**
* 闭店原因
*/
@Column(name = "close_reason")
private Integer closeReason;
/**
* 闭店原因说明
*/
@Column(name = "reason_description")
private String reasonDescription;
/**
* 闭店状态 1-审批中 5-审核未通过 10-进行中 15已完成 20-已取消
*/
@Column(name = "close_status")
private Integer closeStatus;
/**
* 督导
*/
@Column(name = "supervisor_user_id")
private String supervisorUserId;
/**
* 创建时间
*/
@Column(name = "create_time")
private Date createTime;
/**
* 更新时间
*/
@Column(name = "update_time")
private Date updateTime;
/**
* 发起人id
*/
@Column(name = "apply_user_id")
private String applyUserId;
}

View File

@@ -0,0 +1,190 @@
package com.cool.store.entity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.*;
@Table(name = "zxjp_close_store_refund_info")
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class CloseStoreRefundInfoDO {
/**
* id
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
/**
* 闭店申请id
*/
@Column(name = "close_store_id")
private Long closeStoreId;
/**
* 退款申请单号
*/
@Column(name = "refund_no")
private String refundNo;
/**
* 退款类型(闭店子阶段code)
*/
private Integer type;
/**
* 退款状态
*/
@Column(name = "refund_status")
private String refundStatus;
/**
* 每刻退款单号
*/
@Column(name = "refund_order_no")
private String refundOrderNo;
/**
* 退款时间
*/
@Column(name = "refund_time")
private Date refundTime;
/**
* 公司抬头
*/
@Column(name = "invoice_title")
private String invoiceTitle;
/**
* 提交人id
*/
@Column(name = "submitter_id")
private String submitterId;
/**
* 提交人名称
*/
@Column(name = "submitter_name")
private String submitterName;
/**
* 退款事由
*/
@Column(name = "refund_reason")
private String refundReason;
/**
* 退款类型,加盟部/加盟公司等
*/
@Column(name = "refund_type")
private String refundType;
/**
* 退款项目,加盟关店设备退款/加盟关店费用等
*/
@Column(name = "refund_project")
private String refundProject;
/**
* 其他说明
*/
private String remark;
/**
* 退款加盟商编码
*/
@Column(name = "business_code")
private String businessCode;
/**
* 退款加盟商名称
*/
@Column(name = "business_name")
private String businessName;
/**
* 退款加盟商收款账户
*/
@Column(name = "business_account")
private String businessAccount;
/**
* 费用类型code
*/
@Column(name = "expense_type_code")
private String expenseTypeCode;
/**
* 费用申请日期
*/
@Column(name = "expense_apply_time")
private Date expenseApplyTime;
/**
* 应退金额
*/
@Column(name = "expected_amount")
private BigDecimal expectedAmount;
/**
* 实退金额
*/
@Column(name = "actual_amount")
private BigDecimal actualAmount;
/**
* 扣款金额
*/
@Column(name = "deduct_amount")
private BigDecimal deductAmount;
/**
* 扣款原因
*/
@Column(name = "deduct_reason")
private String deductReason;
/**
* 闭店原因
*/
@Column(name = "close_reason")
private Integer closeReason;
/**
* 创建时间
*/
@Column(name = "create_time")
private Date createTime;
/**
* 更新时间
*/
@Column(name = "update_time")
private Date updateTime;
/**
* 银行账户
*/
@Column(name = "account_number")
private String accountNumber;
/**
* 开户行
*/
@Column(name = "bank_name")
private String bankName;
/**
* 联行号
*/
@Column(name = "bank_branch_no")
private String bankBranchNo;
}

View File

@@ -0,0 +1,92 @@
package com.cool.store.entity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
import javax.persistence.*;
@Table(name = "zxjp_close_store_stage_info")
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class CloseStoreStageInfoDO {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
/**
* 闭店申请ID
*/
@Column(name = "close_store_id")
private Long closeStoreId;
/**
* 闭店阶段
*/
@Column(name = "shop_stage")
private Integer shopStage;
/**
* 闭店子阶段
*/
@Column(name = "shop_sub_stage")
private Integer shopSubStage;
/**
* 店铺阶段状态
*/
@Column(name = "shop_sub_stage_status")
private Integer shopSubStageStatus;
/**
* 当前阶段是否结束 0未结束 1已结束
*/
@Column(name = "is_terminated")
private Integer isTerminated;
/**
* 预估完成时间
*/
@Column(name = "plan_complete_time")
private String planCompleteTime;
/**
* 实际完成时间
*/
@Column(name = "actual_complete_time")
private String actualCompleteTime;
/**
* 备注
*/
private String remark;
/**
* xfsg_shop_audit_info.id
*/
@Column(name = "audit_id")
private Long auditId;
/**
* 删除标识
*/
private Integer deleted;
/**
* 创建时间
*/
@Column(name = "create_time")
private Date createTime;
/**
* 更新时间
*/
@Column(name = "update_time")
private Date updateTime;
}

View File

@@ -18,6 +18,7 @@ import lombok.NoArgsConstructor;
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "store_master_signer_info_${enterpriseId}")
public class StoreMasterSignerInfoDO implements Serializable {
@ApiModelProperty("主键")
private Long id;

View File

@@ -0,0 +1,42 @@
package com.cool.store.request.close.file;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* <p>
* 闭店材料审批Request
* </p>
*
* @author wangff
* @since 2025/10/7
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class CloseStoreFileApproveRequest {
@ApiModelProperty(value = "闭店申请id", required = true)
@NotNull(message = "闭店申请id不能为空")
private Long closeStoreId;
@ApiModelProperty("材料信息列表")
@NotEmpty(message = "材料信息列表不能为空")
private List<CloseStoreFileInfoRequest> fileList;
@ApiModelProperty("户名")
private String bankAccount;
@ApiModelProperty("开户行")
private String bankOpening;
@ApiModelProperty("退款账号")
private String refundAccount;
}

View File

@@ -0,0 +1,28 @@
package com.cool.store.request.close.file;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* <p>
* 闭店审批Request
* </p>
*
* @author wangff
* @since 2025/11/26
*/
@Data
public class CloseStoreFileAuditRequest {
@ApiModelProperty("闭店申请id")
@NotNull(message = "闭店申请id不能为空")
private Long closeStoreId;
@ApiModelProperty("审批状态 1通过 2拒绝")
@NotNull(message = "审批状态不能为空")
private Integer status;
@ApiModelProperty("审批意见")
private String remark;
}

View File

@@ -0,0 +1,46 @@
package com.cool.store.request.close.file;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* <p>
* 闭店材料信息Request
* </p>
*
* @author wangff
* @since 2025/10/7
*/
@Data
public class CloseStoreFileInfoRequest {
@ApiModelProperty("闭店申请id")
@NotNull(message = "闭店申请id不能为空")
private Long closeStoreId;
@ApiModelProperty("闭店材料id")
@NotNull(message = "闭店材料id不能为空")
private Long id;
@ApiModelProperty("邮件状态 0-未邮寄 1已邮寄")
private Integer mailStatus;
@ApiModelProperty("材料审批状态 1-合格 2-不合格")
private Integer approveStatus;
@ApiModelProperty("审批意见")
private String approveOpinion;
@ApiModelProperty("图片列表")
private String urls;
@ApiModelProperty("户名")
private String bankAccount;
@ApiModelProperty("开户行")
private String bankOpening;
@ApiModelProperty("退款账号")
private String refundAccount;
}

View File

@@ -0,0 +1,28 @@
package com.cool.store.request.close.file;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* <p>
* 闭店材料提交Request
* </p>
*
* @author wangff
* @since 2025/11/26
*/
@Data
public class CloseStoreFileSubmitRequest {
@ApiModelProperty("闭店申请id")
@NotNull(message = "闭店申请id不能为空")
private Long closeStoreId;
@ApiModelProperty("闭店材料id")
@NotNull(message = "闭店材料id不能为空")
private Long id;
@ApiModelProperty("图片列表,逗号隔开")
private String urls;
}

View File

@@ -0,0 +1,30 @@
package com.cool.store.request.close.file;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* <p>
* 闭店资料邮寄地址信息Request
* </p>
*
* @author wangff
* @since 2025/10/7
*/
@Data
public class CloseStoreMailAddressRequest {
@ApiModelProperty(value = "闭店申请ID", required = true)
@NotNull(message = "闭店申请ID不能为空")
private Long closeStoreId;
@ApiModelProperty("材料邮寄地址")
private String mailAddress;
@ApiModelProperty("收件人")
private String mailAddressee;
@ApiModelProperty("收件人手机号")
private String mailMobile;
}

View File

@@ -0,0 +1,29 @@
package com.cool.store.request.close.file;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* <p>
* 闭店资料邮寄信息Request
* </p>
*
* @author wangff
* @since 2025/10/7
*/
@Data
public class CloseStoreMailInfoRequest {
@ApiModelProperty(value = "闭店申请ID", required = true)
@NotNull(message = "闭店申请ID不能为空")
private Long closeStoreId;
@ApiModelProperty(value = "邮件单号", required = true)
@NotBlank(message = "邮件单号不能为空")
private String mailNumber;
@ApiModelProperty("快递公司")
private String mailCompany;
}

View File

@@ -0,0 +1,141 @@
package com.cool.store.request.close.refund;
import com.cool.store.dto.close.CloseStoreMkUserDTO;
import com.cool.store.entity.CloseStoreRefundInfoDO;
import com.cool.store.entity.StoreDO;
import com.cool.store.enums.master.StoreCloseReasonEnum;
import com.cool.store.request.xgj.XgjReimburseFeeRequest;
import com.cool.store.request.xgj.XgjReimburseRequest;
import com.cool.store.utils.CoolDateUtils;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import java.math.BigDecimal;
import java.util.Collections;
import java.util.Date;
/**
* <p>
* 闭店退款新增Request
* </p>
*
* @author wangff
* @since 2025/10/13
*/
@Data
public class CloseStoreRefundAddRequest {
@ApiModelProperty("闭店申请id")
@NotNull(message = "闭店申请id不能为空")
private Long closeStoreId;
@ApiModelProperty("退款类型")
@NotNull(message = "退款类型不能为空")
private Integer type;
@ApiModelProperty("公司抬头字典表close_store_invoice_title")
@NotBlank(message = "公司抬头")
private String invoiceTitle;
@ApiModelProperty("提交人每刻工号")
private String submitterId;
@ApiModelProperty("提交人名称")
private String submitterName;
@ApiModelProperty("退款事由")
@NotBlank(message = "退款事由")
private String refundReason;
@ApiModelProperty("退款类型字典表编码close_store_refund_type")
@NotBlank(message = "退款类型不能为空")
private String refundType;
@ApiModelProperty("其他说明")
private String remark;
@ApiModelProperty("退款加盟商编码")
@NotBlank(message = "退款加盟商编码不能为空")
private String businessCode;
@ApiModelProperty("退款加盟商名称")
@NotBlank(message = "退款加盟商名称不能为空")
private String businessName;
@ApiModelProperty("退款加盟商收款账户")
@NotBlank(message = "退款加盟商收款账户不能为空")
private String businessAccount;
@ApiModelProperty("退款项目type=30固定为'加盟关店费用'type=40固定为'加盟关店贷款退款'")
@NotBlank(message = "退款项目不能为空")
private String refundProject;
@ApiModelProperty("费用申请日期")
@NotNull(message = "费用申请日期不能为空")
private Date expenseApplyTime;
@ApiModelProperty("费用类型code测试环境目前写死'04.006'")
@NotBlank(message = "费用类型code不能为空")
private String expenseTypeCode;
@ApiModelProperty("应退金额")
@NotNull(message = "应退金额不能为空")
private BigDecimal expectedAmount;
@ApiModelProperty("实退金额")
@NotNull(message = "实退金额不能为空")
private BigDecimal actualAmount;
@ApiModelProperty("扣款金额")
@NotNull(message = "扣款金额不能为空")
private BigDecimal deductAmount;
@ApiModelProperty("扣款原因")
private String deductReason;
@ApiModelProperty("银行账户")
@NotBlank(message = "银行账户不能为空")
private String accountNumber;
@ApiModelProperty("开户行")
@NotBlank(message = "开户行不能为空")
private String bankName;
@ApiModelProperty("联行号")
@NotBlank(message = "联行号不能为空")
private String bankBranchNo;
public XgjReimburseRequest convertToXgjRequest(CloseStoreMkUserDTO mkUserDTO, Integer closeReason, StoreDO storeDO) {
StoreCloseReasonEnum closeReasonEnum = StoreCloseReasonEnum.getByCode(closeReason);
return XgjReimburseRequest.builder()
.legalEntity(invoiceTitle)
.coverUser(mkUserDTO.getJobnumber())
.reimburseName(refundReason)
.cf175(refundType)
.cf176(refundProject)
.cf333(closeReasonEnum.getCloseNature().getDesc())
.cf334(closeReasonEnum.getDesc())
.cf177(storeDO.getStoreNum())
.cf178(storeDO.getStoreName())
.comments(remark)
.tradingPartner(businessCode)
.cf242("375|其他合法收入——资金退还")
.cf243("")
.bankAcctNumber(accountNumber)
.bankName(bankName)
.accountType("BANK")
.bankBranchNo(bankBranchNo)
.expenseList(Collections.singletonList(
XgjReimburseFeeRequest.builder()
.expenseTypeCode(expenseTypeCode)
.consumeAmount(expectedAmount)
.refundAmount(actualAmount)
.deductionAmount(deductAmount)
.consumeTime(CoolDateUtils.DateFormat(expenseApplyTime, "yyyy-MM-dd HH:mm:ss"))
.build()
))
.build();
}
}

View File

@@ -0,0 +1,26 @@
package com.cool.store.request.close.refund;
import com.cool.store.common.PageBasicInfo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* <p>
* 闭店退款查询Request
* </p>
*
* @author wangff
* @since 2025/12/2
*/
@Data
public class CloseStoreRefundQueryRequest extends PageBasicInfo {
@ApiModelProperty("闭店申请id")
@NotNull(message = "闭店申请id不能为空")
private Long closeStoreId;
@ApiModelProperty("退款类型30/40")
@NotNull(message = "退款类型不能为空")
private Integer type;
}

View File

@@ -0,0 +1,21 @@
package com.cool.store.request.close.refund;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* <p>
* 退款流程跳过Request
* </p>
*
* @author wangff
* @since 2025/12/3
*/
@Data
public class CloseStoreRefundSkipRequest {
@ApiModelProperty("闭店申请id")
private Long closeStoreId;
@ApiModelProperty("退款类型30/40")
private Integer type;
}

View File

@@ -0,0 +1,100 @@
package com.cool.store.request.close.refund;
import com.cool.store.dto.close.CloseStoreMkUserDTO;
import com.cool.store.entity.CloseStoreRefundInfoDO;
import com.cool.store.entity.StoreDO;
import com.cool.store.enums.master.StoreCloseReasonEnum;
import com.cool.store.request.xgj.XgjReimburseFeeRequest;
import com.cool.store.request.xgj.XgjReimburseRequest;
import com.cool.store.utils.CoolDateUtils;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Collections;
import java.util.Date;
/**
* <p>
* 闭店退款更新Request
* </p>
*
* @author wangff
* @since 2025/10/13
*/
@Data
public class CloseStoreRefundUpdateRequest {
@ApiModelProperty("退款记录id")
@NotNull(message = "退款记录id不能为空")
private Long id;
@ApiModelProperty("闭店申请id")
@NotNull(message = "闭店申请id不能为空")
private Long closeStoreId;
@ApiModelProperty("公司抬头字典表close_store_invoice_title")
@NotBlank(message = "公司抬头")
private String invoiceTitle;
@ApiModelProperty("提交人每刻工号")
private String submitterId;
@ApiModelProperty("提交人名称")
private String submitterName;
@ApiModelProperty("退款事由")
@NotBlank(message = "退款事由")
private String refundReason;
@ApiModelProperty("退款类型字典表编码close_store_refund_type")
@NotBlank(message = "退款类型不能为空")
private String refundType;
@ApiModelProperty("其他说明")
private String remark;
@ApiModelProperty("退款加盟商编码")
@NotBlank(message = "退款加盟商编码不能为空")
private String businessCode;
@ApiModelProperty("退款加盟商名称")
@NotBlank(message = "退款加盟商名称不能为空")
private String businessName;
@ApiModelProperty("费用申请日期")
@NotNull(message = "费用申请日期不能为空")
private Date expenseApplyTime;
@ApiModelProperty("费用类型code测试环境目前写死'04.006'")
@NotBlank(message = "费用类型code不能为空")
private String expenseTypeCode;
@ApiModelProperty("应退金额")
@NotNull(message = "应退金额不能为空")
private BigDecimal expectedAmount;
@ApiModelProperty("实退金额")
@NotNull(message = "实退金额不能为空")
private BigDecimal actualAmount;
@ApiModelProperty("扣款金额")
@NotNull(message = "扣款金额不能为空")
private BigDecimal deductAmount;
@ApiModelProperty("扣款原因")
private String deductReason;
@ApiModelProperty("银行账户")
@NotBlank(message = "银行账户不能为空")
private String accountNumber;
@ApiModelProperty("开户行")
@NotBlank(message = "开户行不能为空")
private String bankName;
@ApiModelProperty("联行号")
@NotBlank(message = "联行号不能为空")
private String bankBranchNo;
}

View File

@@ -0,0 +1,42 @@
package com.cool.store.request.close.store;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
/**
* @Author suzhuhong
* @Date 2025/9/23 15:57
* @Version 1.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class CloseStoreApplyRequest {
@ApiModelProperty("计划关店时间")
@NotNull(message = "计划关店时间不能为空")
private Date planCloseDate;
@ApiModelProperty("关店原因")
@NotNull(message = "闭店原因不能为空")
private Integer closeReason;
@ApiModelProperty("闭店原因说明")
private String reasonDescription;
@ApiModelProperty(value = "闭店发起方式", hidden = true)
private Integer closeType;
@ApiModelProperty("门店id")
@NotBlank(message = "门店id不能为空")
private String storeId;
}

View File

@@ -0,0 +1,31 @@
package com.cool.store.request.close.store;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.Date;
/**
* <p>
* 闭店申请审批Request
* </p>
*
* @author wangff
* @since 2025/10/8
*/
@Data
public class CloseStoreAuditRequest {
@ApiModelProperty("审批记录id")
@NotNull(message = "审批记录id不能为空")
private Long auditRecordId;
@ApiModelProperty("审批意见")
private String remark;
@ApiModelProperty("正式闭店时间")
private Date actualCloseData;
@ApiModelProperty("闭店原因")
private Integer closeReason;
}

View File

@@ -0,0 +1,21 @@
package com.cool.store.request.close.store;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* <p>
* 取消闭店申请Request
* </p>
*
* @author wangff
* @since 2025/11/13
*/
@Data
public class CloseStoreCancelRequest {
@ApiModelProperty("闭店申请id")
@NotNull(message = "闭店申请id不能为空")
private Long closeStoreId;
}

View File

@@ -0,0 +1,51 @@
package com.cool.store.request.close.store;
import com.cool.store.common.PageBasicInfo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* <p>
* 闭店申请查询Request
* </p>
*
* @author wangff
* @since 2025/10/9
*/
@Data
public class CloseStoreQueryRequest extends PageBasicInfo {
@ApiModelProperty("审核状态 0待处理,1通过,2拒绝")
private Integer auditStatus;
@ApiModelProperty("门店名称/编号")
private String storeNameOrNum;
@ApiModelProperty("所属品牌,逗号隔开")
private String joinBrandList;
@ApiModelProperty("签约人姓名")
private String signerName;
@ApiModelProperty("签约人电话")
private String signerMobile;
@ApiModelProperty("闭店发起方式 1-主动发起 2-云流水发起")
private Integer closeType;
@ApiModelProperty("闭店状态")
private Integer closeStatus;
@ApiModelProperty("闭店申请单号")
private String closeStoreNo;
@ApiModelProperty(value = "是否查询store表", hidden = true)
private Boolean queryStore = false;
@ApiModelProperty(value = "是否查询signer表", hidden = true)
private Boolean querySigner = false;
@ApiModelProperty(value = "所属品牌列表", hidden = true)
private List<Integer> joinBrands;
}

View File

@@ -0,0 +1,19 @@
package com.cool.store.request.close.store;
import com.cool.store.common.PageBasicInfo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* <p>
* mini闭店申请查询Request
* </p>
*
* @author wangff
* @since 2025/10/9
*/
@Data
public class MiniCloseStoreQueryRequest extends PageBasicInfo {
@ApiModelProperty("门店id")
private String storeId;
}

View File

@@ -0,0 +1,18 @@
package com.cool.store.request.close.store;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2025/9/24 10:18
* @Version 1.0
*/
@Data
public class ReCloseStoreApplyRequest {
@ApiModelProperty("闭店信息ID")
private Long closeStoreId;
}

View File

@@ -0,0 +1,47 @@
package com.cool.store.request.close.store;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
/**
* <p>
* 三方闭店申请Request
* </p>
*
* @author wangff
* @since 2025/10/23
*/
@Data
public class ThirdCloseStoreApplyRequest {
@ApiModelProperty("计划关店时间")
@NotNull(message = "计划关店时间不能为空")
private Date planCloseDate;
@ApiModelProperty("关店原因")
@NotNull(message = "闭店原因不能为空")
private Integer closeReason;
@ApiModelProperty("闭店原因说明")
private String reasonDescription;
@ApiModelProperty("门店编码")
@NotBlank(message = "门店编码不能为空")
private String storeNum;
@ApiModelProperty(value = "闭店发起方式", hidden = true)
private Integer closeType;
public CloseStoreApplyRequest convert(String storeId) {
return CloseStoreApplyRequest.builder()
.planCloseDate(planCloseDate)
.closeReason(closeReason)
.reasonDescription(reasonDescription)
.storeId(storeId)
.closeType(closeType)
.build();
}
}

View File

@@ -0,0 +1,24 @@
package com.cool.store.request.huoma;
import lombok.Data;
/**
* <p>
* 火码账号关闭Request
* </p>
*
* @author wangff
* @since 2025/11/5
*/
@Data
public class AccountCloseRequest {
/**
* 门店编码
*/
private String shop_sn;
/**
* 门店开关 0关店 1开店
*/
private Integer enable;
}

View File

@@ -0,0 +1,25 @@
package com.cool.store.request.xgj;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* <p>
* 新管家账号关闭Request
* </p>
*
* @author wangff
* @since 2025/11/27
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class XgjAccountCloseRequest {
@ApiModelProperty("门店编码")
private String storeCode;
@ApiModelProperty("关店时间yyyy-MM-dd HH:mm:ss")
private String closeTime;
}

View File

@@ -0,0 +1,18 @@
package com.cool.store.request.xgj;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* <p>
* 新管家支行查询Request
* </p>
*
* @author wangff
* @since 2025/12/1
*/
@Data
public class XgjBankQueryRequest {
@ApiModelProperty("支行行名")
private String openBankName;
}

View File

@@ -0,0 +1,30 @@
package com.cool.store.request.xgj;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* <p>
* 新管家供应商账户信息Request
* </p>
*
* @author wangff
* @since 2025/11/28
*/
@Data
public class XgjPartnerAccountRequest {
@ApiModelProperty("账户名称")
private String accountName;
@ApiModelProperty("银行账号")
private String accountNumber;
@ApiModelProperty("开户银行")
private String bankName;
@ApiModelProperty("开户支行号")
private String bankBranchNo;
@ApiModelProperty("账户类型")
private String accountType;
}

View File

@@ -0,0 +1,38 @@
package com.cool.store.request.xgj;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* <p>
* 新管家往来单位查询Request
* </p>
*
* @author wangff
* @since 2025/11/28
*/
@Data
public class XgjPartnerQueryRequest {
@ApiModelProperty("查询开始(创建/更新)时间戳(包含、秒级)")
private Long startTime;
@ApiModelProperty("查询结束时间戳")
private Long endTime;
@ApiModelProperty("分页序号默认为1")
private Integer pageNo;
@ApiModelProperty("分页大小默认50上限150")
private Integer pageSize;
@ApiModelProperty("往来单位编码")
private List<String> bizCodes;
@ApiModelProperty("分类的业务编码")
private String parentBizCode;
@ApiModelProperty("往来单位编码/名字")
private String keyword;
}

View File

@@ -0,0 +1,22 @@
package com.cool.store.request.xgj;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* <p>
* 新管家获取单据支付结果Request
* </p>
*
* @author wangff
* @since 2025/11/28
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class XgjPaymentRequest {
@ApiModelProperty("每刻单号")
private String outNo;
}

View File

@@ -0,0 +1,41 @@
package com.cool.store.request.xgj;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
/**
* <p>
* 新管家报销单费用明细Request
* </p>
*
* @author wangff
* @since 2025/11/28
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class XgjReimburseFeeRequest {
@ApiModelProperty(value = "费用类型编码", required = true)
private String expenseTypeCode;
@ApiModelProperty(value = "应退金额", required = true)
private BigDecimal consumeAmount;
@ApiModelProperty(value = "实退金额", required = true)
private BigDecimal refundAmount;
@ApiModelProperty(value = "扣款金额", required = true)
private BigDecimal deductionAmount;
@ApiModelProperty(value = "消费时间yyyy-MM-dd HH:mm:ss", required = true)
private String consumeTime;
@ApiModelProperty(value = "备注说明", required = false)
private String comments;
}

View File

@@ -0,0 +1,109 @@
package com.cool.store.request.xgj;
import com.alibaba.fastjson.annotation.JSONField;
import com.cool.store.utils.UUIDUtils;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* <p>
* 新管家报销单Request
* </p>
*
* @author wangff
* @since 2025/11/28
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class XgjReimburseRequest {
@ApiModelProperty("公司抬头")
private String legalEntity;
@ApiModelProperty("提交人(编码)")
private String coverUser;
@ApiModelProperty("退款事由")
private String reimburseName;
@ApiModelProperty("退款类型(填提供的中文选项)")
@JsonProperty("CF175")
@JSONField(name = "CF175")
private String cf175;
@ApiModelProperty("退款项目(填提供的中文选项)")
@JsonProperty("CF176")
@JSONField(name = "CF176")
private String cf176;
@ApiModelProperty("关店分类(填提供的中文选项)")
@JsonProperty("CF333")
@JSONField(name = "CF333")
private String cf333;
@ApiModelProperty("关店原因1(填提供的中文选项),管理要求闭店时填写")
@JsonProperty("CF334")
@JSONField(name = "CF334")
private String cf334;
@ApiModelProperty("关店原因2(填提供的中文选项),加盟商自行闭店时填写")
@JsonProperty("CF335")
@JSONField(name = "CF335")
private String cf335;
@ApiModelProperty("门店编码")
@JsonProperty("CF177")
@JSONField(name = "CF177")
private String cf177;
@ApiModelProperty("门店名称")
@JsonProperty("CF178")
@JSONField(name = "CF178")
private String cf178;
@ApiModelProperty("其他说明")
private String comments;
@ApiModelProperty("退款加盟商编码")
private String tradingPartner;
@ApiModelProperty("汇款用途(填提供的中文选项)")
@JsonProperty("CF242")
@JSONField(name = "CF242")
private String cf242;
@ApiModelProperty("汇款备注(填提供的中文选项)")
@JsonProperty("CF243")
@JSONField(name = "CF243")
private String cf243;
@ApiModelProperty("账户名")
private String bankAcctName;
@ApiModelProperty("银行账户")
private String bankAcctNumber;
@ApiModelProperty("开户行")
private String bankName;
@ApiModelProperty("收款账户类型")
private String accountType;
@ApiModelProperty("联行号")
private String bankBranchNo;
@ApiModelProperty("费用明细")
private List<XgjReimburseFeeRequest> expenseList;
public static void main(String[] args) {
System.out.println(UUIDUtils.get32UUID());
}
}

View File

@@ -0,0 +1,40 @@
package com.cool.store.request.xgj;
import com.cool.store.utils.UUIDUtils;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* <p>
* 新管家同步供应商Request
* </p>
*
* @author wangff
* @since 2025/11/28
*/
@Data
public class XgjSavePartnerRequest {
@ApiModelProperty("往来单位名称")
private String name;
@ApiModelProperty("往来单位编码")
private String businessCode;
@ApiModelProperty("所属分类")
private String parentName;
@ApiModelProperty("所属分类编码")
private String parentBizCode;
@ApiModelProperty("往来关系")
private String partnerType;
@ApiModelProperty("往来性质")
private String partnerProperty;
@ApiModelProperty("往来单位账户列表")
private List<XgjPartnerAccountRequest> accounts;
}

View File

@@ -0,0 +1,41 @@
package com.cool.store.vo.close.account;
import com.cool.store.enums.close.CloseStoreAccountTypeEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* <p>
* 闭店账号VO
* </p>
*
* @author wangff
* @since 2025/10/8
*/
@Data
public class CloseStoreAccountVO {
@ApiModelProperty("id")
private Long id;
@ApiModelProperty("账号名称")
private String systemName;
@ApiModelProperty("系统code")
private String systemCode;
@ApiModelProperty("账号分类0-IT账号1-外卖账号")
private Integer accountType;
@ApiModelProperty("账号分类")
private String accountTypeName;
@ApiModelProperty("账号状态1-使用中, 2-已关闭, 3-关闭中")
private Integer status;
@ApiModelProperty("关闭类型0直接关闭1申请关闭")
private Integer closeType;
public String getAccountTypeName() {
return CloseStoreAccountTypeEnum.getMsgByType(accountType);
}
}

View File

@@ -0,0 +1,45 @@
package com.cool.store.vo.close.file;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* <p>
* 小程序闭店资料详情VO
* </p>
*
* @author wangff
* @since 2025/10/7
*/
@Data
public class CloseStoreFileDetailMiniVO {
@ApiModelProperty("闭店申请id")
private Long closeStoreId;
@ApiModelProperty("邮件单号")
private String mailNumber;
@ApiModelProperty("邮件状态0未邮寄1已邮寄")
private Integer mailStatus;
@ApiModelProperty("快递公司")
private String mailCompany;
@ApiModelProperty("材料邮寄地址")
private String mailAddress;
@ApiModelProperty("收件人")
private String mailAddressee;
@ApiModelProperty("收件人手机号")
private String mailMobile;
@ApiModelProperty("材料信息列表")
private List<CloseStoreFileInfoMiniVO> fileList;
@ApiModelProperty("督导审批意见")
private String remark;
}

View File

@@ -0,0 +1,54 @@
package com.cool.store.vo.close.file;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* <p>
* 闭店资料详情VO
* </p>
*
* @author wangff
* @since 2025/10/7
*/
@Data
public class CloseStoreFileDetailVO {
@ApiModelProperty("闭店申请id")
private Long closeStoreId;
@ApiModelProperty("邮件单号")
private String mailNumber;
@ApiModelProperty("邮件状态0未邮寄1已邮寄")
private Integer mailStatus;
@ApiModelProperty("快递公司")
private String mailCompany;
@ApiModelProperty("材料邮寄地址")
private String mailAddress;
@ApiModelProperty("收件人")
private String mailAddressee;
@ApiModelProperty("收件人手机号")
private String mailMobile;
@ApiModelProperty("材料信息列表")
private List<CloseStoreFileInfoVO> fileList;
@ApiModelProperty("户名")
private String bankAccount;
@ApiModelProperty("开户行")
private String bankOpening;
@ApiModelProperty("退款账号")
private String refundAccount;
@ApiModelProperty("督导审批意见")
private String remark;
}

View File

@@ -0,0 +1,47 @@
package com.cool.store.vo.close.file;
import com.cool.store.enums.close.FileStatusEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* <p>
* 小程序闭店材料信息VO
* </p>
*
* @author wangff
* @since 2025/10/7
*/
@Data
public class CloseStoreFileInfoMiniVO {
@ApiModelProperty("id")
private Long id;
@ApiModelProperty("资料code")
private String fileCode;
@ApiModelProperty("资料名称")
private String fileName;
@ApiModelProperty("材料审批状态 1-合格 2-不合格")
private Integer approveStatus;
@ApiModelProperty("材料状态 0-未上传 1-合格 2-不合格 3-已上传 4-审批中 5-已修改")
private Integer fileStatus;
@ApiModelProperty("材料状态")
private String fileStatusName;
@ApiModelProperty("审批意见")
private String approveOpinion;
@ApiModelProperty("模板链接")
private String templateUrl;
@ApiModelProperty("图片列表")
private String urls;
public String getFileStatusName() {
return FileStatusEnum.getDescByStatus(this.fileStatus);
}
}

View File

@@ -0,0 +1,39 @@
package com.cool.store.vo.close.file;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* <p>
* 闭店材料信息VO
* </p>
*
* @author wangff
* @since 2025/10/7
*/
@Data
public class CloseStoreFileInfoVO {
@ApiModelProperty("id")
private Long id;
@ApiModelProperty("资料code")
private String fileCode;
@ApiModelProperty("资料名称")
private String fileName;
@ApiModelProperty("邮件状态 0-未邮寄 1已邮寄")
private Integer mailStatus;
@ApiModelProperty("材料审批状态 1-合格 2-不合格")
private Integer approveStatus;
@ApiModelProperty("材料状态 0-未上传 1-合格 2-不合格 3-已上传 4-审批中 5-已修改")
private Integer fileStatus;
@ApiModelProperty("审批意见")
private String approveOpinion;
@ApiModelProperty("图片列表")
private String urls;
}

View File

@@ -0,0 +1,138 @@
package com.cool.store.vo.close.refund;
import com.cool.store.annotation.DictField;
import com.cool.store.enums.close.RefundPayStatusEnum;
import com.cool.store.enums.master.StoreCloseReasonEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import java.util.Objects;
/**
* <p>
* 闭店退款详情VO
* </p>
*
* @author wangff
* @since 2025/10/13
*/
@Data
public class CloseStoreRefundDetailVO {
// ===== 单据信息 =====
@ApiModelProperty("退款单id")
private Long id;
@ApiModelProperty("闭店申请id")
private Long closeStoreId;
@ApiModelProperty("退款申请单号")
private String refundNo;
@ApiModelProperty("退款类型(闭店子阶段code)")
private Integer type;
@ApiModelProperty("退款状态")
private String refundStatus;
@ApiModelProperty("退款状态名称")
@DictField
private String refundStatusName;
@ApiModelProperty("每刻退款单号")
private String refundOrderNo;
@ApiModelProperty("退款时间")
private Date refundTime;
// ===== 基础信息 =====
@ApiModelProperty("公司抬头")
private String invoiceTitle;
@ApiModelProperty("公司抬头名称")
@DictField
private String invoiceTitleName;
@ApiModelProperty("提交人id")
private String submitterId;
@ApiModelProperty("提交人名称")
private String submitterName;
// ===== 闭店信息 =====
@ApiModelProperty("关店原因")
private Integer closeReason;
@ApiModelProperty("关店原因名称")
private String closeReasonName;
@ApiModelProperty("关店分类名称")
private String closeNatureName;
// ===== 退款信息 =====
@ApiModelProperty("退款事由")
private String refundReason;
@ApiModelProperty("退款类型")
private String refundType;
@ApiModelProperty("退款类型")
private String refundTypeName;
@ApiModelProperty("退款项目")
private String refundProject;
@ApiModelProperty("其他说明")
private String remark;
@ApiModelProperty("退款加盟商编码")
private String businessCode;
@ApiModelProperty("退款加盟商名称")
private String businessName;
@ApiModelProperty("退款加盟商收款账户")
private String businessAccount;
// ===== 费用信息 =====
@ApiModelProperty("费用类型code")
private String expenseTypeCode;
@ApiModelProperty("费用申请日期")
private Date expenseApplyTime;
@ApiModelProperty("应退金额")
private BigDecimal expectedAmount;
@ApiModelProperty("实退金额")
private BigDecimal actualAmount;
@ApiModelProperty("扣款金额")
private BigDecimal deductAmount;
@ApiModelProperty("扣款原因")
private String deductReason;
@ApiModelProperty("银行账户")
private String accountNumber;
@ApiModelProperty("开户行")
private String bankName;
@ApiModelProperty("联行号")
private String bankBranchNo;
public String getRefundStatusName() {
return RefundPayStatusEnum.getDescByStatus(refundStatus);
}
public String getCloseNatureName() {
StoreCloseReasonEnum closeReasonEnum = StoreCloseReasonEnum.getByCode(closeReason);
return Objects.nonNull(closeReasonEnum) ? closeReasonEnum.getCloseNature().getDesc() : "";
}
public String getCloseReasonName() {
return StoreCloseReasonEnum.getDescByCode(closeReason);
}
}

View File

@@ -0,0 +1,46 @@
package com.cool.store.vo.close.refund;
import com.cool.store.enums.close.RefundPayStatusEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* <p>
* 闭店退款列表VO
* </p>
*
* @author wangff
* @since 2025/12/2
*/
@Data
public class CloseStoreRefundListVO {
@ApiModelProperty("id")
private Long id;
@ApiModelProperty("退款申请单号")
private String refundNo;
@ApiModelProperty("退款状态")
private String refundStatus;
@ApiModelProperty("退款状态名称")
private String refundStatusName;
@ApiModelProperty("每刻退款单号")
private String refundOrderNo;
@ApiModelProperty("退款时间")
private Date refundTime;
@ApiModelProperty("退款加盟商名称")
private String businessName;
@ApiModelProperty("退款加盟商收款账户")
private String businessAccount;
public String getRefundStatusName() {
return RefundPayStatusEnum.getDescByStatus(this.refundStatus);
}
}

View File

@@ -0,0 +1,45 @@
package com.cool.store.vo.close.refund;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* <p>
* 闭店退款简单信息VO
* </p>
*
* @author wangff
* @since 2025/10/13
*/
@Data
public class CloseStoreRefundSimpleVO {
@ApiModelProperty("id")
private Long id;
@ApiModelProperty("退款类型(闭店子阶段code)")
private Integer type;
@ApiModelProperty("闭店申请id")
private Long closeStoreId;
@ApiModelProperty("退款申请单号")
private String refundNo;
@ApiModelProperty("每刻退款单号")
private String refundOrderNo;
@ApiModelProperty("退款项目")
private String refundProject;
@ApiModelProperty("退款状态")
private String refundStatus;
@ApiModelProperty("退款时间")
private Date refundTime;
@ApiModelProperty("应退金额")
private BigDecimal expectedAmount;
}

View File

@@ -0,0 +1,30 @@
package com.cool.store.vo.close.store;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* <p>
* 审批记录VO
* </p>
*
* @author wangff
* @since 2025/10/9
*/
@Data
public class CloseStoreAuditRecordVO {
@ApiModelProperty("实际处理人名称")
private String handlerUserName;
@ApiModelProperty("完成任务时间")
private Date finishTaskTime;
@ApiModelProperty("审核状态 0待处理,1通过,2拒绝")
private Integer auditStatus;
@ApiModelProperty("备注")
private String actionRemark;
}

View File

@@ -0,0 +1,96 @@
package com.cool.store.vo.close.store;
import com.cool.store.enums.close.CloseStoreStatusEnum;
import com.cool.store.enums.master.BrandTypeEnum;
import com.cool.store.enums.master.StoreCloseReasonEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* <p>
* 闭店申请详情VO
* </p>
*
* @author wangff
* @since 2025/10/9
*/
@Data
public class CloseStoreInfoDetailVO {
@ApiModelProperty("闭店申请id")
private Long id;
@ApiModelProperty("审批记录id")
private Long auditId;
@ApiModelProperty("闭店申请单号")
private String closeStoreNo;
@ApiModelProperty("门店id")
private String storeId;
@ApiModelProperty("门店名称")
private String storeName;
@ApiModelProperty("门店编号")
private String storeNum;
@ApiModelProperty("所属品牌")
private Integer joinBrand;
@ApiModelProperty("所属品牌名称")
private Integer joinBrandName;
@ApiModelProperty("详细地址")
private String storeAddress;
@ApiModelProperty("签约人1姓名")
private String signer1Name;
@ApiModelProperty("签约人1手机号")
private String signer1Mobile;
@ApiModelProperty("签约人2姓名")
private String signer2Name;
@ApiModelProperty("签约人2手机号")
private String signer2Mobile;
@ApiModelProperty("计划闭店时间")
private Date planCloseData;
@ApiModelProperty("正式闭店时间")
private Date actualCloseData;
@ApiModelProperty("闭店发起方式 1-主动发起 2-云流水发起")
private Integer closeType;
@ApiModelProperty("闭店原因")
private Integer closeReason;
@ApiModelProperty("闭店原因名称")
private String closeReasonName;
@ApiModelProperty("闭店原因说明")
private String reasonDescription;
@ApiModelProperty("闭店状态")
private Integer closeStatus;
@ApiModelProperty("闭店状态名称")
private String closeStatusName;
public String getCloseStatusName() {
return CloseStoreStatusEnum.getNameByStatus(closeStatus);
}
public String getJoinBrandName() {
return BrandTypeEnum.getDescByCode(joinBrand);
}
public String getCloseReasonName() {
return StoreCloseReasonEnum.getDescByCode(closeReason);
}
}

View File

@@ -0,0 +1,85 @@
package com.cool.store.vo.close.store;
import com.cool.store.enums.close.CloseStoreStatusEnum;
import com.cool.store.enums.master.BrandTypeEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* <p>
* 闭店申请记录列表VO
* </p>
*
* @author wangff
* @since 2025/10/9
*/
@Data
public class CloseStoreInfoListVO {
@ApiModelProperty("审批记录id")
private Long auditRecordId;
@ApiModelProperty("闭店申请id")
private Long closeStoreId;
@ApiModelProperty("闭店申请单号")
private String closeStoreNo;
@ApiModelProperty("门店id")
private String storeId;
@ApiModelProperty("门店名称")
private String storeName;
@ApiModelProperty("门店编号")
private String storeNum;
@ApiModelProperty("所属品牌")
private Integer joinBrand;
@ApiModelProperty("所属品牌名称")
private String joinBrandName;
@ApiModelProperty("详细地址")
private String storeAddress;
@ApiModelProperty("签约人1姓名")
private String signer1Name;
@ApiModelProperty("签约人1手机号")
private String signer1Mobile;
@ApiModelProperty("签约人2姓名")
private String signer2Name;
@ApiModelProperty("签约人2手机号")
private String signer2Mobile;
@ApiModelProperty("计划闭店时间")
private Date planCloseData;
@ApiModelProperty("闭店发起方式 1-主动发起 2-云流水发起")
private Integer closeType;
@ApiModelProperty("闭店状态")
private Integer closeStatus;
@ApiModelProperty("闭店状态名称")
private String closeStatusName;
@ApiModelProperty("已完成流程数量")
private Integer completeProcessNum;
@ApiModelProperty("总流程数量")
private Integer totalProcessNum;
public String getCloseStatusName() {
return CloseStoreStatusEnum.getNameByStatus(closeStatus);
}
public String getJoinBrandName() {
return BrandTypeEnum.getDescByCode(joinBrand);
}
}

View File

@@ -0,0 +1,50 @@
package com.cool.store.vo.close.store;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* <p>
* 闭店申请简单信息VO
* </p>
*
* @author wangff
* @since 2025/10/9
*/
@Data
public class CloseStoreSimpleVO {
@ApiModelProperty("门店id")
private String storeId;
@ApiModelProperty("门店名称")
private String storeName;
@ApiModelProperty("门店编号")
private String storeNum;
@ApiModelProperty("闭店状态名称")
private String closeStatusName;
@ApiModelProperty("签约人1姓名")
private String signer1Name;
@ApiModelProperty("签约人1手机号")
private String signer1Mobile;
@ApiModelProperty("签约人2姓名")
private String signer2Name;
@ApiModelProperty("签约人2手机号")
private String signer2Mobile;
@ApiModelProperty("已完成流程数量")
private Integer completeProcessNum;
@ApiModelProperty("总流程数量")
private Integer totalProcessNum;
@ApiModelProperty("闭店流程阶段信息")
private List<CloseStoreSubStageStatusVO> stageList;
}

View File

@@ -0,0 +1,25 @@
package com.cool.store.vo.close.store;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* <p>
* 闭店状态VO
* </p>
*
* @author wangff
* @since 2025/10/10
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class CloseStoreStatusVO {
@ApiModelProperty("闭店状态编码")
private Integer closeStatus;
@ApiModelProperty("闭店状态")
private String closeStatusName;
}

View File

@@ -0,0 +1,49 @@
package com.cool.store.vo.close.store;
import com.cool.store.enums.close.CloseStoreSubStageEnum;
import com.cool.store.enums.close.CloseStoreSubStageStatusEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* <p>
* 闭店流程子阶段状态VO
* </p>
*
* @author wangff
* @since 2025/10/16
*/
@Data
public class CloseStoreSubStageStatusVO {
@ApiModelProperty("闭店阶段")
private Integer shopStage;
@ApiModelProperty("闭店子阶段")
private Integer shopSubStage;
@ApiModelProperty("闭店子阶段名称")
private String shopSubStageName;
@ApiModelProperty("店铺阶段状态")
private Integer shopSubStageStatus;
@ApiModelProperty("阶段状态名称")
private String shopSubStageStatusName;
@ApiModelProperty("当前阶段是否结束 0未结束 1已结束")
private Integer isTerminated;
@ApiModelProperty("预估完成时间")
private String planCompleteTime;
@ApiModelProperty("实际完成时间")
private String actualCompleteTime;
public String getShopSubStageName() {
return CloseStoreSubStageEnum.getSubStageNameBySubStage(shopSubStage);
}
public String getShopSubStageStatusName() {
return CloseStoreSubStageStatusEnum.getStatusNameByStatus(shopSubStageStatus);
}
}

View File

@@ -0,0 +1,52 @@
package com.cool.store.vo.close.store;
import com.cool.store.enums.close.CloseStoreStatusEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* <p>
* mini闭店申请简单信息VO
* </p>
*
* @author wangff
* @since 2025/10/9
*/
@Data
public class MiniCloseStoreSimpleVO {
@ApiModelProperty("闭店申请id")
private Long id;
@ApiModelProperty("闭店申请单号")
private String closeStoreNo;
@ApiModelProperty("门店id")
private String storeId;
@ApiModelProperty("门店名称")
private String storeName;
@ApiModelProperty("门店编号")
private String storeNum;
@ApiModelProperty("闭店状态")
private Integer closeStatus;
@ApiModelProperty("闭店状态名称")
private String closeStatusName;
@ApiModelProperty("闭店发起方式 1-主动发起 2-云流水发起")
private Integer closeType;
@ApiModelProperty("计划闭店时间")
private Date planCloseData;
@ApiModelProperty("申请日期")
private Date createTime;
public String getCloseStatusName() {
return CloseStoreStatusEnum.getNameByStatus(closeStatus);
}
}

View File

@@ -0,0 +1,28 @@
package com.cool.store.vo.close.store;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* <p>
* 门店闭店原因VO
* </p>
*
* @author wangff
* @since 2025/9/16
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class StoreCloseReasonVO {
@ApiModelProperty("闭店原因编码")
private Integer closeReasonCode;
@ApiModelProperty("闭店原因描述")
private String closeReasonDesc;
@ApiModelProperty("闭店发起方式")
private Integer closeType;
}