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:
@@ -6,7 +6,7 @@ package com.cool.store.common;
|
||||
* </p>
|
||||
*
|
||||
* @author wangff
|
||||
* @since 2025/11/4
|
||||
* @since 2025/3/6
|
||||
*/
|
||||
public interface InsertGroup {
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ package com.cool.store.common;
|
||||
* </p>
|
||||
*
|
||||
* @author wangff
|
||||
* @since 2025/11/4
|
||||
* @since 2025/3/6
|
||||
*/
|
||||
public interface UpdateGroup {
|
||||
}
|
||||
|
||||
@@ -209,6 +209,11 @@ public class CommonConstants {
|
||||
public static final String ONLINE_ENV = "online";
|
||||
public static final String AMOUNT_KEY = "amount:{0}:{1}";
|
||||
|
||||
/**
|
||||
* 闭店状态
|
||||
*/
|
||||
public static final String CLOSED = "closed";
|
||||
|
||||
public static final String WX_SELF_AUTH_URL = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=%s&redirect_uri=%s&response_type=code&scope=snsapi_base&state=1#wechat_redirect";
|
||||
|
||||
/**
|
||||
|
||||
@@ -289,7 +289,7 @@ public class RedisConstant {
|
||||
public static final String HUO_MA_STORE_ID = "huo_ma_store_id";
|
||||
|
||||
public static final String HUO_MA_TOKEN= "huo_ma_token:{0}";
|
||||
|
||||
|
||||
/**
|
||||
* 钱包开通失败/打标失败原因 wallet_open_fail:storeId:1/2 1平安/2网商
|
||||
*/
|
||||
@@ -304,4 +304,29 @@ public class RedisConstant {
|
||||
* 网商账户是否已激活
|
||||
*/
|
||||
public static final String WALLET_ONLINE_BANK_ACTIVATED = "wallet_online_bank_activated:{0}";
|
||||
|
||||
/**
|
||||
* 闭店退款申请人
|
||||
*/
|
||||
public static final String CLOSE_STORE_REFUND_SUBMIT_USER = "zxjp_refund_submit_user";
|
||||
|
||||
/**
|
||||
* 闭店账号初始化
|
||||
*/
|
||||
public static final String CLOSE_STORE_ACCOUNT_INIT = "zxjp_close_store_account";
|
||||
|
||||
/**
|
||||
* 闭店资料初始化
|
||||
*/
|
||||
public static final String CLOSE_STORE_FILE_INIT = "zxjp_close_store_file";
|
||||
|
||||
/**
|
||||
* 闭店资料模板
|
||||
*/
|
||||
public static final String CLOSE_STORE_FILE_TEMPLATE = "zxjp_close_store_file_template";
|
||||
|
||||
/**
|
||||
* 每刻退款用户信息
|
||||
*/
|
||||
public static final String MK_USER_MAPPING = "zxjp_mk_user_mapping";
|
||||
}
|
||||
|
||||
@@ -321,12 +321,32 @@ public enum ErrorCodeEnum {
|
||||
SHOP_NAME_INVALID(1610014, "门店名称包含禁止关键词",null),
|
||||
//装修
|
||||
TEAM_USED(1612001,"该装修团队有门店使用,无法删除,请确认!",null),
|
||||
CURRENT_BRAND_SORT_NUMBER_EXIST(16100007,"当前品牌已存在该排序数字!",null),
|
||||
CONTRACT_CONFIG_NOT_EXIST(16100008,"合同配置不存在!",null),
|
||||
|
||||
WALLET_OPEN_ACCOUNT_FAIL(1620001,"钱包开通失败",null),
|
||||
WALLET_WITH_DRAWER_FAIL(1620002,"提现失败",null),
|
||||
WALLET_API_ERROR(1620003,"{0}",null),
|
||||
CURRENT_BRAND_SORT_NUMBER_EXIST(16100007,"当前品牌已存在该排序数字!",null),
|
||||
CONTRACT_CONFIG_NOT_EXIST(16100008,"合同配置不存在!",null),
|
||||
|
||||
// 171闭店
|
||||
CLOSE_STORE_SUB_STAGE_ERROR(171002, "当前流程状态异常", null),
|
||||
STORE_NOT_EXIST(1710003,"门店不存在!",null),
|
||||
STORE_NOT_OPEN(1710004,"当期门店状态为已闭店!请确认!",null),
|
||||
CLOSE_STORE_INFO_NOT_EXIST(1710005,"闭店申请信息不存在!",null),
|
||||
CLOSE_STORE_EXIST_ONGOING_RECORD(1710006,"当前门店有进行中的闭店申请,请确认!",null),
|
||||
CLOSE_STORE_HAS_BEEN_COMPLETED(1710007,"该审批已结束",null),
|
||||
NO_APPROVAL_AUTHORITY(1710008,"您没有审批权限!",null),
|
||||
CLOSE_STORE_AUDIT_RECORD_NOT_EXIST(1710009,"闭店审批记录不存在!",null),
|
||||
CLOSE_STORE_CANCEL_ERROR(1710010,"该闭店申请已审批无法取消",null),
|
||||
CLOSE_STORE_CANCELED(1710011,"该闭店申请已取消",null),
|
||||
CLOSE_STORE_IS_NOT_APPLICANT(1710012, "非申请发起人无法取消!",null),
|
||||
CLOSE_STORE_REFUND_INFO_NOT_EXIST(1710013,"退款信息不存在",null),
|
||||
CLOSE_STORE_FILE_STATUS_ERROR(1710014, "材料上传状态错误,请检查材料上传情况", null),
|
||||
CLOSE_STORE_FILE_NOT_EXIST(1710015, "闭店材料不存在", null),
|
||||
CLOSE_STORE_REFUND_MK_USER_NOT_EXIST(1710016, "当前用户不存在每刻权限", null),
|
||||
CLOSE_STORE_REFUND_EXIST_EFFECTIVE_RECORD(1710017, "存在生效中的退款申请!", null),
|
||||
CLOSE_STORE_REFUND_TYPE_ERROR(1710018, "退款类型错误", null),
|
||||
|
||||
/**
|
||||
* 181 十二分制
|
||||
*/
|
||||
|
||||
@@ -34,7 +34,9 @@ public enum RocketMqGroupEnum {
|
||||
|
||||
|
||||
STORE_USER_UPDATE("store_user_update", new ArrayList<>(Arrays.asList(RocketMqTagEnum.STORE_USER_UPDATE))),
|
||||
SHOP_DECORATION_ASSIGN("shop_decoration_assign", new ArrayList<>(Arrays.asList(RocketMqTagEnum.DELAY_SHOP_DECORATION_ASSIGN)))
|
||||
SHOP_DECORATION_ASSIGN("shop_decoration_assign", new ArrayList<>(Arrays.asList(RocketMqTagEnum.DELAY_SHOP_DECORATION_ASSIGN))),
|
||||
|
||||
STORE_MASTER_ISSUE("store_master_issue", new ArrayList<>(Arrays.asList(RocketMqTagEnum.STORE_MASTER_ISSUE))),
|
||||
|
||||
;
|
||||
|
||||
|
||||
@@ -19,7 +19,8 @@ public enum RocketMqTagEnum {
|
||||
PARTNER_LICENSE_SYNC_QUEUE("partner_license_sync_queue", "招商证照信息同步"),
|
||||
BUSINESS_SYNC("business_sync", "工商食安信息同步"),
|
||||
STORE_USER_UPDATE("store_user_update", "门店信息人员变更同步菜品"),
|
||||
DELAY_SHOP_DECORATION_ASSIGN("shop_decoration_assign","门店装修分配");
|
||||
DELAY_SHOP_DECORATION_ASSIGN("shop_decoration_assign","门店装修分配"),
|
||||
STORE_MASTER_ISSUE("store_master_issue","门店主数据下发"),
|
||||
;
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.cool.store.enums.close;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 闭店账号关闭类型枚举类
|
||||
* </p>
|
||||
*
|
||||
* @author wangff
|
||||
* @since 2025/10/9
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum AccountCloseTypeEnum {
|
||||
|
||||
DIRECT_CLOSE(0, "直接关闭"),
|
||||
APPLY_CLOSE(1, "申请关闭"),
|
||||
;
|
||||
|
||||
private final Integer type;
|
||||
|
||||
private final String msg;
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.cool.store.enums.close;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 闭店账号状态枚举类
|
||||
* </p>
|
||||
*
|
||||
* @author wangff
|
||||
* @since 2025/10/8
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum CloseStoreAccountStatusEnum {
|
||||
|
||||
IN_USE(1, "使用中"),
|
||||
CLOSED(2, "已关闭"),
|
||||
CLOSING(3, "关闭中"),
|
||||
;
|
||||
|
||||
private final Integer status;
|
||||
|
||||
private final String msg;
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
package com.cool.store.enums.close;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 闭店账号类型枚举类
|
||||
* </p>
|
||||
*
|
||||
* @author wangff
|
||||
* @since 2025/10/8
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum CloseStoreAccountTypeEnum {
|
||||
|
||||
IT_ACCOUNT(0, "IT账号"),
|
||||
TAKE_OUT_ACCOUNT(1, "外卖账号"),
|
||||
;
|
||||
|
||||
private final Integer type;
|
||||
|
||||
private final String msg;
|
||||
|
||||
public static String getMsgByType(Integer type) {
|
||||
for (CloseStoreAccountTypeEnum value : CloseStoreAccountTypeEnum.values()) {
|
||||
if (value.getType().equals(type)) {
|
||||
return value.getMsg();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.cool.store.enums.close;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 闭店审批状态枚举类
|
||||
* </p>
|
||||
*
|
||||
* @author wangff
|
||||
* @since 2025/10/8
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum CloseStoreAuditStatusEnum {
|
||||
|
||||
PENDING(0, "待处理"),
|
||||
PASS(1, "通过"),
|
||||
REJECTED(2, "拒绝"),
|
||||
|
||||
;
|
||||
|
||||
private final Integer status;
|
||||
|
||||
private final String msg;
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.cool.store.enums.close;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 闭店材料 枚举类
|
||||
* </p>
|
||||
*
|
||||
* @author wangff
|
||||
* @since 2025/11/27
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum CloseStoreFileEnum {
|
||||
|
||||
HT("close_store_file_ht", "合同"),
|
||||
YJT("close_store_file_yjt", "押金条"),
|
||||
SQS("close_store_file_sqs", "授权书"),
|
||||
MTZ("close_store_file_mtz", "门头字摧毁照片"),
|
||||
TKD("close_store_file_tkd", "退款单"),
|
||||
SFZ("close_store_file_sfz", "身份证复印件"),
|
||||
YHK("close_store_file_yhk", "银行卡复印件"),
|
||||
;
|
||||
|
||||
private final String code;
|
||||
|
||||
private final String desc;
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.cool.store.enums.close;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/9/22 11:21
|
||||
* @Version 1.0
|
||||
*/
|
||||
public enum CloseStoreStageEnum {
|
||||
|
||||
CLOSE_STORE_STAGE_1(1, "材料上交"),
|
||||
CLOSE_STORE_STAGE_2(2, "账号关闭"),
|
||||
CLOSE_STORE_STAGE_3(3, "退款"),
|
||||
;
|
||||
|
||||
/**
|
||||
* 闭店阶段
|
||||
*/
|
||||
private Integer closeStoreStage;
|
||||
|
||||
/**
|
||||
* 闭店阶段名称
|
||||
*/
|
||||
private String closeStoreName;
|
||||
|
||||
|
||||
|
||||
CloseStoreStageEnum(Integer closeStoreStage, String closeStoreName) {
|
||||
this.closeStoreStage = closeStoreStage;
|
||||
this.closeStoreName = closeStoreName;
|
||||
}
|
||||
|
||||
public static CloseStoreStageEnum getCloseStoreStageEnum(Integer closeStoreStage) {
|
||||
for (CloseStoreStageEnum closeStoreStageEnum : CloseStoreStageEnum.values()) {
|
||||
if (closeStoreStageEnum.getCloseStoreStage().equals(closeStoreStage)) {
|
||||
return closeStoreStageEnum;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
public Integer getCloseStoreStage() {
|
||||
return closeStoreStage;
|
||||
}
|
||||
|
||||
public String getCloseStoreName() {
|
||||
return closeStoreName;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
package com.cool.store.enums.close;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/9/22 18:57
|
||||
* @Version 1.0
|
||||
*/
|
||||
public enum CloseStoreStatusEnum {
|
||||
// 督导审批中
|
||||
UNDER_APPROVAL(1, "审批中"),
|
||||
// 大区老总审批中
|
||||
MANAGER_UNDER_APPROVAL(2, "审批中"),
|
||||
REVIEW_NOT_APPROVED(5, "审批拒绝"),
|
||||
CANCELED(10, "已取消"),
|
||||
CLOSING(15, "闭店中"),
|
||||
COMPLETED(20, "已完成"),
|
||||
|
||||
;
|
||||
private Integer closeStoreStatus;
|
||||
|
||||
private String closeStoreStatusName;
|
||||
|
||||
|
||||
CloseStoreStatusEnum(Integer closeStoreStatus, String closeStoreStatusName) {
|
||||
this.closeStoreStatus = closeStoreStatus;
|
||||
this.closeStoreStatusName = closeStoreStatusName;
|
||||
}
|
||||
|
||||
public Integer getCloseStoreStatus() {
|
||||
return closeStoreStatus;
|
||||
}
|
||||
|
||||
public String getCloseStoreStatusName() {
|
||||
return closeStoreStatusName;
|
||||
}
|
||||
|
||||
public static CloseStoreStatusEnum getByCloseStoreStatus(Integer closeStoreStatus){
|
||||
for (CloseStoreStatusEnum value : CloseStoreStatusEnum.values()) {
|
||||
if (value.getCloseStoreStatus().equals(closeStoreStatus)){
|
||||
return value;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static String getNameByStatus(Integer closeStoreStatus) {
|
||||
for (CloseStoreStatusEnum value : CloseStoreStatusEnum.values()) {
|
||||
if (value.getCloseStoreStatus().equals(closeStoreStatus)){
|
||||
return value.getCloseStoreStatusName();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取下一个审批通过状态
|
||||
* @param status 审批状态
|
||||
* @return 审批状态
|
||||
*/
|
||||
public static Integer getNextPassStatus(Integer status) {
|
||||
CloseStoreStatusEnum currentStatus = getByCloseStoreStatus(status);
|
||||
if (currentStatus == null) {
|
||||
throw new IllegalArgumentException("闭店申请状态为空");
|
||||
}
|
||||
switch (currentStatus) {
|
||||
case UNDER_APPROVAL:
|
||||
return MANAGER_UNDER_APPROVAL.getCloseStoreStatus();
|
||||
case MANAGER_UNDER_APPROVAL:
|
||||
return CLOSING.getCloseStoreStatus();
|
||||
case CLOSING:
|
||||
return COMPLETED.getCloseStoreStatus();
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean isApprove(Integer status) {
|
||||
return CloseStoreStatusEnum.UNDER_APPROVAL.getCloseStoreStatus().equals(status)
|
||||
|| CloseStoreStatusEnum.MANAGER_UNDER_APPROVAL.getCloseStoreStatus().equals(status);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,132 @@
|
||||
package com.cool.store.enums.close;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: ShopStageEnum
|
||||
* @Description:店铺阶段
|
||||
* @date 2024-04-10 17:34
|
||||
*/
|
||||
public enum CloseStoreSubStageEnum {
|
||||
|
||||
CLOSE_STORE_SUB_STAGE_10(CloseStoreStageEnum.CLOSE_STORE_STAGE_1, 10, "关店所需材料上交", 1),
|
||||
CLOSE_STORE_SUB_STAGE_20(CloseStoreStageEnum.CLOSE_STORE_STAGE_2, 20, "账号关闭", 2),
|
||||
CLOSE_STORE_SUB_STAGE_30(CloseStoreStageEnum.CLOSE_STORE_STAGE_3, 30, "押金退款", 3),
|
||||
CLOSE_STORE_SUB_STAGE_40(CloseStoreStageEnum.CLOSE_STORE_STAGE_3, 40, "货款退款", 3),
|
||||
;
|
||||
|
||||
/**
|
||||
* 阶段
|
||||
*/
|
||||
private CloseStoreStageEnum closeStoreStageEnum;
|
||||
|
||||
/**
|
||||
* 子阶段
|
||||
*/
|
||||
private Integer closeStoreSubStage;
|
||||
|
||||
/**
|
||||
* 子阶段名称
|
||||
*/
|
||||
private String closeStoreSubStageName;
|
||||
|
||||
/**
|
||||
* 计划完成天数
|
||||
*/
|
||||
private Integer planCompleteDays;
|
||||
|
||||
CloseStoreSubStageEnum(CloseStoreStageEnum closeStoreStageEnum, Integer closeStoreSubStage, String closeStoreSubStageName, Integer planCompleteDays) {
|
||||
this.closeStoreStageEnum = closeStoreStageEnum;
|
||||
this.closeStoreSubStage = closeStoreSubStage;
|
||||
this.closeStoreSubStageName = closeStoreSubStageName;
|
||||
this.planCompleteDays = planCompleteDays;
|
||||
}
|
||||
|
||||
|
||||
public static List<CloseStoreSubStageEnum> getShopStageEnum(Integer closeStoreStage) {
|
||||
List<CloseStoreSubStageEnum> resultList = new ArrayList<>();
|
||||
for (CloseStoreSubStageEnum closeStoreSubStageEnum : CloseStoreSubStageEnum.values()) {
|
||||
if (closeStoreSubStageEnum.getCloseStoreStageEnum().getCloseStoreStage().equals(closeStoreStage)) {
|
||||
resultList.add(closeStoreSubStageEnum);
|
||||
}
|
||||
}
|
||||
return resultList;
|
||||
}
|
||||
|
||||
public CloseStoreStageEnum getCloseStoreStageEnum() {
|
||||
return closeStoreStageEnum;
|
||||
}
|
||||
|
||||
public Integer getCloseStoreSubStage() {
|
||||
return closeStoreSubStage;
|
||||
}
|
||||
|
||||
public String getCloseStoreSubStageName() {
|
||||
return closeStoreSubStageName;
|
||||
}
|
||||
|
||||
public Integer getPlanCompleteDays() {
|
||||
return planCompleteDays;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取各阶段的初始状态
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public CloseStoreSubStageStatusEnum getInitStatus() {
|
||||
switch (this) {
|
||||
case CLOSE_STORE_SUB_STAGE_10:
|
||||
return CloseStoreSubStageStatusEnum.CLOSE_STORE_SUB_STAGE_STATUS_10;
|
||||
case CLOSE_STORE_SUB_STAGE_20:
|
||||
case CLOSE_STORE_SUB_STAGE_30:
|
||||
case CLOSE_STORE_SUB_STAGE_40:
|
||||
return CloseStoreSubStageStatusEnum.CLOSE_STORE_SUB_STAGE_STATUS_00;
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public String getPlanCompleteTime(LocalDate planCompleteTime) {
|
||||
switch (this) {
|
||||
default:
|
||||
return planCompleteTime.plusDays(getPlanCompleteDays()).toString();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取下一个开启的子阶段
|
||||
*/
|
||||
public static List<CloseStoreSubStageEnum> getNextSubStage(CloseStoreSubStageEnum currentSubStage) {
|
||||
switch (currentSubStage) {
|
||||
case CLOSE_STORE_SUB_STAGE_10:
|
||||
return Arrays.asList(CLOSE_STORE_SUB_STAGE_20, CLOSE_STORE_SUB_STAGE_30, CLOSE_STORE_SUB_STAGE_40);
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static CloseStoreSubStageEnum getSubStageByStage(Integer subStage) {
|
||||
for (CloseStoreSubStageEnum value : CloseStoreSubStageEnum.values()) {
|
||||
if (value.getCloseStoreSubStage().equals(subStage)) {
|
||||
return value;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static String getSubStageNameBySubStage(Integer subStage) {
|
||||
for (CloseStoreSubStageEnum value : CloseStoreSubStageEnum.values()) {
|
||||
if (value.getCloseStoreSubStage().equals(subStage)) {
|
||||
return value.getCloseStoreSubStageName();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,168 @@
|
||||
package com.cool.store.enums.close;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: ShopStageStatusEnum
|
||||
* @Description:店铺阶段状态
|
||||
* @date 2024-04-10 17:34
|
||||
*/
|
||||
public enum CloseStoreSubStageStatusEnum {
|
||||
|
||||
CLOSE_STORE_SUB_STAGE_STATUS_00(null, -100, "未开始", Boolean.FALSE),
|
||||
|
||||
/**
|
||||
* 材料上传
|
||||
*/
|
||||
CLOSE_STORE_SUB_STAGE_STATUS_10(CloseStoreSubStageEnum.CLOSE_STORE_SUB_STAGE_10, 100, "待内勤填写地址", Boolean.FALSE),
|
||||
CLOSE_STORE_SUB_STAGE_STATUS_15(CloseStoreSubStageEnum.CLOSE_STORE_SUB_STAGE_10, 110, "未提交", Boolean.FALSE),
|
||||
CLOSE_STORE_SUB_STAGE_STATUS_16(CloseStoreSubStageEnum.CLOSE_STORE_SUB_STAGE_10, 120, "待督导审核", Boolean.FALSE),
|
||||
CLOSE_STORE_SUB_STAGE_STATUS_17(CloseStoreSubStageEnum.CLOSE_STORE_SUB_STAGE_10, 130, "督导审批驳回", Boolean.FALSE),
|
||||
CLOSE_STORE_SUB_STAGE_STATUS_18(CloseStoreSubStageEnum.CLOSE_STORE_SUB_STAGE_10, 140, "待内勤审核", Boolean.FALSE),
|
||||
CLOSE_STORE_SUB_STAGE_STATUS_19(CloseStoreSubStageEnum.CLOSE_STORE_SUB_STAGE_10, 150, "内勤审批驳回", Boolean.FALSE),
|
||||
CLOSE_STORE_SUB_STAGE_STATUS_20(CloseStoreSubStageEnum.CLOSE_STORE_SUB_STAGE_10, 160, "已完成", Boolean.TRUE),
|
||||
|
||||
/**
|
||||
* 账号关闭
|
||||
*/
|
||||
CLOSE_STORE_SUB_STAGE_STATUS_25(CloseStoreSubStageEnum.CLOSE_STORE_SUB_STAGE_20, 200, "进行中", Boolean.FALSE),
|
||||
CLOSE_STORE_SUB_STAGE_STATUS_30(CloseStoreSubStageEnum.CLOSE_STORE_SUB_STAGE_20, 210, "已完成", Boolean.TRUE),
|
||||
|
||||
/**
|
||||
* 押金退款
|
||||
*/
|
||||
CLOSE_STORE_SUB_STAGE_STATUS_35(CloseStoreSubStageEnum.CLOSE_STORE_SUB_STAGE_30, 310, "待退款", Boolean.FALSE),
|
||||
CLOSE_STORE_SUB_STAGE_STATUS_40(CloseStoreSubStageEnum.CLOSE_STORE_SUB_STAGE_30, 330, "已完成", Boolean.TRUE),
|
||||
|
||||
/**
|
||||
* 货款退款
|
||||
*/
|
||||
CLOSE_STORE_SUB_STAGE_STATUS_45(CloseStoreSubStageEnum.CLOSE_STORE_SUB_STAGE_40, 410, "待退款", Boolean.FALSE),
|
||||
CLOSE_STORE_SUB_STAGE_STATUS_50(CloseStoreSubStageEnum.CLOSE_STORE_SUB_STAGE_40, 430, "已完成", Boolean.TRUE),
|
||||
|
||||
;
|
||||
|
||||
private CloseStoreSubStageEnum closeStoreSubStageEnum;
|
||||
|
||||
private Integer shopSubStageStatus;
|
||||
|
||||
private String shopSubStageStatusName;
|
||||
|
||||
private boolean isTerminated;
|
||||
|
||||
|
||||
CloseStoreSubStageStatusEnum(CloseStoreSubStageEnum closeStoreSubStageEnum, Integer shopSubStageStatus, String shopSubStageStatusName, Boolean isTerminated) {
|
||||
this.closeStoreSubStageEnum = closeStoreSubStageEnum;
|
||||
this.shopSubStageStatus = shopSubStageStatus;
|
||||
this.shopSubStageStatusName = shopSubStageStatusName;
|
||||
this.isTerminated = isTerminated;
|
||||
}
|
||||
|
||||
public static List<CloseStoreSubStageStatusEnum> getCloseStoreSubStageStatusEnum(CloseStoreSubStageEnum closeStoreSubStageEnum) {
|
||||
List<CloseStoreSubStageStatusEnum> resultList = new ArrayList<>();
|
||||
for (CloseStoreSubStageStatusEnum stageStatusEnum : CloseStoreSubStageStatusEnum.values()) {
|
||||
if (Objects.nonNull(stageStatusEnum.getCloseStoreSubStageEnum()) && stageStatusEnum.getCloseStoreSubStageEnum().equals(closeStoreSubStageEnum)) {
|
||||
resultList.add(stageStatusEnum);
|
||||
}
|
||||
}
|
||||
return resultList;
|
||||
}
|
||||
|
||||
public CloseStoreSubStageEnum getCloseStoreSubStageEnum() {
|
||||
return closeStoreSubStageEnum;
|
||||
}
|
||||
|
||||
public Integer getShopSubStageStatus() {
|
||||
return shopSubStageStatus;
|
||||
}
|
||||
|
||||
public String getShopSubStageStatusName() {
|
||||
return shopSubStageStatusName;
|
||||
}
|
||||
|
||||
public String getShopSubStageName() {
|
||||
return closeStoreSubStageEnum.getCloseStoreSubStageName();
|
||||
}
|
||||
|
||||
public boolean isTerminated() {
|
||||
return isTerminated;
|
||||
}
|
||||
|
||||
public static CloseStoreSubStageStatusEnum getCloseStoreSubStageStatusEnum(Integer CloseStoreSubStageStatus) {
|
||||
for (CloseStoreSubStageStatusEnum storeSubStageStatusEnum : CloseStoreSubStageStatusEnum.values()) {
|
||||
if (Objects.nonNull(storeSubStageStatusEnum.getShopSubStageStatus()) && storeSubStageStatusEnum.getShopSubStageStatus().equals(CloseStoreSubStageStatus)) {
|
||||
return storeSubStageStatusEnum;
|
||||
}
|
||||
}
|
||||
return CLOSE_STORE_SUB_STAGE_STATUS_00;
|
||||
}
|
||||
|
||||
public static CloseStoreSubStageStatusEnum getByStatus(Integer shopSubStageStatus) {
|
||||
for (CloseStoreSubStageStatusEnum statusEnum : CloseStoreSubStageStatusEnum.values()) {
|
||||
if (statusEnum.getShopSubStageStatus().equals(shopSubStageStatus)) {
|
||||
return statusEnum;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取下一个阶段状态
|
||||
* @param current 当前阶段状态
|
||||
* @return 阶段状态
|
||||
*/
|
||||
public static CloseStoreSubStageStatusEnum getNextStageStatus(CloseStoreSubStageStatusEnum current) {
|
||||
switch (current) {
|
||||
case CLOSE_STORE_SUB_STAGE_STATUS_10:
|
||||
return CLOSE_STORE_SUB_STAGE_STATUS_15;
|
||||
case CLOSE_STORE_SUB_STAGE_STATUS_15:
|
||||
case CLOSE_STORE_SUB_STAGE_STATUS_17:
|
||||
return CLOSE_STORE_SUB_STAGE_STATUS_16;
|
||||
case CLOSE_STORE_SUB_STAGE_STATUS_16:
|
||||
case CLOSE_STORE_SUB_STAGE_STATUS_19:
|
||||
return CLOSE_STORE_SUB_STAGE_STATUS_18;
|
||||
case CLOSE_STORE_SUB_STAGE_STATUS_18:
|
||||
return CLOSE_STORE_SUB_STAGE_STATUS_20;
|
||||
case CLOSE_STORE_SUB_STAGE_STATUS_25:
|
||||
return CLOSE_STORE_SUB_STAGE_STATUS_30;
|
||||
case CLOSE_STORE_SUB_STAGE_STATUS_35:
|
||||
return CLOSE_STORE_SUB_STAGE_STATUS_40;
|
||||
case CLOSE_STORE_SUB_STAGE_STATUS_45:
|
||||
return CLOSE_STORE_SUB_STAGE_STATUS_50;
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取子流程的开始阶段状态
|
||||
* @param subStage 子流程
|
||||
* @return 阶段状态
|
||||
*/
|
||||
public static CloseStoreSubStageStatusEnum getOpenStageStatus(CloseStoreSubStageEnum subStage) {
|
||||
switch (subStage) {
|
||||
case CLOSE_STORE_SUB_STAGE_10:
|
||||
return CLOSE_STORE_SUB_STAGE_STATUS_10;
|
||||
case CLOSE_STORE_SUB_STAGE_20:
|
||||
return CLOSE_STORE_SUB_STAGE_STATUS_25;
|
||||
case CLOSE_STORE_SUB_STAGE_30:
|
||||
return CLOSE_STORE_SUB_STAGE_STATUS_35;
|
||||
case CLOSE_STORE_SUB_STAGE_40:
|
||||
return CLOSE_STORE_SUB_STAGE_STATUS_45;
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static String getStatusNameByStatus(Integer status) {
|
||||
for (CloseStoreSubStageStatusEnum statusEnum : CloseStoreSubStageStatusEnum.values()) {
|
||||
if (statusEnum.getShopSubStageStatus().equals(status)) {
|
||||
return statusEnum.getShopSubStageStatusName();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.cool.store.enums.close;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/9/22 18:43
|
||||
* @Version 1.0
|
||||
*/
|
||||
public enum CloseTypeEnum {
|
||||
|
||||
INITIATE(1, "主动发起"),
|
||||
NO_ORDER_AUTO(2, "未订货自动发起"),
|
||||
;
|
||||
|
||||
CloseTypeEnum(Integer closeType, String closeTypeName) {
|
||||
this.closeType = closeType;
|
||||
this.closeTypeName = closeTypeName;
|
||||
}
|
||||
|
||||
private Integer closeType;
|
||||
|
||||
private String closeTypeName;
|
||||
|
||||
public Integer getCloseType() {
|
||||
return closeType;
|
||||
}
|
||||
|
||||
public String getCloseTypeName() {
|
||||
return closeTypeName;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package com.cool.store.enums.close;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 闭店材料状态 枚举类
|
||||
* </p>
|
||||
*
|
||||
* @author wangff
|
||||
* @since 2025/11/26
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum FileStatusEnum {
|
||||
|
||||
NOT_UPLOAD(0, "未上传"),
|
||||
QUALIFIED(1, "合格"),
|
||||
UNQUALIFIED(2, "不合格"),
|
||||
UPLOADED(3, "已上传"),
|
||||
APPROVING(4, "审批中"),
|
||||
MODIFIED(5, "已修改"),
|
||||
;
|
||||
|
||||
private final Integer status;
|
||||
|
||||
private final String desc;
|
||||
|
||||
public static String getDescByStatus(Integer status) {
|
||||
for (FileStatusEnum value : FileStatusEnum.values()) {
|
||||
if (value.status.equals(status)) {
|
||||
return value.desc;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.cool.store.enums.close;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/9/23 13:45
|
||||
* @Version 1.0
|
||||
*/
|
||||
public enum RecordTypeEnum {
|
||||
|
||||
CLOSE_STORE_RECORD_TYPE_10(1, "申请提交"),
|
||||
CLOSE_STORE_RECORD_TYPE_20(2, "审批操作"),
|
||||
;
|
||||
|
||||
private Integer recordType;
|
||||
|
||||
private String recordTypeName;
|
||||
|
||||
RecordTypeEnum(Integer recordType, String recordTypeName) {
|
||||
this.recordType = recordType;
|
||||
this.recordTypeName = recordTypeName;
|
||||
}
|
||||
|
||||
public Integer getRecordType() {
|
||||
return recordType;
|
||||
}
|
||||
|
||||
public String getRecordTypeName() {
|
||||
return recordTypeName;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
package com.cool.store.enums.close;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 退款支付状态枚举类
|
||||
* </p>
|
||||
*
|
||||
* @author wangff
|
||||
* @since 2025/12/1
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum RefundPayStatusEnum {
|
||||
|
||||
APPROVING("APPROVING", "审批中"),
|
||||
ABANDON("ABANDON", "作废"),
|
||||
SETTLEMENT("SETTLEMENT", "结算中"),
|
||||
PAY_SUCCESS("PAY_SUCCESS", "支付成功"),
|
||||
PAY_FAIL("PAY_FAIL", "支付失败"),
|
||||
;
|
||||
|
||||
private final String status;
|
||||
|
||||
private final String desc;
|
||||
|
||||
public static String getDescByStatus(String status) {
|
||||
for (RefundPayStatusEnum value : values()) {
|
||||
if (value.status.equals(status)) {
|
||||
return value.desc;
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.cool.store.enums.close;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 新管家退管单支付状态枚举类
|
||||
* </p>
|
||||
*
|
||||
* @author wangff
|
||||
* @since 2025/11/28
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum XgjRefundPayStatusEnum {
|
||||
|
||||
APPROVING("APPROVING", "审批中"),
|
||||
ABANDON("ABANDON", "作废"),
|
||||
SETTLEMENT("SETTLEMENT", "结算中"),
|
||||
PAY_SUCCESS("PAY_SUCCESS", "支付成功"),
|
||||
PAY_FAIL("PAY_FAIL", "支付失败"),
|
||||
REJECTED("REJECTED", "驳回")
|
||||
;
|
||||
|
||||
private final String status;
|
||||
|
||||
private final String desc;
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
package com.cool.store.enums.master;
|
||||
|
||||
import com.cool.store.enums.close.CloseTypeEnum;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 门店闭店性质枚举类
|
||||
* </p>
|
||||
*
|
||||
* @author wangff
|
||||
* @since 2025/9/16
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum StoreCloseNatureEnum {
|
||||
// 这里的描述跟标品略微不同,但是描述不要改!!!跟每刻保持一致!!!
|
||||
REQUIRE_CLOSE(0, "我们管理要求闭店", CloseTypeEnum.NO_ORDER_AUTO),
|
||||
|
||||
ONESELF_CLOSE(1, "加盟商自行闭店", CloseTypeEnum.INITIATE),
|
||||
;
|
||||
|
||||
|
||||
private final Integer code;
|
||||
|
||||
private final String desc;
|
||||
|
||||
private final CloseTypeEnum closeType;
|
||||
|
||||
public static String getDescByCode(Integer code) {
|
||||
for (StoreCloseNatureEnum value : StoreCloseNatureEnum.values()) {
|
||||
if (value.code.equals(code)) {
|
||||
return value.desc;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
package com.cool.store.enums.master;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 门店闭店原因枚举类
|
||||
* </p>
|
||||
*
|
||||
* @author wangff
|
||||
* @since 2025/9/16
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum StoreCloseReasonEnum {
|
||||
// 这里的描述跟标品略微不同,但是描述不要改!!!跟每刻保持一致!!!
|
||||
REASON0(0, "不进货(外购)", StoreCloseNatureEnum.REQUIRE_CLOSE),
|
||||
REASON1(1, "门店形象差(不升级)", StoreCloseNatureEnum.REQUIRE_CLOSE),
|
||||
REASON2(2, "顾客投诉率高", StoreCloseNatureEnum.REQUIRE_CLOSE),
|
||||
REASON3(3, "加盟老板失联", StoreCloseNatureEnum.REQUIRE_CLOSE),
|
||||
REASON4(4, "其他严重违反加盟规定", StoreCloseNatureEnum.REQUIRE_CLOSE),
|
||||
REASON5(5, "卫生操作不达标", StoreCloseNatureEnum.REQUIRE_CLOSE),
|
||||
|
||||
REASON6(6, "人员不足", StoreCloseNatureEnum.ONESELF_CLOSE),
|
||||
REASON7(7, "商圈转移或拆迁", StoreCloseNatureEnum.ONESELF_CLOSE),
|
||||
REASON8(8, "生意差", StoreCloseNatureEnum.ONESELF_CLOSE),
|
||||
REASON9(9, "房东不租", StoreCloseNatureEnum.ONESELF_CLOSE),
|
||||
REASON19(10, "想转行或想长休", StoreCloseNatureEnum.ONESELF_CLOSE),
|
||||
|
||||
;
|
||||
|
||||
|
||||
private final Integer code;
|
||||
|
||||
private final String desc;
|
||||
|
||||
private final StoreCloseNatureEnum closeNature;
|
||||
|
||||
public static String getDescByCode(Integer code) {
|
||||
for (StoreCloseReasonEnum value : StoreCloseReasonEnum.values()) {
|
||||
if (value.code.equals(code)) {
|
||||
return value.desc;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static StoreCloseReasonEnum getByCode(Integer code) {
|
||||
for (StoreCloseReasonEnum value : StoreCloseReasonEnum.values()) {
|
||||
if (value.code.equals(code)) {
|
||||
return value;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -4,6 +4,7 @@ import cn.hutool.core.bean.copier.CopyOptions;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
@@ -51,4 +52,13 @@ public class BeanUtil extends cn.hutool.core.bean.BeanUtil {
|
||||
newPage.setList(list);
|
||||
return newPage;
|
||||
}
|
||||
|
||||
public static void copyPropertiesIgnoreId(Object source, Object target, String... ignoreProperties) {
|
||||
if (source == null || target == null) {
|
||||
return;
|
||||
}
|
||||
String[] mergedIgnoreProperties = Arrays.copyOf(ignoreProperties, ignoreProperties.length + 1);
|
||||
mergedIgnoreProperties[ignoreProperties.length] = "id";
|
||||
copyProperties(source, target, mergedIgnoreProperties);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -161,6 +161,13 @@ public class CoolDateUtils {
|
||||
return LocalDate.now().format(getDateFormatter(DATE_FORMAT_DAY));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前时间字符串 (yyyy-MM-dd HH:mm:ss)
|
||||
*/
|
||||
public static String getCurrentDateTime() {
|
||||
return LocalDateTime.now().format(getDateFormatter(DATE_FORMAT_SEC));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取上月同一天的日期字符串 (yyyy-MM-dd)
|
||||
* 如果上个月没有同一天(如当前是3月31日,但2月没有31日),则返回上个月的最后一天
|
||||
|
||||
@@ -22,16 +22,16 @@ import java.util.stream.Collectors;
|
||||
@Slf4j
|
||||
public class RocketMqUtil {
|
||||
|
||||
private static final String INSTANCE_ID = "MQ_INST_1947409023213164_BX3sLZnA";
|
||||
private static final String INSTANCE_ID = "MQ_INST_1748142459508127_BZfpFxuJ";
|
||||
|
||||
/**
|
||||
* 本地
|
||||
*/
|
||||
private static final String LOCAL_INSTANCE_ID = "MQ_INST_1255228665351616_BX3wfyPO";
|
||||
|
||||
private static final String INSTANCE_ID_ONLINE_HD_PRE = "MQ_INST_1947409023213164_BX5N7rwl";
|
||||
private static final String ACCESS_KEY = "LTAI5tJbgtyoHUvofTaeP1RP";
|
||||
private static final String ACCESS_SECRET = "myg755iCx0j4PyQkHMaUVeOr0bw1tA";
|
||||
private static final String INSTANCE_ID_ONLINE_HD_PRE = "MQ_INST_1748142459508127_BZegx2xc";
|
||||
private static final String ACCESS_KEY = "LTAI5tGBwmXwZkMuHK4MudMJ";
|
||||
private static final String ACCESS_SECRET = "bnZoUMRQ9834STgz5E291YrqlBu6yn";
|
||||
/**
|
||||
* 使用AK&SK初始化账号Client
|
||||
* @param accessKeyId
|
||||
@@ -61,6 +61,11 @@ public class RocketMqUtil {
|
||||
return new Client(config);
|
||||
}
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
// initGroup("local");
|
||||
// initOnlineAndHdAndPreGroup("online");
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增测试、开发环境的group
|
||||
* @author chenyupeng
|
||||
|
||||
@@ -0,0 +1,75 @@
|
||||
package com.cool.store.dao;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.cool.store.constants.RedisConstant;
|
||||
import com.cool.store.entity.CloseStoreAccountInfoDO;
|
||||
import com.cool.store.mapper.CloseStoreAccountInfoMapper;
|
||||
import com.cool.store.utils.RedisUtilPool;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import tk.mybatis.mapper.entity.Example;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/9/22 16:54
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Repository
|
||||
@RequiredArgsConstructor
|
||||
public class CloseStoreAccountInfoDAO {
|
||||
private final CloseStoreAccountInfoMapper closeStoreAccountInfoMapper;
|
||||
private final RedisUtilPool redisUtilPool;
|
||||
|
||||
/**
|
||||
* 根据闭店申请id查询
|
||||
* @param closeStoreId 闭店申请id
|
||||
* @return 账号列表
|
||||
*/
|
||||
public List<CloseStoreAccountInfoDO> getByCloseStoreId(Long closeStoreId) {
|
||||
return closeStoreAccountInfoMapper.select(CloseStoreAccountInfoDO.builder().closeStoreId(closeStoreId).build());
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据主键id查询
|
||||
* @param id 主键id
|
||||
* @return 账号信息
|
||||
*/
|
||||
public CloseStoreAccountInfoDO getById(Long id) {
|
||||
return closeStoreAccountInfoMapper.selectByPrimaryKey(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改账号状态
|
||||
* @param id 主键id
|
||||
* @param status 状态
|
||||
*/
|
||||
public void updateStatus(Long id, Integer status) {
|
||||
closeStoreAccountInfoMapper.updateByPrimaryKeySelective(CloseStoreAccountInfoDO.builder().id(id).status(status).build());
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化数据
|
||||
* @param closeStoreId 闭店申请id
|
||||
*/
|
||||
public void init(Long closeStoreId) {
|
||||
String accountInitJson = redisUtilPool.getString(RedisConstant.CLOSE_STORE_ACCOUNT_INIT);
|
||||
List<CloseStoreAccountInfoDO> accountList = JSONObject.parseArray(accountInitJson, CloseStoreAccountInfoDO.class);
|
||||
accountList.forEach(v -> v.setCloseStoreId(closeStoreId));
|
||||
closeStoreAccountInfoMapper.insertBatch(accountList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否存在未关闭的账号
|
||||
* @param closeStoreId 闭店申请id
|
||||
* @return 是否存在
|
||||
*/
|
||||
public boolean existNotCloseAccount(Long closeStoreId) {
|
||||
Example example = new Example(CloseStoreAccountInfoDO.class);
|
||||
example.createCriteria()
|
||||
.andEqualTo("closeStoreId", closeStoreId)
|
||||
.andNotEqualTo("status", 2);
|
||||
return closeStoreAccountInfoMapper.selectCountByExample(example) > 0;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,170 @@
|
||||
package com.cool.store.dao;
|
||||
|
||||
import com.cool.store.entity.CloseStoreAuditRecordDO;
|
||||
import com.cool.store.enums.close.CloseStoreAuditStatusEnum;
|
||||
import com.cool.store.enums.close.RecordTypeEnum;
|
||||
import com.cool.store.mapper.CloseStoreAuditRecordMapper;
|
||||
import com.cool.store.request.close.store.CloseStoreQueryRequest;
|
||||
import com.cool.store.vo.close.store.CloseStoreInfoListVO;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import tk.mybatis.mapper.entity.Example;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/9/22 16:52
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Repository
|
||||
public class CloseStoreAuditRecordDAO {
|
||||
|
||||
@Resource
|
||||
private CloseStoreAuditRecordMapper closeStoreAuditRecordMapper;
|
||||
|
||||
|
||||
/**
|
||||
* 提交新增记录
|
||||
* @param closeStoreId
|
||||
* @param userId
|
||||
* @return
|
||||
*/
|
||||
public int addSubmitRecord(Long closeStoreId, String userId, String userName) {
|
||||
CloseStoreAuditRecordDO closeStoreAuditRecordDO = CloseStoreAuditRecordDO.builder()
|
||||
.closeStoreId(closeStoreId)
|
||||
.recordType(RecordTypeEnum.CLOSE_STORE_RECORD_TYPE_10.getRecordType())
|
||||
.actionRemark("")
|
||||
.finishTaskTime(new Date())
|
||||
.receiveTaskTime(new Date())
|
||||
.handlerUserId(userId)
|
||||
.handlerUserName(userName)
|
||||
.auditStatus(CloseStoreAuditStatusEnum.PASS.getStatus())
|
||||
.handlerUserIds(getUserIds(Collections.singletonList(userId)))
|
||||
.build();
|
||||
return closeStoreAuditRecordMapper.insertSelective(closeStoreAuditRecordDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 提交审批记录
|
||||
* @param closeStoreId
|
||||
* @param userIdList
|
||||
* @return
|
||||
*/
|
||||
public int addApproveRecord(Long closeStoreId, List<String> userIdList) {
|
||||
CloseStoreAuditRecordDO closeStoreAuditRecordDO = CloseStoreAuditRecordDO.builder()
|
||||
.closeStoreId(closeStoreId)
|
||||
.recordType(RecordTypeEnum.CLOSE_STORE_RECORD_TYPE_20.getRecordType())
|
||||
.receiveTaskTime(new Date())
|
||||
.handlerUserIds(getUserIds(userIdList))
|
||||
.auditStatus(CloseStoreAuditStatusEnum.PENDING.getStatus())
|
||||
.build();
|
||||
return closeStoreAuditRecordMapper.insertSelective(closeStoreAuditRecordDO);
|
||||
}
|
||||
|
||||
private String getUserIds(List<String> userIds) {
|
||||
String userIdStr = userIds.stream()
|
||||
.filter(StringUtils::isNotBlank)
|
||||
.distinct()
|
||||
.collect(Collectors.joining(","));
|
||||
return "," + userIdStr + ",";
|
||||
}
|
||||
|
||||
/**
|
||||
* 首次发起流程 添加审批记录
|
||||
*/
|
||||
public void addRecord(Long closeStoreId, String userId, String userName, List<String> userIdList) {
|
||||
//新增提交审批
|
||||
addSubmitRecord(closeStoreId, userId, userName);
|
||||
//新增审批记录
|
||||
addApproveRecord(closeStoreId, userIdList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 审批记录更新
|
||||
* @param closeStoreAuditRecordDO
|
||||
*/
|
||||
public void updateRecord(CloseStoreAuditRecordDO closeStoreAuditRecordDO) {
|
||||
closeStoreAuditRecordMapper.updateByPrimaryKeySelective(closeStoreAuditRecordDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 流程记录列表
|
||||
* @param closeStoreId
|
||||
* @return
|
||||
*/
|
||||
public List<CloseStoreAuditRecordDO> getRecordListByCloseStoreId(Long closeStoreId) {
|
||||
if (closeStoreId == null){
|
||||
return new ArrayList<>();
|
||||
}
|
||||
return closeStoreAuditRecordMapper.getRecordListByCloseStoreId(closeStoreId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据id查询审批记录
|
||||
* @param id 审批记录id
|
||||
* @return 审批记录
|
||||
*/
|
||||
public CloseStoreAuditRecordDO getById(Long id) {
|
||||
return closeStoreAuditRecordMapper.selectByPrimaryKey(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除待处理的审批记录
|
||||
* @param closeStoreId 闭店申请id
|
||||
*/
|
||||
public void deletePendingRecord(Long closeStoreId) {
|
||||
Example example = new Example(CloseStoreAuditRecordDO.class);
|
||||
example.createCriteria()
|
||||
.andEqualTo("closeStoreId", closeStoreId)
|
||||
.andEqualTo("auditStatus", CloseStoreAuditStatusEnum.PENDING.getStatus())
|
||||
.andEqualTo("deleted", 0);
|
||||
closeStoreAuditRecordMapper.updateByExampleSelective(CloseStoreAuditRecordDO.builder().deleted(1).build(), example);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询权限下的闭店申请审批记录
|
||||
* @param request 闭店申请查询Request
|
||||
* @param userId 用户id
|
||||
* @param isAdmin 是管理员权限
|
||||
* @return 闭店申请记录列表VO列表
|
||||
*/
|
||||
public PageInfo<CloseStoreInfoListVO> getCloseStoreAuditList(CloseStoreQueryRequest request, String userId, Boolean isAdmin) {
|
||||
PageHelper.startPage(request.getPageNum(), request.getPageSize());
|
||||
List<CloseStoreInfoListVO> list = closeStoreAuditRecordMapper.getCloseStoreAuditList(request, userId, isAdmin);
|
||||
return new PageInfo<>(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据闭店申请id查询审批记录
|
||||
* @param closeStoreId 闭店申请id
|
||||
* @return 审批记录列表
|
||||
*/
|
||||
public List<CloseStoreAuditRecordDO> getListByCloseStoreId(Long closeStoreId) {
|
||||
Example example = new Example(CloseStoreAuditRecordDO.class);
|
||||
example.createCriteria()
|
||||
.andEqualTo("closeStoreId", closeStoreId)
|
||||
.andEqualTo("deleted", 0);
|
||||
example.setOrderByClause("id ASC");
|
||||
return closeStoreAuditRecordMapper.selectByExample(example);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取待处理的审批记录
|
||||
* @param closeStoreId 闭店申请id
|
||||
* @return 闭店申请审批记录
|
||||
*/
|
||||
public CloseStoreAuditRecordDO getPendingAuditRecord(Long closeStoreId) {
|
||||
Example example = new Example(CloseStoreAuditRecordDO.class);
|
||||
example.createCriteria()
|
||||
.andEqualTo("closeStoreId", closeStoreId)
|
||||
.andEqualTo("auditStatus", CloseStoreAuditStatusEnum.PENDING.getStatus())
|
||||
.andEqualTo("deleted", 0);
|
||||
return closeStoreAuditRecordMapper.selectOneByExample(example);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,75 @@
|
||||
package com.cool.store.dao;
|
||||
|
||||
import com.cool.store.request.close.file.CloseStoreMailAddressRequest;
|
||||
import com.cool.store.entity.CloseStoreFileDetailDO;
|
||||
import com.cool.store.mapper.CloseStoreFileDetailMapper;
|
||||
import com.cool.store.request.close.file.CloseStoreFileApproveRequest;
|
||||
import com.cool.store.request.close.file.CloseStoreMailInfoRequest;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import tk.mybatis.mapper.entity.Example;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 闭店资料详情DAO
|
||||
* </p>
|
||||
*
|
||||
* @author wangff
|
||||
* @since 2025/10/7
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Repository
|
||||
public class CloseStoreFileDetailDAO {
|
||||
private final CloseStoreFileDetailMapper closeStoreFileDetailMapper;
|
||||
|
||||
/**
|
||||
* 新增或编辑闭店资料邮寄地址信息
|
||||
* @param request 闭店资料邮寄地址信息Request
|
||||
* @return boolean
|
||||
*/
|
||||
public boolean insertOrUpdateMailAddress(CloseStoreMailAddressRequest request) {
|
||||
return closeStoreFileDetailMapper.insertOrUpdateMailAddress(request) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增或编辑闭店资料邮寄信息
|
||||
* @param request 闭店资料邮寄信息Request
|
||||
* @param mailStatus 邮寄状态
|
||||
*/
|
||||
public void insertOrUpdateMailInfo(CloseStoreMailInfoRequest request, Boolean mailStatus) {
|
||||
closeStoreFileDetailMapper.insertOrUpdateMailInfo(request, mailStatus);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增或编辑闭店资料信息
|
||||
*
|
||||
* @param request 闭店材料审批Request
|
||||
*/
|
||||
public void insertOrUpdateFileInfoSelective(CloseStoreFileApproveRequest request, Boolean approveComplete) {
|
||||
closeStoreFileDetailMapper.insertOrUpdateFileInfoSelective(request, approveComplete);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据闭店申请id查询
|
||||
* @param closeStoreId 闭店申请id
|
||||
* @return 闭店资料详情
|
||||
*/
|
||||
public CloseStoreFileDetailDO getByCloseStoreId(Long closeStoreId) {
|
||||
return closeStoreFileDetailMapper.selectOne(CloseStoreFileDetailDO.builder().closeStoreId(closeStoreId).build());
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化数据
|
||||
* @param closeStoreId 闭店申请id
|
||||
*/
|
||||
public void init(Long closeStoreId) {
|
||||
CloseStoreFileDetailDO detailDO = CloseStoreFileDetailDO.builder().closeStoreId(closeStoreId).build();
|
||||
closeStoreFileDetailMapper.insertSelective(detailDO);
|
||||
}
|
||||
|
||||
public void updateByCloseStoreIdSelective(CloseStoreFileDetailDO detailDO) {
|
||||
Example example = new Example(CloseStoreFileDetailDO.class);
|
||||
example.createCriteria().andEqualTo("closeStoreId", detailDO.getCloseStoreId());
|
||||
closeStoreFileDetailMapper.updateByExampleSelective(detailDO, example);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,87 @@
|
||||
package com.cool.store.dao;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.cool.store.constants.RedisConstant;
|
||||
import com.cool.store.entity.CloseStoreFileInfoDO;
|
||||
import com.cool.store.enums.close.FileStatusEnum;
|
||||
import com.cool.store.mapper.CloseStoreFileInfoMapper;
|
||||
import com.cool.store.utils.RedisUtilPool;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import tk.mybatis.mapper.entity.Example;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/9/22 16:53
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Repository
|
||||
@RequiredArgsConstructor
|
||||
public class CloseStoreFileInfoDAO {
|
||||
private final CloseStoreFileInfoMapper closeStoreFileInfoMapper;
|
||||
private final RedisUtilPool redisUtilPool;
|
||||
|
||||
/**
|
||||
* 批量更新
|
||||
* @param list 实体列表
|
||||
* @return boolean
|
||||
*/
|
||||
public boolean updateBatch(List<CloseStoreFileInfoDO> list) {
|
||||
return closeStoreFileInfoMapper.updateBatch(list) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据闭店申请id查询
|
||||
* @param closeStoreId 闭店申请id
|
||||
* @return 实体列表
|
||||
*/
|
||||
public List<CloseStoreFileInfoDO> getByCloseStoreId(Long closeStoreId) {
|
||||
return closeStoreFileInfoMapper.select(CloseStoreFileInfoDO.builder().closeStoreId(closeStoreId).build());
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化数据
|
||||
* @param closeStoreId 闭店申请id
|
||||
*/
|
||||
public void init(Long closeStoreId) {
|
||||
String fileInitJson = redisUtilPool.getString(RedisConstant.CLOSE_STORE_FILE_INIT);
|
||||
List<CloseStoreFileInfoDO> list = JSONObject.parseArray(fileInitJson, CloseStoreFileInfoDO.class);
|
||||
list.forEach(v -> v.setCloseStoreId(closeStoreId));
|
||||
closeStoreFileInfoMapper.insertBatch(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 提交材料
|
||||
*/
|
||||
public Boolean updateFile(Long id, String urls) {
|
||||
return closeStoreFileInfoMapper.updateFile(id, urls) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据闭店申请id将所有资料状态改为审批中
|
||||
*/
|
||||
public void updateAllFileStatus(Long closeStoreId) {
|
||||
Example example = new Example(CloseStoreFileInfoDO.class);
|
||||
example.createCriteria()
|
||||
.andEqualTo("closeStoreId", closeStoreId);
|
||||
closeStoreFileInfoMapper.updateByExampleSelective(CloseStoreFileInfoDO.builder().fileStatus(FileStatusEnum.APPROVING.getStatus()).build(), example);
|
||||
}
|
||||
|
||||
public void updateSelective(CloseStoreFileInfoDO closeStoreFileInfoDO) {
|
||||
closeStoreFileInfoMapper.updateByPrimaryKeySelective(closeStoreFileInfoDO);
|
||||
}
|
||||
|
||||
public CloseStoreFileInfoDO getById(Long id) {
|
||||
return closeStoreFileInfoMapper.selectByPrimaryKey(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新材料状态为审批状态
|
||||
* @param closeStoreId 闭店申请id
|
||||
*/
|
||||
public void updateFileStatusToApproveStatus(Long closeStoreId) {
|
||||
closeStoreFileInfoMapper.updateFileStatusToApproveStatus(closeStoreId);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
package com.cool.store.dao;
|
||||
|
||||
import com.cool.store.entity.CloseStoreInfoDO;
|
||||
import com.cool.store.enums.close.CloseStoreStatusEnum;
|
||||
import com.cool.store.mapper.CloseStoreInfoMapper;
|
||||
import com.cool.store.request.close.store.CloseStoreQueryRequest;
|
||||
import com.cool.store.vo.close.store.CloseStoreInfoListVO;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import tk.mybatis.mapper.entity.Example;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/9/22 16:52
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Repository
|
||||
public class CloseStoreInfoDAO {
|
||||
@Resource
|
||||
private CloseStoreInfoMapper closeStoreInfoMapper;
|
||||
|
||||
public int insertSelective(CloseStoreInfoDO closeStoreInfoDO) {
|
||||
return closeStoreInfoMapper.insertSelective(closeStoreInfoDO);
|
||||
}
|
||||
public int updateSelective(CloseStoreInfoDO closeStoreInfoDO) {
|
||||
return closeStoreInfoMapper.updateByPrimaryKeySelective(closeStoreInfoDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据id查询
|
||||
* @param id 主键id
|
||||
* @return 闭店信息
|
||||
*/
|
||||
public CloseStoreInfoDO getById(Long id) {
|
||||
return closeStoreInfoMapper.selectByPrimaryKey(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否存在进行中的闭店申请
|
||||
* @param storeId 门店id
|
||||
* @return 是否存在
|
||||
*/
|
||||
public boolean existOngoingRecord(String storeId) {
|
||||
Example example = new Example(CloseStoreInfoDO.class);
|
||||
example.createCriteria().andEqualTo("storeId", storeId)
|
||||
.andIn("closeStatus", Arrays.asList(CloseStoreStatusEnum.UNDER_APPROVAL.getCloseStoreStatus(), CloseStoreStatusEnum.CLOSING.getCloseStoreStatus()));
|
||||
return closeStoreInfoMapper.selectCountByExample(example) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询闭店申请记录
|
||||
* @param request 闭店申请查询Request
|
||||
* @return 闭店申请记录列表VO
|
||||
*/
|
||||
public PageInfo<CloseStoreInfoListVO> getCloseStoreInfoList(CloseStoreQueryRequest request, List<String> regionIds) {
|
||||
PageHelper.startPage(request.getPageNum(), request.getPageSize());
|
||||
List<CloseStoreInfoListVO> list = closeStoreInfoMapper.getCloseStoreInfoList(request, regionIds);
|
||||
return new PageInfo<>(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据申请人id查询闭店申请记录
|
||||
* @param applyUserId 申请人id
|
||||
* @return 闭店申请记录列表
|
||||
*/
|
||||
public List<CloseStoreInfoDO> getListByApplyUserId(String applyUserId, Integer closeType, String storeId) {
|
||||
Example example = new Example(CloseStoreInfoDO.class);
|
||||
Example.Criteria criteria = example.createCriteria()
|
||||
.andEqualTo("applyUserId", applyUserId);
|
||||
if (StringUtils.isNotBlank(storeId)) {
|
||||
criteria.andEqualTo("storeId", storeId);
|
||||
}
|
||||
if (Objects.nonNull(closeType)) {
|
||||
criteria.andEqualTo("closeType", closeType);
|
||||
}
|
||||
example.setOrderByClause("create_time DESC");
|
||||
return closeStoreInfoMapper.selectByExample(example);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,124 @@
|
||||
package com.cool.store.dao;
|
||||
|
||||
import com.cool.store.entity.CloseStoreRefundInfoDO;
|
||||
import com.cool.store.enums.close.RefundPayStatusEnum;
|
||||
import com.cool.store.mapper.CloseStoreRefundInfoMapper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import tk.mybatis.mapper.entity.Example;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 闭店退款信息DAO
|
||||
* </p>
|
||||
*
|
||||
* @author wangff
|
||||
* @since 2025/10/13
|
||||
*/
|
||||
@Repository
|
||||
@RequiredArgsConstructor
|
||||
public class CloseStoreRefundInfoDAO {
|
||||
private final CloseStoreRefundInfoMapper closeStoreRefundInfoMapper;
|
||||
|
||||
/**
|
||||
* 根据id查询
|
||||
*/
|
||||
public CloseStoreRefundInfoDO getById(Long id) {
|
||||
return closeStoreRefundInfoMapper.selectByPrimaryKey(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新退款状态
|
||||
* @param id id
|
||||
* @param refundStatus 退款状态
|
||||
*/
|
||||
public void updateRefundStatus(Long id, String refundStatus, Date refundTime) {
|
||||
closeStoreRefundInfoMapper.updateByPrimaryKeySelective(CloseStoreRefundInfoDO.builder().id(id).refundStatus(refundStatus).refundTime(refundTime).build());
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据id批量更新退款状态
|
||||
* @param list 退款信息列表
|
||||
*/
|
||||
public void updateRefundStatusBatchById(List<CloseStoreRefundInfoDO> list) {
|
||||
closeStoreRefundInfoMapper.updateRefundStatusBatchById(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
*/
|
||||
public boolean updateSelective(CloseStoreRefundInfoDO closeStoreRefundInfoDO) {
|
||||
return closeStoreRefundInfoMapper.updateByPrimaryKeySelective(closeStoreRefundInfoDO) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增
|
||||
*/
|
||||
public boolean insertSelective(CloseStoreRefundInfoDO closeStoreRefundInfoDO) {
|
||||
return closeStoreRefundInfoMapper.insertSelective(closeStoreRefundInfoDO) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据闭店申请id查询
|
||||
* @param closeStoreId 闭店申请id
|
||||
* @param type 退款类型(闭店子阶段code)
|
||||
* @return 退款信息
|
||||
*/
|
||||
public CloseStoreRefundInfoDO getByCloseStoreId(Long closeStoreId, Integer type) {
|
||||
return closeStoreRefundInfoMapper.selectOne(CloseStoreRefundInfoDO.builder().closeStoreId(closeStoreId).type(type).build());
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据闭店申请id查询列表
|
||||
* @param closeStoreId 闭店申请id
|
||||
* @return 退款信息列表
|
||||
*/
|
||||
public List<CloseStoreRefundInfoDO> getListByCloseStoreId(Long closeStoreId, Integer type) {
|
||||
Example example = new Example(CloseStoreRefundInfoDO.class);
|
||||
Example.Criteria criteria = example.createCriteria()
|
||||
.andEqualTo("closeStoreId", closeStoreId);
|
||||
if (Objects.nonNull(type)) {
|
||||
criteria.andEqualTo("type", type);
|
||||
}
|
||||
example.setOrderByClause("create_time DESC");
|
||||
return closeStoreRefundInfoMapper.selectByExample(example);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据id删除
|
||||
*/
|
||||
public void removeById(Long id) {
|
||||
closeStoreRefundInfoMapper.deleteByPrimaryKey(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否存在非作废状态的记录
|
||||
* @param closeStoreId 闭店申请id
|
||||
* @param type 退款类型
|
||||
* @return 是否存在
|
||||
*/
|
||||
public boolean existEffectiveRecord(Long closeStoreId, Integer type) {
|
||||
Example example = new Example(CloseStoreRefundInfoDO.class);
|
||||
example.createCriteria()
|
||||
.andEqualTo("closeStoreId", closeStoreId)
|
||||
.andNotEqualTo("refundStatus", RefundPayStatusEnum.ABANDON.getStatus())
|
||||
.andEqualTo("type", type);
|
||||
return closeStoreRefundInfoMapper.selectCountByExample(example) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取未完成的退款记录
|
||||
* @return 退款信息
|
||||
*/
|
||||
public List<CloseStoreRefundInfoDO> getUnfinishedRecords() {
|
||||
Example example = new Example(CloseStoreRefundInfoDO.class);
|
||||
example.createCriteria()
|
||||
.andNotIn("refundStatus", Arrays.asList(RefundPayStatusEnum.PAY_SUCCESS.getStatus(), RefundPayStatusEnum.ABANDON.getStatus()));
|
||||
return closeStoreRefundInfoMapper.selectByExample(example);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,209 @@
|
||||
package com.cool.store.dao;
|
||||
|
||||
import cn.hutool.core.collection.CollStreamUtil;
|
||||
import com.alibaba.excel.util.CollectionUtils;
|
||||
import com.cool.store.entity.CloseStoreStageInfoDO;
|
||||
import com.cool.store.enums.ErrorCodeEnum;
|
||||
import com.cool.store.enums.close.CloseStoreStageEnum;
|
||||
import com.cool.store.enums.close.CloseStoreSubStageEnum;
|
||||
import com.cool.store.enums.close.CloseStoreSubStageStatusEnum;
|
||||
import com.cool.store.exception.ServiceException;
|
||||
import com.cool.store.mapper.CloseStoreStageInfoMapper;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import tk.mybatis.mapper.entity.Example;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/9/22 16:54
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Repository
|
||||
public class CloseStoreStageInfoDAO {
|
||||
|
||||
@Resource
|
||||
private CloseStoreStageInfoMapper closeStoreStageInfoMapper;
|
||||
|
||||
/**
|
||||
* 根据闭店阶段查询闭店阶段信息
|
||||
* @param closeStoreId 闭店申请id
|
||||
* @param shopStage 闭店阶段
|
||||
* @param shopSubStage 闭店子阶段,非必填
|
||||
* @return 闭店阶段信息
|
||||
*/
|
||||
public CloseStoreStageInfoDO getByStage(Long closeStoreId, Integer shopStage, Integer shopSubStage) {
|
||||
Example example = new Example(CloseStoreStageInfoDO.class);
|
||||
Example.Criteria criteria = example.createCriteria()
|
||||
.andEqualTo("closeStoreId", closeStoreId)
|
||||
.andEqualTo("shopStage", shopStage)
|
||||
.andEqualTo("deleted", 0);
|
||||
if (Objects.nonNull(shopSubStage)) {
|
||||
criteria.andEqualTo("shopSubStage", shopSubStage);
|
||||
}
|
||||
return closeStoreStageInfoMapper.selectOneByExample(example);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据子阶段查询闭店阶段信息
|
||||
* @param closeStoreId 闭店申请id
|
||||
* @param subStageList 子阶段列表
|
||||
* @return 阶段信息列表
|
||||
*/
|
||||
public List<CloseStoreStageInfoDO> getBySubStage(Long closeStoreId, List<Integer> subStageList) {
|
||||
if (CollectionUtils.isEmpty(subStageList)) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
Example example = new Example(CloseStoreStageInfoDO.class);
|
||||
example.createCriteria()
|
||||
.andEqualTo("closeStoreId", closeStoreId)
|
||||
.andIn("shopSubStage", subStageList)
|
||||
.andEqualTo("deleted", 0);
|
||||
return closeStoreStageInfoMapper.selectByExample(example);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询闭店阶段信息
|
||||
* @param closeStoreId 闭店申请id
|
||||
* @return 阶段信息列表
|
||||
*/
|
||||
public List<CloseStoreStageInfoDO> getList(Long closeStoreId) {
|
||||
Example example = new Example(CloseStoreStageInfoDO.class);
|
||||
example.createCriteria()
|
||||
.andEqualTo("closeStoreId", closeStoreId)
|
||||
.andEqualTo("deleted", 0);
|
||||
example.setOrderByClause("shop_sub_stage ASC");
|
||||
return closeStoreStageInfoMapper.selectByExample(example);
|
||||
}
|
||||
|
||||
/**
|
||||
* 存在未完成的闭店阶段
|
||||
* @param closeStoreId 闭店申请id
|
||||
* @return boolean
|
||||
*/
|
||||
public boolean existUnfinishedStage(Long closeStoreId) {
|
||||
return closeStoreStageInfoMapper.selectCount(
|
||||
CloseStoreStageInfoDO.builder()
|
||||
.closeStoreId(closeStoreId)
|
||||
.isTerminated(0)
|
||||
.deleted(0)
|
||||
.build()
|
||||
) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验闭店阶段流程是否为期望流程
|
||||
* @param closeStoreId 闭店申请id
|
||||
* @param shopStage 闭店阶段
|
||||
* @param shopSubStage 闭店子阶段
|
||||
* @param expectedStageStatus 期望闭店子阶段状态
|
||||
*/
|
||||
public void verifyStage(Long closeStoreId, CloseStoreStageEnum shopStage, CloseStoreSubStageEnum shopSubStage, CloseStoreSubStageStatusEnum... expectedStageStatus) {
|
||||
CloseStoreStageInfoDO stageInfoDO = getByStage(closeStoreId, shopStage.getCloseStoreStage(), Objects.nonNull(shopSubStage) ? shopSubStage.getCloseStoreSubStage() : null);
|
||||
if (Objects.isNull(stageInfoDO)) {
|
||||
throw new RuntimeException("未查询到审批阶段信息");
|
||||
}
|
||||
if (Objects.nonNull(expectedStageStatus) && expectedStageStatus.length > 0) {
|
||||
for (CloseStoreSubStageStatusEnum stageStatus : expectedStageStatus) {
|
||||
if (stageStatus.getShopSubStageStatus().equals(stageInfoDO.getShopSubStageStatus())) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
throw new ServiceException(ErrorCodeEnum.CLOSE_STORE_SUB_STAGE_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化闭店阶段信息
|
||||
* @param closeStoreId 闭店申请id
|
||||
*/
|
||||
public void initStageInfo(Long closeStoreId) {
|
||||
List<CloseStoreStageInfoDO> stageInfoList = new ArrayList<>();
|
||||
LocalDate now = LocalDate.now();
|
||||
for (CloseStoreSubStageEnum subStageEnum : CloseStoreSubStageEnum.values()) {
|
||||
CloseStoreSubStageStatusEnum initStatus = subStageEnum.getInitStatus();
|
||||
CloseStoreStageInfoDO stageInfo = CloseStoreStageInfoDO.builder()
|
||||
.closeStoreId(closeStoreId)
|
||||
.shopStage(subStageEnum.getCloseStoreStageEnum().getCloseStoreStage())
|
||||
.shopSubStage(subStageEnum.getCloseStoreSubStage())
|
||||
.shopSubStageStatus(Objects.nonNull(initStatus) ? initStatus.getShopSubStageStatus() : CloseStoreSubStageStatusEnum.CLOSE_STORE_SUB_STAGE_STATUS_00.getShopSubStageStatus())
|
||||
.isTerminated(0)
|
||||
.planCompleteTime(subStageEnum.getPlanCompleteTime(now))
|
||||
.build();
|
||||
stageInfoList.add(stageInfo);
|
||||
}
|
||||
closeStoreStageInfoMapper.insertBatch(stageInfoList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量更新Selective
|
||||
* @param list 阶段信息列表
|
||||
* @return 是否成功
|
||||
*/
|
||||
public Boolean updateBatchSelective(List<CloseStoreStageInfoDO> list) {
|
||||
if (CollectionUtils.isEmpty(list)) {
|
||||
return false;
|
||||
}
|
||||
return closeStoreStageInfoMapper.updateBatchSelective(list) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新Selective
|
||||
* @param stageInfoDO 阶段信息
|
||||
* @return 是否成功
|
||||
*/
|
||||
public Boolean updateSelective(CloseStoreStageInfoDO stageInfoDO) {
|
||||
return closeStoreStageInfoMapper.updateByPrimaryKeySelective(stageInfoDO) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 已完成阶段数
|
||||
* @param closeStoreId 闭店申请id
|
||||
* @return 已完成阶段数
|
||||
*/
|
||||
public int getCompleteCount(Long closeStoreId) {
|
||||
Example example = new Example(CloseStoreStageInfoDO.class);
|
||||
example.createCriteria()
|
||||
.andEqualTo("closeStoreId", closeStoreId)
|
||||
.andEqualTo("isTerminated", 1)
|
||||
.andEqualTo("deleted", 0);
|
||||
return closeStoreStageInfoMapper.selectCountByExample(example);
|
||||
}
|
||||
|
||||
/**
|
||||
* 已完成阶段数
|
||||
* @param closeStoreIds 闭店申请id列表
|
||||
* @return 已完成阶段数
|
||||
*/
|
||||
public Map<Long, Long> getCompleteCountMap(List<Long> closeStoreIds) {
|
||||
if (CollectionUtils.isEmpty(closeStoreIds)) {
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
Example example = new Example(CloseStoreStageInfoDO.class);
|
||||
example.createCriteria()
|
||||
.andIn("closeStoreId", closeStoreIds)
|
||||
.andEqualTo("isTerminated", 1)
|
||||
.andEqualTo("deleted", 0);
|
||||
example.selectProperties("closeStoreId");
|
||||
List<CloseStoreStageInfoDO> list = closeStoreStageInfoMapper.selectByExample(example);
|
||||
return CollStreamUtil.groupBy(list, CloseStoreStageInfoDO::getCloseStoreId, Collectors.counting());
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改子阶段状态
|
||||
* @param closeStoreId 闭店申请id
|
||||
* @param subStatus 子阶段状态枚举类
|
||||
*/
|
||||
public void updateSubStageStatus(Long closeStoreId, CloseStoreSubStageStatusEnum subStatus) {
|
||||
CloseStoreSubStageEnum subStage = subStatus.getCloseStoreSubStageEnum();
|
||||
Example example = new Example(CloseStoreStageInfoDO.class);
|
||||
example.createCriteria()
|
||||
.andEqualTo("closeStoreId", closeStoreId)
|
||||
.andEqualTo("shopSubStage", subStage.getCloseStoreSubStage())
|
||||
.andEqualTo("deleted", 0);
|
||||
closeStoreStageInfoMapper.updateByExampleSelective(CloseStoreStageInfoDO.builder().shopSubStageStatus(subStatus.getShopSubStageStatus()).build(), example);
|
||||
}
|
||||
}
|
||||
@@ -14,6 +14,10 @@ import org.springframework.stereotype.Repository;
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@Repository
|
||||
public class StoreDao {
|
||||
@@ -146,4 +150,35 @@ public class StoreDao {
|
||||
public boolean updateStoreScore(String storeId, BigDecimal score) {
|
||||
return storeMapper.updateStoreScore(storeId, score) > 0;
|
||||
}
|
||||
/**
|
||||
* 修改门店营业状态
|
||||
* @param storeId 门店id
|
||||
* @param storeStatus 门店营业状态
|
||||
*/
|
||||
public void updateStoreStatus(String storeId, String storeStatus) {
|
||||
storeMapper.updateStoreStatus(storeId,storeStatus);
|
||||
}
|
||||
|
||||
/**
|
||||
* 门店状态改为闭店
|
||||
* @param storeId 门店id
|
||||
* @param closeReason 闭店原因
|
||||
* @param closeNature 闭店性质
|
||||
*/
|
||||
public void closeStore(String storeId, Integer closeReason, Integer closeNature, Date actualCloseData) {
|
||||
if (storeMapper.closeStore(storeId, actualCloseData) > 0) {
|
||||
storeMapper.insertOrUpdateCloseInfo(storeId, closeReason, closeNature);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询最近没有订货记录的门店
|
||||
* @param latestDate 最近订货时间
|
||||
* @param businessTypes 商圈类型
|
||||
* @param inBusinessType 在列表内
|
||||
* @return 门店列表
|
||||
*/
|
||||
public List<StoreDO> getNoOrderStore(LocalDate latestDate, List<String> businessTypes, Boolean inBusinessType) {
|
||||
return storeMapper.getNoOrderStore(latestDate, businessTypes, inBusinessType);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,4 +34,11 @@ public class StoreMasterSignerInfoDAO {
|
||||
List<StoreMasterSignerInfoDO> list = storeMasterSignerInfoMapper.selectByStoreIds(storeIds);
|
||||
return CollStreamUtil.toMap(list, StoreMasterSignerInfoDO::getStoreId, v -> v);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据门店id查询
|
||||
*/
|
||||
public StoreMasterSignerInfoDO getByStoreId(String storeId) {
|
||||
return storeMasterSignerInfoMapper.selectOne(StoreMasterSignerInfoDO.builder().storeId(storeId).build());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.cool.store.mapper;
|
||||
|
||||
import com.cool.store.entity.CloseStoreAccountInfoDO;
|
||||
import tk.mybatis.mapper.common.Mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface CloseStoreAccountInfoMapper extends Mapper<CloseStoreAccountInfoDO> {
|
||||
|
||||
/**
|
||||
* 批量新增
|
||||
* @param list 账号列表
|
||||
* @return int
|
||||
*/
|
||||
int insertBatch(List<CloseStoreAccountInfoDO> list);
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package com.cool.store.mapper;
|
||||
|
||||
import com.cool.store.entity.CloseStoreAuditRecordDO;
|
||||
import com.cool.store.request.close.store.CloseStoreQueryRequest;
|
||||
import com.cool.store.vo.close.store.CloseStoreInfoListVO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import tk.mybatis.mapper.common.Mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface CloseStoreAuditRecordMapper extends Mapper<CloseStoreAuditRecordDO> {
|
||||
|
||||
/**
|
||||
* 根据closeStoreId查询记录
|
||||
* @param closeStoreId
|
||||
* @return
|
||||
*/
|
||||
List<CloseStoreAuditRecordDO> getRecordListByCloseStoreId( @Param("closeStoreId") Long closeStoreId);
|
||||
|
||||
|
||||
/**
|
||||
* 查询权限下的闭店申请审批记录
|
||||
* @param request 闭店申请查询Request
|
||||
* @param userId 用户id
|
||||
* @param isAdmin 是管理员权限
|
||||
* @return 闭店申请记录列表VO列表
|
||||
*/
|
||||
List<CloseStoreInfoListVO> getCloseStoreAuditList(@Param("request") CloseStoreQueryRequest request,
|
||||
@Param("userId") String userId,
|
||||
@Param("isAdmin") Boolean isAdmin);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.cool.store.mapper;
|
||||
|
||||
import com.cool.store.request.close.file.CloseStoreMailAddressRequest;
|
||||
import com.cool.store.entity.CloseStoreFileDetailDO;
|
||||
import com.cool.store.request.close.file.CloseStoreFileApproveRequest;
|
||||
import com.cool.store.request.close.file.CloseStoreMailInfoRequest;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import tk.mybatis.mapper.common.Mapper;
|
||||
|
||||
public interface CloseStoreFileDetailMapper extends Mapper<CloseStoreFileDetailDO> {
|
||||
|
||||
/**
|
||||
* 新增或编辑闭店资料邮寄地址信息
|
||||
* @param request 闭店资料邮寄地址信息Request
|
||||
* @return int
|
||||
*/
|
||||
int insertOrUpdateMailAddress(CloseStoreMailAddressRequest request);
|
||||
|
||||
/**
|
||||
* 新增或编辑闭店资料邮寄信息
|
||||
* @param request 闭店资料邮寄信息Request
|
||||
* @param mailStatus 邮寄状态
|
||||
* @return int
|
||||
*/
|
||||
int insertOrUpdateMailInfo(@Param("request") CloseStoreMailInfoRequest request,
|
||||
@Param("mailStatus") Boolean mailStatus);
|
||||
|
||||
/**
|
||||
* 新增或编辑闭店资料信息
|
||||
* @param request 闭店材料审批Request
|
||||
* @return int
|
||||
*/
|
||||
int insertOrUpdateFileInfoSelective(@Param("request") CloseStoreFileApproveRequest request,
|
||||
@Param("approveComplete") Boolean approveComplete);
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
package com.cool.store.mapper;
|
||||
|
||||
import com.cool.store.entity.CloseStoreFileInfoDO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import tk.mybatis.mapper.common.Mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface CloseStoreFileInfoMapper extends Mapper<CloseStoreFileInfoDO> {
|
||||
|
||||
/**
|
||||
* 批量更新
|
||||
* @param list 实体列表
|
||||
* @return int
|
||||
*/
|
||||
int updateBatch(List<CloseStoreFileInfoDO> list);
|
||||
|
||||
/**
|
||||
* 批量新增
|
||||
* @param list 实体列表
|
||||
* @return int
|
||||
*/
|
||||
int insertBatch(List<CloseStoreFileInfoDO> list);
|
||||
|
||||
/**
|
||||
* 修改材料
|
||||
* @param id 主键id
|
||||
* @param urls 图片列表
|
||||
*/
|
||||
int updateFile(@Param("id") Long id, @Param("urls") String urls);
|
||||
|
||||
/**
|
||||
* 更新材料状态为审批状态
|
||||
* @param closeStoreId 闭店申请id
|
||||
*/
|
||||
void updateFileStatusToApproveStatus(@Param("closeStoreId") Long closeStoreId);
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.cool.store.mapper;
|
||||
|
||||
import com.cool.store.entity.CloseStoreInfoDO;
|
||||
import com.cool.store.request.close.store.CloseStoreQueryRequest;
|
||||
import com.cool.store.vo.close.store.CloseStoreInfoListVO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import tk.mybatis.mapper.common.Mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface CloseStoreInfoMapper extends Mapper<CloseStoreInfoDO> {
|
||||
|
||||
/**
|
||||
* 查询闭店申请记录
|
||||
* @param request 闭店申请查询Request
|
||||
* @return 闭店申请记录列表VO
|
||||
*/
|
||||
List<CloseStoreInfoListVO> getCloseStoreInfoList(@Param("request") CloseStoreQueryRequest request, @Param("regionIds") List<String> regionIds);
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.cool.store.mapper;
|
||||
|
||||
import com.cool.store.entity.CloseStoreRefundInfoDO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import tk.mybatis.mapper.common.Mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface CloseStoreRefundInfoMapper extends Mapper<CloseStoreRefundInfoDO> {
|
||||
|
||||
/**
|
||||
* 批量新增
|
||||
*/
|
||||
void insertBatch(@Param("list") List<CloseStoreRefundInfoDO> list);
|
||||
|
||||
/**
|
||||
* 根据id批量更新退款状态
|
||||
*/
|
||||
void updateRefundStatusBatchById(@Param("list") List<CloseStoreRefundInfoDO> list);
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package com.cool.store.mapper;
|
||||
|
||||
import com.cool.store.entity.CloseStoreStageInfoDO;
|
||||
import tk.mybatis.mapper.common.Mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface CloseStoreStageInfoMapper extends Mapper<CloseStoreStageInfoDO> {
|
||||
|
||||
/**
|
||||
* 批量新增
|
||||
* @param list 阶段信息列表
|
||||
* @return int
|
||||
*/
|
||||
int insertBatch(List<CloseStoreStageInfoDO> list);
|
||||
|
||||
/**
|
||||
* 批量更新Selective
|
||||
* @param list 阶段信息列表
|
||||
* @return int
|
||||
*/
|
||||
int updateBatchSelective(List<CloseStoreStageInfoDO> list);
|
||||
}
|
||||
@@ -8,6 +8,8 @@ import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@Mapper
|
||||
@@ -78,4 +80,34 @@ public interface StoreMapper {
|
||||
* @param score 积分
|
||||
*/
|
||||
int updateStoreScore(String storeId, BigDecimal score);
|
||||
/**
|
||||
* 修改门店营业状态
|
||||
* @param storeId 门店id
|
||||
* @param storeStatus 门店营业状态
|
||||
*/
|
||||
void updateStoreStatus(@Param("storeId") String storeId, @Param("storeStatus") String storeStatus);
|
||||
|
||||
/**
|
||||
* 门店状态改为闭店
|
||||
* @param storeId 门店id
|
||||
*/
|
||||
int closeStore(@Param("storeId") String storeId, @Param("actualCloseData") Date actualCloseData);
|
||||
|
||||
/**
|
||||
* 新增或编辑闭店信息
|
||||
* @param storeId 门店id
|
||||
* @param closeReason 闭店原因
|
||||
* @param closeNature 闭店性质
|
||||
* @return int
|
||||
*/
|
||||
int insertOrUpdateCloseInfo(@Param("storeId") String storeId, @Param("closeReason") Integer closeReason, @Param("closeNature") Integer closeNature);
|
||||
|
||||
/**
|
||||
* 查询最近没有订货记录的门店
|
||||
* @param latestDate 最近订货时间
|
||||
* @param businessTypes 商圈类型
|
||||
* @param inBusinessType 在列表内
|
||||
* @return 门店列表
|
||||
*/
|
||||
List<StoreDO> getNoOrderStore(@Param("latestDate") LocalDate latestDate, @Param("businessTypes") List<String> businessTypes, @Param("inBusinessType") Boolean inBusinessType);
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.cool.store.mapper.store;
|
||||
|
||||
import com.cool.store.entity.store.StoreMasterSignerInfoDO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import tk.mybatis.mapper.common.Mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -10,7 +11,7 @@ import java.util.List;
|
||||
* @author zhangchenbiao
|
||||
* @date 2025-09-23 11:32
|
||||
*/
|
||||
public interface StoreMasterSignerInfoMapper {
|
||||
public interface StoreMasterSignerInfoMapper extends Mapper<StoreMasterSignerInfoDO> {
|
||||
|
||||
/**
|
||||
* 根据门店id查询签约信息
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.cool.store.mapper.CloseStoreAccountInfoMapper">
|
||||
<resultMap id="BaseResultMap" type="com.cool.store.entity.CloseStoreAccountInfoDO">
|
||||
<!--
|
||||
WARNING - @mbg.generated
|
||||
-->
|
||||
<id column="id" jdbcType="BIGINT" property="id" />
|
||||
<result column="close_store_id" jdbcType="BIGINT" property="closeStoreId" />
|
||||
<result column="system_name" jdbcType="VARCHAR" property="systemName" />
|
||||
<result column="system_code" jdbcType="VARCHAR" property="systemCode" />
|
||||
<result column="account_type" jdbcType="VARCHAR" property="accountType" />
|
||||
<result column="status" jdbcType="BIT" property="status" />
|
||||
<result column="close_type" jdbcType="TINYINT" property="closeType" />
|
||||
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
|
||||
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
|
||||
</resultMap>
|
||||
|
||||
<insert id="insertBatch" parameterType="java.util.List">
|
||||
INSERT INTO zxjp_close_store_account_info (close_store_id, system_name, system_code, account_type, status, close_type)
|
||||
VALUES
|
||||
<foreach collection="list" item="item" separator=",">
|
||||
(#{item.closeStoreId}, #{item.systemName}, #{item.systemCode}, #{item.accountType}, #{item.status}, #{item.closeType})
|
||||
</foreach>
|
||||
</insert>
|
||||
</mapper>
|
||||
@@ -0,0 +1,89 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.cool.store.mapper.CloseStoreAuditRecordMapper">
|
||||
<resultMap id="BaseResultMap" type="com.cool.store.entity.CloseStoreAuditRecordDO">
|
||||
<!--
|
||||
WARNING - @mbg.generated
|
||||
-->
|
||||
<id column="id" jdbcType="BIGINT" property="id" />
|
||||
<result column="close_store_id" jdbcType="BIGINT" property="closeStoreId" />
|
||||
<result column="record_type" jdbcType="TINYINT" property="recordType" />
|
||||
<result column="action_remark" jdbcType="VARCHAR" property="actionRemark" />
|
||||
<result column="handler_user_id" jdbcType="VARCHAR" property="handlerUserId" />
|
||||
<result column="handler_user_name" jdbcType="VARCHAR" property="handlerUserName" />
|
||||
<result column="handler_user_ids" jdbcType="VARCHAR" property="handlerUserIds" />
|
||||
<result column="receive_task_time" jdbcType="TIMESTAMP" property="receiveTaskTime" />
|
||||
<result column="finish_task_time" jdbcType="TIMESTAMP" property="finishTaskTime" />
|
||||
<result column="audit_status" jdbcType="TINYINT" property="auditStatus" />
|
||||
<result column="deleted" jdbcType="BIT" property="deleted" />
|
||||
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
|
||||
<result column="updated_time" jdbcType="TIMESTAMP" property="updatedTime" />
|
||||
</resultMap>
|
||||
|
||||
|
||||
<select id="getRecordListByCloseStoreId" resultMap="BaseResultMap">
|
||||
select
|
||||
*
|
||||
from zxjp_close_store_audit_record
|
||||
where close_store_id = #{closeStoreId}
|
||||
</select>
|
||||
|
||||
<select id="getCloseStoreAuditList" resultType="com.cool.store.vo.close.store.CloseStoreInfoListVO">
|
||||
SELECT a.id audit_record_id, a.close_store_id, b.plan_close_data, b.close_type, b.close_status, b.close_store_no, b.store_id
|
||||
<if test="request.queryStore">
|
||||
, c.store_name, c.store_num, c.join_brand, c.store_address
|
||||
</if>
|
||||
<if test="request.querySigner">
|
||||
, d.signer1_name, d.signer1_mobile, d.signer2_name, d.signer2_mobile
|
||||
</if>
|
||||
FROM zxjp_close_store_audit_record a
|
||||
LEFT JOIN zxjp_close_store_info b ON a.close_store_id = b.id
|
||||
<if test="request.queryStore">
|
||||
LEFT JOIN store_${enterpriseId} c ON b.store_id = c.store_id
|
||||
</if>
|
||||
<if test="request.querySigner">
|
||||
LEFT JOIN store_master_signer_info_${enterpriseId} d ON b.store_id = d.store_id
|
||||
</if>
|
||||
<where>
|
||||
<if test="isAdmin == null or !isAdmin">
|
||||
AND handler_user_ids LIKE CONCAT('%,', #{userId}, ',%')
|
||||
</if>
|
||||
<if test="request.auditStatus != null">
|
||||
AND a.audit_status = #{request.auditStatus}
|
||||
</if>
|
||||
<if test="request.closeType != null">
|
||||
AND b.close_type = #{request.closeType}
|
||||
</if>
|
||||
<if test="request.closeStatus != null">
|
||||
<choose>
|
||||
<when test="request.closeStatus == 1">
|
||||
AND (b.close_status = 1 OR b.close_status = 2)
|
||||
</when>
|
||||
<otherwise>
|
||||
AND b.close_status = #{request.closeStatus}
|
||||
</otherwise>
|
||||
</choose>
|
||||
</if>
|
||||
<if test="request.closeStoreNo != null and request.closeStoreNo != ''">
|
||||
AND b.close_store_no LIKE CONCAT('%', #{request.closeStoreNo}, '%')
|
||||
</if>
|
||||
<if test="request.queryStore and request.storeNameOrNum != null and request.storeNameOrNum != ''">
|
||||
AND (c.store_name LIKE CONCAT('%', #{request.storeNameOrNum}, '%') OR c.store_num LIKE CONCAT('%', #{request.storeNameOrNum}, '%'))
|
||||
</if>
|
||||
<if test="request.queryStore and request.joinBrands != null and !request.joinBrands.isEmpty()">
|
||||
AND c.join_brand IN
|
||||
<foreach item="item" collection="request.joinBrands" separator="," open="(" close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="request.querySigner and request.signerName != null and request.signerName != ''">
|
||||
AND (d.signer1_name LIKE CONCAT('%', #{request.signerName}, '%') OR d.signer2_name LIKE CONCAT('%', #{request.signerName}, '%'))
|
||||
</if>
|
||||
<if test="request.querySigner and request.signerMobile != null and request.signerMobile != ''">
|
||||
AND (d.signer1_mobile LIKE CONCAT('%', #{request.signerMobile}, '%') OR d.signer2_mobile LIKE CONCAT('%', #{request.signerMobile}, '%'))
|
||||
</if>
|
||||
AND a.deleted = 0
|
||||
</where>
|
||||
ORDER BY b.create_time DESC
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,70 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.cool.store.mapper.CloseStoreFileDetailMapper">
|
||||
<resultMap id="BaseResultMap" type="com.cool.store.entity.CloseStoreFileDetailDO">
|
||||
<!--
|
||||
WARNING - @mbg.generated
|
||||
-->
|
||||
<id column="id" jdbcType="BIGINT" property="id" />
|
||||
<result column="close_store_id" jdbcType="BIGINT" property="closeStoreId" />
|
||||
<result column="approve_complete" jdbcType="BIT" property="approveComplete" />
|
||||
<result column="mail_number" jdbcType="VARCHAR" property="mailNumber" />
|
||||
<result column="mail_status" jdbcType="BIT" property="mailStatus" />
|
||||
<result column="mail_address" jdbcType="VARCHAR" property="mailAddress" />
|
||||
<result column="mail_addressee" jdbcType="VARCHAR" property="mailAddressee" />
|
||||
<result column="mail_mobile" jdbcType="VARCHAR" property="mailMobile" />
|
||||
<result column="bank_account" jdbcType="VARCHAR" property="bankAccount" />
|
||||
<result column="bank_opening" jdbcType="VARCHAR" property="bankOpening" />
|
||||
<result column="refund_account" jdbcType="VARCHAR" property="refundAccount" />
|
||||
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
|
||||
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
|
||||
<result column="remark" jdbcType="VARCHAR" property="remark" />
|
||||
</resultMap>
|
||||
|
||||
<update id="insertOrUpdateMailAddress" parameterType="com.cool.store.request.close.file.CloseStoreMailAddressRequest">
|
||||
INSERT INTO zxjp_close_store_file_detail
|
||||
(close_store_id, mail_address, mail_addressee, mail_mobile)
|
||||
VALUES
|
||||
(#{closeStoreId}, #{mailAddress}, #{mailAddressee}, #{mailMobile})
|
||||
ON DUPLICATE KEY UPDATE
|
||||
mail_address = VALUES(mail_address),
|
||||
mail_addressee = VALUES(mail_addressee),
|
||||
mail_mobile = VALUES(mail_mobile)
|
||||
</update>
|
||||
|
||||
<update id="insertOrUpdateMailInfo" parameterType="com.cool.store.request.close.file.CloseStoreMailInfoRequest">
|
||||
INSERT INTO zxjp_close_store_file_detail
|
||||
(close_store_id, mail_number, mail_company, mail_status)
|
||||
VALUES
|
||||
(#{request.closeStoreId}, #{request.mailNumber}, #{request.mailCompany}, #{mailStatus})
|
||||
ON DUPLICATE KEY UPDATE
|
||||
mail_number = VALUES(mail_number),
|
||||
mail_company = VALUES(mail_company),
|
||||
mail_status = VALUES(mail_status)
|
||||
</update>
|
||||
|
||||
<update id="insertOrUpdateFileInfoSelective">
|
||||
INSERT INTO zxjp_close_store_file_detail
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
<if test="request.closeStoreId != null">close_store_id,</if>
|
||||
<if test="request.bankAccount != null">bank_account,</if>
|
||||
<if test="request.bankOpening != null">bank_opening,</if>
|
||||
<if test="request.refundAccount != null">refund_account,</if>
|
||||
<if test="approveComplete != null">approve_complete,</if>
|
||||
</trim>
|
||||
<trim prefix="VALUES (" suffix=")" suffixOverrides=",">
|
||||
<if test="request.closeStoreId != null">#{request.closeStoreId},</if>
|
||||
<if test="request.bankAccount != null">#{request.bankAccount},</if>
|
||||
<if test="request.bankOpening != null">#{request.bankOpening},</if>
|
||||
<if test="request.refundAccount != null">#{request.refundAccount},</if>
|
||||
<if test="approveComplete != null">#{approveComplete},</if>
|
||||
</trim>
|
||||
ON DUPLICATE KEY UPDATE
|
||||
<trim suffixOverrides=",">
|
||||
<if test="request.bankAccount != null">bank_account = VALUES(bank_account),</if>
|
||||
<if test="request.bankOpening != null">bank_opening = VALUES(bank_opening),</if>
|
||||
<if test="request.refundAccount != null">refund_account = VALUES(refund_account),</if>
|
||||
<if test="approveComplete != null">approve_complete = VALUES(approve_complete),</if>
|
||||
</trim>
|
||||
</update>
|
||||
</mapper>
|
||||
@@ -0,0 +1,66 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.cool.store.mapper.CloseStoreFileInfoMapper">
|
||||
<resultMap id="BaseResultMap" type="com.cool.store.entity.CloseStoreFileInfoDO">
|
||||
<!--
|
||||
WARNING - @mbg.generated
|
||||
-->
|
||||
<id column="id" jdbcType="BIGINT" property="id" />
|
||||
<result column="close_store_id" jdbcType="BIGINT" property="closeStoreId" />
|
||||
<result column="file_code" jdbcType="VARCHAR" property="fileCode" />
|
||||
<result column="file_name" jdbcType="VARCHAR" property="fileName" />
|
||||
<result column="mail_status" jdbcType="INTEGER" property="mailStatus" />
|
||||
<result column="approve_status" jdbcType="INTEGER" property="approveStatus" />
|
||||
<result column="approve_opinion" jdbcType="INTEGER" property="approveOpinion" />
|
||||
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
|
||||
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
|
||||
<result column="urls" jdbcType="VARCHAR" property="urls" />
|
||||
<result column="file_status" jdbcType="TINYINT" property="fileStatus" />
|
||||
</resultMap>
|
||||
|
||||
<update id="updateBatch" parameterType="java.util.List">
|
||||
UPDATE zxjp_close_store_file_info
|
||||
<trim prefix="SET" suffixOverrides=",">
|
||||
<trim prefix="mail_status = CASE" suffix="END,">
|
||||
<foreach collection="list" item="item">
|
||||
WHEN id = #{item.id} THEN #{item.mailStatus}
|
||||
</foreach>
|
||||
</trim>
|
||||
<trim prefix="approve_status = CASE" suffix="END,">
|
||||
<foreach collection="list" item="item">
|
||||
WHEN id = #{item.id} THEN #{item.approveStatus}
|
||||
</foreach>
|
||||
</trim>
|
||||
<trim prefix="approve_opinion = CASE" suffix="END,">
|
||||
<foreach collection="list" item="item">
|
||||
WHEN id = #{item.id} THEN #{item.approveOpinion}
|
||||
</foreach>
|
||||
</trim>
|
||||
</trim>
|
||||
WHERE id IN
|
||||
<foreach collection="list" item="item" open="(" separator="," close=")">
|
||||
#{item.id}
|
||||
</foreach>
|
||||
</update>
|
||||
|
||||
<insert id="insertBatch" parameterType="java.util.List">
|
||||
INSERT INTO zxjp_close_store_file_info (close_store_id, file_code, file_name, mail_status, approve_status, approve_opinion)
|
||||
VALUES
|
||||
<foreach collection="list" item="item" separator=",">
|
||||
(#{item.closeStoreId}, #{item.fileCode}, #{item.fileName}, #{item.mailStatus}, #{item.approveStatus}, #{item.approveOpinion})
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
<update id="updateFile">
|
||||
UPDATE zxjp_close_store_file_info
|
||||
SET urls = #{urls},
|
||||
file_status = CASE WHEN file_status = 2 THEN 5 WHEN file_status = 5 THEN 5 ELSE 3 END
|
||||
WHERE id = #{id} AND file_status IN (0, 2, 3, 5)
|
||||
</update>
|
||||
|
||||
<update id="updateFileStatusToApproveStatus">
|
||||
UPDATE zxjp_close_store_file_info
|
||||
SET file_status = approve_status
|
||||
WHERE close_store_id = #{closeStoreId}
|
||||
</update>
|
||||
</mapper>
|
||||
@@ -0,0 +1,74 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.cool.store.mapper.CloseStoreInfoMapper">
|
||||
<resultMap id="BaseResultMap" type="com.cool.store.entity.CloseStoreInfoDO">
|
||||
<!--
|
||||
WARNING - @mbg.generated
|
||||
-->
|
||||
<id column="id" jdbcType="BIGINT" property="id" />
|
||||
<result column="close_store_no" jdbcType="VARCHAR" property="closeStoreNo" />
|
||||
<result column="store_id" jdbcType="VARCHAR" property="storeId" />
|
||||
<result column="region_id" jdbcType="BIGINT" property="regionId" />
|
||||
<result column="plan_close_data" jdbcType="DATE" property="planCloseData" />
|
||||
<result column="actual_close_data" jdbcType="DATE" property="actualCloseData" />
|
||||
<result column="close_type" jdbcType="TINYINT" property="closeType" />
|
||||
<result column="close_reason" jdbcType="TINYINT" property="closeReason" />
|
||||
<result column="reason_description" jdbcType="VARCHAR" property="reasonDescription" />
|
||||
<result column="close_status" jdbcType="TINYINT" property="closeStatus" />
|
||||
<result column="supervisor_user_id" jdbcType="VARCHAR" property="supervisorUserId" />
|
||||
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
|
||||
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
|
||||
</resultMap>
|
||||
|
||||
<select id="getCloseStoreInfoList" parameterType="java.util.List" resultType="com.cool.store.vo.close.store.CloseStoreInfoListVO">
|
||||
SELECT b.id close_store_id, b.plan_close_data, b.close_type, b.close_status, b.close_store_no, b.store_id
|
||||
, c.store_name, c.store_num, c.join_brand, c.store_address
|
||||
<if test="request.querySigner">
|
||||
, d.signer1_name, d.signer1_mobile, d.signer2_name, d.signer2_mobile
|
||||
</if>
|
||||
FROM zxjp_close_store_info b
|
||||
LEFT JOIN store_${enterpriseId} c ON b.store_id = c.store_id
|
||||
<if test="request.querySigner">
|
||||
LEFT JOIN store_master_signer_info_${enterpriseId} d ON b.store_id = d.store_id
|
||||
</if>
|
||||
<where>
|
||||
<if test="request.closeType != null">
|
||||
AND b.close_type = #{request.closeType}
|
||||
</if>
|
||||
<if test="request.closeStatus != null">
|
||||
<choose>
|
||||
<when test="request.closeStatus == 1">
|
||||
AND (b.close_status = 1 OR b.close_status = 2)
|
||||
</when>
|
||||
<otherwise>
|
||||
AND b.close_status = #{request.closeStatus}
|
||||
</otherwise>
|
||||
</choose>
|
||||
</if>
|
||||
<if test="request.closeStoreNo != null and request.closeStoreNo != ''">
|
||||
AND b.close_store_no LIKE CONCAT('%', #{request.closeStoreNo}, '%')
|
||||
</if>
|
||||
<if test="request.storeNameOrNum != null and request.storeNameOrNum != ''">
|
||||
AND (c.store_name LIKE CONCAT('%', #{request.storeNameOrNum}, '%') OR c.store_num LIKE CONCAT('%', #{request.storeNameOrNum}, '%'))
|
||||
</if>
|
||||
<if test="request.joinBrands != null and !request.joinBrands.isEmpty()">
|
||||
AND c.join_brand IN
|
||||
<foreach item="item" collection="request.joinBrands" separator="," open="(" close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="request.querySigner and request.signerName != null and request.signerName != ''">
|
||||
AND (d.signer1_name LIKE CONCAT('%', #{request.signerName}, '%') OR d.signer2_name LIKE CONCAT('%', #{request.signerName}, '%'))
|
||||
</if>
|
||||
<if test="request.querySigner and request.signerMobile != null and request.signerMobile != ''">
|
||||
AND (d.signer1_mobile LIKE CONCAT('%', #{request.signerMobile}, '%') OR d.signer2_mobile LIKE CONCAT('%', #{request.signerMobile}, '%'))
|
||||
</if>
|
||||
<if test="regionIds != null and !regionIds.isEmpty()">
|
||||
AND <foreach collection="regionIds" item="regionId" separator=" OR " open="(" close=")">
|
||||
c.region_path LIKE CONCAT('%', #{regionId}, '%')
|
||||
</foreach>
|
||||
</if>
|
||||
</where>
|
||||
ORDER BY b.create_time DESC
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,108 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.cool.store.mapper.CloseStoreRefundInfoMapper">
|
||||
<resultMap id="BaseResultMap" type="com.cool.store.entity.CloseStoreRefundInfoDO">
|
||||
<!--
|
||||
WARNING - @mbg.generated
|
||||
-->
|
||||
<id column="id" jdbcType="BIGINT" property="id" />
|
||||
<result column="close_store_id" jdbcType="BIGINT" property="closeStoreId" />
|
||||
<result column="refund_no" jdbcType="VARCHAR" property="refundNo" />
|
||||
<result column="type" jdbcType="INTEGER" property="type" />
|
||||
<result column="refund_status" jdbcType="BIT" property="refundStatus" />
|
||||
<result column="refund_order_no" jdbcType="VARCHAR" property="refundOrderNo" />
|
||||
<result column="refund_time" jdbcType="TIMESTAMP" property="refundTime" />
|
||||
<result column="invoice_title" jdbcType="VARCHAR" property="invoiceTitle" />
|
||||
<result column="submitter_id" jdbcType="VARCHAR" property="submitterId" />
|
||||
<result column="submitter_name" jdbcType="VARCHAR" property="submitterName" />
|
||||
<result column="refund_reason" jdbcType="VARCHAR" property="refundReason" />
|
||||
<result column="refund_type" jdbcType="VARCHAR" property="refundType" />
|
||||
<result column="refund_project" jdbcType="VARCHAR" property="refundProject" />
|
||||
<result column="remark" jdbcType="VARCHAR" property="remark" />
|
||||
<result column="business_code" jdbcType="VARCHAR" property="businessCode" />
|
||||
<result column="business_name" jdbcType="VARCHAR" property="businessName" />
|
||||
<result column="business_account" jdbcType="VARCHAR" property="businessAccount" />
|
||||
<result column="expense_type_code" jdbcType="VARCHAR" property="expenseTypeCode" />
|
||||
<result column="expense_apply_time" jdbcType="DATE" property="expenseApplyTime" />
|
||||
<result column="expected_amount" jdbcType="DECIMAL" property="expectedAmount" />
|
||||
<result column="actual_amount" jdbcType="DECIMAL" property="actualAmount" />
|
||||
<result column="deduct_amount" jdbcType="DECIMAL" property="deductAmount" />
|
||||
<result column="deduct_reason" jdbcType="VARCHAR" property="deductReason" />
|
||||
<result column="close_reason" jdbcType="TINYINT" property="closeReason" />
|
||||
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
|
||||
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
|
||||
<result column="account_number" jdbcType="VARCHAR" property="accountNumber" />
|
||||
<result column="bank_name" jdbcType="VARCHAR" property="bankName" />
|
||||
<result column="bank_branch_no" jdbcType="VARCHAR" property="bankBranchNo" />
|
||||
</resultMap>
|
||||
|
||||
<insert id="insertBatch" parameterType="java.util.List">
|
||||
INSERT INTO zxjp_close_store_refund_info (
|
||||
close_store_id,
|
||||
refund_no,
|
||||
type,
|
||||
refund_status,
|
||||
refund_order_no,
|
||||
refund_time,
|
||||
invoice_title,
|
||||
submitter_id,
|
||||
submitter_name,
|
||||
refund_reason,
|
||||
refund_type,
|
||||
refund_project,
|
||||
remark,
|
||||
business_code,
|
||||
business_name,
|
||||
business_account,
|
||||
expense_type_code,
|
||||
expense_apply_time,
|
||||
expected_amount,
|
||||
actual_amount,
|
||||
deduct_amount,
|
||||
deduct_reason,
|
||||
close_reason,
|
||||
) VALUES
|
||||
<foreach collection="list" item="item" separator=",">
|
||||
(
|
||||
#{item.closeStoreId,jdbcType=BIGINT},
|
||||
#{item.refundNo,jdbcType=VARCHAR},
|
||||
#{item.type,jdbcType=INTEGER},
|
||||
#{item.refundStatus,jdbcType=BIT},
|
||||
#{item.refundOrderNo,jdbcType=VARCHAR},
|
||||
#{item.refundTime,jdbcType=TIMESTAMP},
|
||||
#{item.invoiceTitle,jdbcType=VARCHAR},
|
||||
#{item.submitterId,jdbcType=VARCHAR},
|
||||
#{item.submitterName,jdbcType=VARCHAR},
|
||||
#{item.refundReason,jdbcType=VARCHAR},
|
||||
#{item.refundType,jdbcType=VARCHAR},
|
||||
#{item.refundProject,jdbcType=VARCHAR},
|
||||
#{item.remark,jdbcType=VARCHAR},
|
||||
#{item.businessCode,jdbcType=VARCHAR},
|
||||
#{item.businessName,jdbcType=VARCHAR},
|
||||
#{item.businessAccount,jdbcType=VARCHAR},
|
||||
#{item.expenseTypeCode,jdbcType=VARCHAR},
|
||||
#{item.expenseApplyTime,jdbcType=DATE},
|
||||
#{item.expectedAmount,jdbcType=DECIMAL},
|
||||
#{item.actualAmount,jdbcType=DECIMAL},
|
||||
#{item.deductAmount,jdbcType=DECIMAL},
|
||||
#{item.deductReason,jdbcType=VARCHAR},
|
||||
#{item.closeReason,jdbcType=TINYINT},
|
||||
)
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
<update id="updateRefundStatusBatchById" parameterType="java.util.List">
|
||||
UPDATE zxjp_close_store_refund_info
|
||||
<trim prefix="SET" suffixOverrides=",">
|
||||
<trim prefix="refund_status = CASE" suffix="END,">
|
||||
<foreach collection="list" item="item">
|
||||
WHEN id = #{item.id} THEN #{item.refundStatus}
|
||||
</foreach>
|
||||
</trim>
|
||||
</trim>
|
||||
WHERE id IN
|
||||
<foreach collection="list" item="item" open="(" separator="," close=")">
|
||||
#{item.id}
|
||||
</foreach>
|
||||
</update>
|
||||
</mapper>
|
||||
@@ -0,0 +1,64 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.cool.store.mapper.CloseStoreStageInfoMapper">
|
||||
<resultMap id="BaseResultMap" type="com.cool.store.entity.CloseStoreStageInfoDO">
|
||||
<!--
|
||||
WARNING - @mbg.generated
|
||||
-->
|
||||
<id column="id" jdbcType="BIGINT" property="id" />
|
||||
<result column="close_store_id" jdbcType="BIGINT" property="closeStoreId" />
|
||||
<result column="shop_stage" jdbcType="TINYINT" property="shopStage" />
|
||||
<result column="shop_sub_stage" jdbcType="INTEGER" property="shopSubStage" />
|
||||
<result column="shop_sub_stage_status" jdbcType="INTEGER" property="shopSubStageStatus" />
|
||||
<result column="is_terminated" jdbcType="BIT" property="isTerminated" />
|
||||
<result column="plan_complete_time" jdbcType="VARCHAR" property="planCompleteTime" />
|
||||
<result column="actual_complete_time" jdbcType="VARCHAR" property="actualCompleteTime" />
|
||||
<result column="remark" jdbcType="VARCHAR" property="remark" />
|
||||
<result column="audit_id" jdbcType="BIGINT" property="auditId" />
|
||||
<result column="deleted" jdbcType="BIT" property="deleted" />
|
||||
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
|
||||
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
|
||||
</resultMap>
|
||||
|
||||
<insert id="insertBatch" parameterType="java.util.List">
|
||||
INSERT INTO zxjp_close_store_stage_info (close_store_id, shop_stage, shop_sub_stage, shop_sub_stage_status, is_terminated, plan_complete_time, actual_complete_time, remark, audit_id)
|
||||
VALUES
|
||||
<foreach collection="list" item="item" separator=",">
|
||||
(#{item.closeStoreId}, #{item.shopStage}, #{item.shopSubStage}, #{item.shopSubStageStatus}, #{item.isTerminated}, #{item.planCompleteTime}, #{item.actualCompleteTime}, #{item.remark}, #{item.auditId})
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
<update id="updateBatchSelective" parameterType="java.util.List">
|
||||
<foreach collection="list" item="item" separator=";">
|
||||
UPDATE zxjp_close_store_stage_info
|
||||
<set>
|
||||
<if test="item.shopStage != null">
|
||||
shop_stage = #{item.shopStage},
|
||||
</if>
|
||||
<if test="item.shopSubStage != null">
|
||||
shop_sub_stage = #{item.shopSubStage},
|
||||
</if>
|
||||
<if test="item.shopSubStageStatus != null">
|
||||
shop_sub_stage_status = #{item.shopSubStageStatus},
|
||||
</if>
|
||||
<if test="item.isTerminated != null">
|
||||
is_terminated = #{item.isTerminated},
|
||||
</if>
|
||||
<if test="item.planCompleteTime != null and item.planCompleteTime != ''">
|
||||
plan_complete_time = #{item.planCompleteTime},
|
||||
</if>
|
||||
<if test="item.actualCompleteTime != null and item.actualCompleteTime != ''">
|
||||
actual_complete_time = #{item.actualCompleteTime},
|
||||
</if>
|
||||
<if test="item.remark != null and item.remark != ''">
|
||||
remark = #{item.remark},
|
||||
</if>
|
||||
<if test="item.auditId != null">
|
||||
audit_id = #{item.auditId},
|
||||
</if>
|
||||
update_time = NOW()
|
||||
</set>
|
||||
WHERE id = #{item.id}
|
||||
</foreach>
|
||||
</update>
|
||||
</mapper>
|
||||
@@ -285,4 +285,46 @@
|
||||
ON DUPLICATE KEY UPDATE
|
||||
score = values(score)
|
||||
</insert>
|
||||
|
||||
<update id="updateStoreStatus">
|
||||
UPDATE store_${enterpriseId}
|
||||
SET store_status = #{storeStatus}
|
||||
WHERE store_id = #{storeId} AND is_delete = 'effective'
|
||||
</update>
|
||||
|
||||
<update id="closeStore">
|
||||
UPDATE store_${enterpriseId}
|
||||
SET store_status = 'closed',
|
||||
close_store_time = #{actualCloseData}
|
||||
WHERE store_id = #{storeId} AND is_delete = 'effective' AND store_status != 'closed'
|
||||
</update>
|
||||
|
||||
<insert id="insertOrUpdateCloseInfo">
|
||||
INSERT INTO store_extend_info_${enterpriseId}(store_id, close_reason, close_nature)
|
||||
VALUES(#{storeId}, #{closeReason}, #{closeNature})
|
||||
ON DUPLICATE KEY UPDATE
|
||||
close_reason = VALUES(close_reason),
|
||||
close_nature = VALUES(close_nature)
|
||||
</insert>
|
||||
|
||||
<select id="getNoOrderStore" resultType="com.cool.store.entity.StoreDO">
|
||||
SELECT * FROM store_${enterpriseId} a
|
||||
LEFT JOIN store_extend_info_${enterpriseId} b ON a.store_id = b.store_id
|
||||
WHERE a.is_delete = 'effective' AND a.store_status != 'closed'
|
||||
AND b.latest_order_time IS NOT NULL AND b.latest_order_time < #{latestDate}
|
||||
<choose>
|
||||
<when test="inBusinessType != null and inBusinessType">
|
||||
AND b.business_type IN
|
||||
<foreach item="item" collection="businessTypes" separator="," open="(" close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
</when>
|
||||
<otherwise>
|
||||
AND (b.business_type IS NULL OR b.business_type NOT IN
|
||||
<foreach item="item" collection="businessTypes" separator="," open="(" close=")">
|
||||
#{item}
|
||||
</foreach>)
|
||||
</otherwise>
|
||||
</choose>
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user