feat(crm): 初始化客户与订单模块基础代码

- 新增客户信息实体类及对应业务对象、控制器、服务实现
- 新增正式订单主表与明细表相关实体类和业务逻辑
- 新增订单操作追溯表结构定义
- 配置MyBatis映射文件及基础CRUD接口
- 实现客户与订单的分页查询、导出、新增、修改、删除功能
- 添加Excel导入导出支持及相关VO转换配置
This commit is contained in:
2025-12-15 16:11:16 +08:00
parent d809fc489d
commit e67bb0525b
51 changed files with 3409 additions and 1 deletions

View File

@@ -0,0 +1,71 @@
package com.klp.crm.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
/**
* 客户信息业务对象 crm_customer
*
* @author klp
* @date 2025-12-15
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class CrmCustomerBo extends BaseEntity {
/**
* 客户ID主键
*/
private String customerId;
/**
* 客户统一编码
*/
private String customerCode;
/**
* 公司名称
*/
private String companyName;
/**
* 联系人
*/
private String contactPerson;
/**
* 联系方式(电话/微信等)
*/
private String contactWay;
/**
* 所属行业
*/
private String industry;
/**
* 客户等级VIP/普通)
*/
private String customerLevel;
/**
* 客户地址(需权限查看)
*/
private String address;
/**
* 银行信息多条需权限查看JSON格式存储
*/
private String bankInfo;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,94 @@
package com.klp.crm.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* 正式订单主业务对象 crm_order
*
* @author klp
* @date 2025-12-15
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class CrmOrderBo extends BaseEntity {
/**
* 订单ID主键
*/
private String orderId;
/**
* 订单编号
*/
private String orderCode;
/**
* 订单类型pre-预订单formal-正式订单
*/
private Long orderType;
/**
* 关联客户ID
*/
private String customerId;
/**
* 订单总金额
*/
private BigDecimal orderAmount;
/**
* 销售员
*/
private String salesman;
/**
* 交货日期
*/
private Date deliveryDate;
/**
* 预订单状态
*/
private Long preOrderStatus;
/**
* 审核人
*/
private String auditUser;
/**
* 审核时间
*/
private Date auditTime;
/**
* 订单状态
*/
private Long orderStatus;
/**
* 财务状态
*/
private Long financeStatus;
/**
* 未结款数额
*/
private BigDecimal unpaidAmount;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,62 @@
package com.klp.crm.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.math.BigDecimal;
/**
* 正式订单明细业务对象 crm_order_item
*
* @author klp
* @date 2025-12-15
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class CrmOrderItemBo extends BaseEntity {
/**
* 正式订单明细ID主键
*/
private String itemId;
/**
* 关联正式订单ID外键
*/
private String orderId;
/**
* 产品类型
*/
private String productType;
/**
* 规格要求
*/
private String specRequire;
/**
* 产品数量
*/
private Long productNum;
/**
* 特殊要求
*/
private String specialRequire;
/**
* 明细金额(单商品金额)
*/
private BigDecimal itemAmount;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,68 @@
package com.klp.crm.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* 订单操作追溯业务对象 crm_order_operation_trace
*
* @author klp
* @date 2025-12-15
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class CrmOrderOperationTraceBo extends BaseEntity {
/**
* 追溯ID主键
*/
private String traceId;
/**
* 关联订单ID外键
*/
private String orderId;
/**
* 操作类型(如:创建/修改/审核/取消/发货等)
*/
private String operationType;
/**
* 操作前状态
*/
private String oldStatus;
/**
* 操作后状态
*/
private String newStatus;
/**
* 操作内容(如:修改了交货日期)
*/
private String operationContent;
/**
* 操作人
*/
private String operator;
/**
* 操作时间
*/
private Date operationTime;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,99 @@
package com.klp.crm.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* 销售合同业务对象 crm_sales_contract
*
* @author klp
* @date 2025-12-15
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class CrmSalesContractBo extends BaseEntity {
/**
* 合同ID主键
*/
private String contractId;
/**
* 合同编号
*/
private String contractCode;
/**
* 合同类型
*/
private Long contractType;
/**
* 关联客户ID外键
*/
private String customerId;
/**
* 合同总金额
*/
private BigDecimal totalAmount;
/**
* 交货日期
*/
private Date deliveryDate;
/**
* 合同状态
*/
private Long contractStatus;
/**
* 录入人
*/
private String createUser;
/**
* 评审人
*/
private String reviewUser;
/**
* 评审时间
*/
private Date reviewTime;
/**
* 审核人
*/
private String auditUser;
/**
* 审核时间
*/
private Date auditTime;
/**
* 下发人
*/
private String issueUser;
/**
* 下发时间
*/
private Date issueTime;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,83 @@
package com.klp.crm.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* 销售异议管理业务对象 crm_sales_objection
*
* @author klp
* @date 2025-12-15
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class CrmSalesObjectionBo extends BaseEntity {
/**
* 异议ID主键
*/
private String objectionId;
/**
* 异议编号
*/
private String objectionCode;
/**
* 关联订单ID外键
*/
private String orderId;
/**
* 关联客户ID外键
*/
private String customerId;
/**
* 异议类型(如:质量异议)
*/
private String objectionType;
/**
* 异议内容
*/
private String objectionContent;
/**
* 异议状态
*/
private Long objectionStatus;
/**
* 处理内容
*/
private String handleContent;
/**
* 处理人
*/
private String handleUser;
/**
* 处理时间
*/
private Date handleTime;
/**
* 结案时间
*/
private Date closeTime;
/**
* 备注
*/
private String remark;
}