feat(oa): 新增客户管理和资金日记账功能

- 添加客户管理相关实体、控制器、服务和映射
- 实现客户信息的增删改查功能
- 添加资金日记账相关实体、控制器、服务和映射
- 实现资金日记账的增删改查功能
- 优化数据库连接配置
- 更新 BOM 项关联的表名
This commit is contained in:
2025-09-02 13:53:52 +08:00
parent c50adfd648
commit bb28f02aa8
68 changed files with 4726 additions and 6 deletions

View File

@@ -27,7 +27,7 @@ public class GearBomItemBo extends BaseEntity {
private Long itemId;
/**
* 关联 wms_bom.bom_id
* 关联 Gear_bom.bom_id
*/
private Long bomId;

View File

@@ -0,0 +1,134 @@
package com.gear.oa.domain.bo;
import com.gear.common.core.validate.AddGroup;
import com.gear.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.util.Date;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.gear.common.core.domain.BaseEntity;
import org.springframework.format.annotation.DateTimeFormat;
/**
* CRM 客户业务对象 gear_customer
*
* @author Joshi
* @date 2025-09-02
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class GearCustomerBo extends BaseEntity {
/**
* 编号,主键自增
*/
private Long customerId;
/**
* 客户名称
*/
private String name;
/**
* 跟进状态
*/
private Integer followUpStatus;
/**
* 最后跟进时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date contactLastTime;
/**
* 最后跟进内容
*/
private String contactLastContent;
/**
* 下次联系时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date contactNextTime;
/**
* 负责人的用户编号
*/
private Long ownerUserId;
/**
* 成为负责人的时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date ownerTime;
/**
* 成交状态
*/
private Integer dealStatus;
/**
* 手机
*/
private String mobile;
/**
* 电话
*/
private String telephone;
/**
* QQ
*/
private String qq;
/**
* 微信
*/
private String wechat;
/**
* 邮箱
*/
private String email;
/**
* 地区编号
*/
private Long areaId;
/**
* 详细地址
*/
private String detailAddress;
/**
* 所属行业
*/
private Long industryId;
/**
* 客户等级
*/
private Long level;
/**
* 客户来源
*/
private Long source;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,76 @@
package com.gear.oa.domain.bo;
import com.gear.common.core.validate.AddGroup;
import com.gear.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.util.Date;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.gear.common.core.domain.BaseEntity;
import org.springframework.format.annotation.DateTimeFormat;
/**
* 资金日记账业务对象 gear_journal
*
* @author Joshi
* @date 2025-09-02
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class GearJournalBo extends BaseEntity {
/**
* 主键ID
*/
private Long journalId;
/**
* 日期
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date journalDate;
/**
* 摘要
*/
private String summary;
/**
* 收支类型
*/
private String transType;
/**
* 对方户名
*/
private String counterpart;
/**
* 收入金额
*/
private BigDecimal incomeAmount;
/**
* 支出金额
*/
private BigDecimal expenseAmount;
/**
* 余额
*/
private BigDecimal balanceAmount;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,72 @@
package com.gear.oa.domain.bo;
import com.gear.common.core.validate.AddGroup;
import com.gear.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.util.Date;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import com.gear.common.core.domain.BaseEntity;
/**
* 订单主业务对象 gear_order
*
* @author Joshi
* @date 2025-09-02
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class GearOrderBo extends BaseEntity {
/**
* 订单ID
*/
private Long orderId;
/**
* 订单编号
*/
private String orderCode;
/**
* 客户ID
*/
private Long customerId;
/**
* 销售经理
*/
private String salesManager;
/**
* 订单状态0=新建1=生产中2=已完成3=已取消)
*/
private Integer orderStatus;
/**
* 0内贸, 1外贸
*/
private Integer tradeType;
/**
* 备注
*/
private String remark;
/**
* 含税金额
*/
private BigDecimal taxAmount;
/**
* 无税金额
*/
private BigDecimal noTaxAmount;
}

View File

@@ -0,0 +1,67 @@
package com.gear.oa.domain.bo;
import com.gear.common.core.validate.AddGroup;
import com.gear.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.util.Date;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import com.gear.common.core.domain.BaseEntity;
/**
* 订单明细业务对象 gear_order_detail
*
* @author Joshi
* @date 2025-09-02
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class GearOrderDetailBo extends BaseEntity {
/**
* 明细ID
*/
private Long detailId;
/**
* 订单ID
*/
private Long orderId;
/**
* 产品ID
*/
private Long productId;
/**
* 产品数量
*/
private Long quantity;
/**
* 单位
*/
private String unit;
/**
* 备注
*/
private String remark;
/**
* 含税单价
*/
private BigDecimal taxPrice;
/**
* 无税单价
*/
private BigDecimal noTaxPrice;
}

View File

@@ -0,0 +1,61 @@
package com.gear.oa.domain.bo;
import com.gear.common.core.validate.AddGroup;
import com.gear.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.util.Date;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.gear.common.core.domain.BaseEntity;
/**
* 其他收入业务对象 gear_other_income
*
* @author Joshi
* @date 2025-09-02
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class GearOtherIncomeBo extends BaseEntity {
/**
* 其他收入ID主键
*/
private Long otherIncomeId;
/**
* 收入日期
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date incomeDate;
/**
* 收入类型
*/
private String incomeType;
/**
* 收入金额
*/
private BigDecimal amount;
/**
* 收入来源
*/
private String source;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,76 @@
package com.gear.oa.domain.bo;
import com.gear.common.core.validate.AddGroup;
import com.gear.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.util.Date;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.gear.common.core.domain.BaseEntity;
/**
* 应付款管理(宽松版)业务对象 gear_payable
*
* @author Joshi
* @date 2025-09-02
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class GearPayableBo extends BaseEntity {
/**
* 应付ID主键
*/
private Long payableId;
/**
* 供应商ID
*/
private Long supplierId;
/**
* 订单ID
*/
private Long orderId;
/**
* 到期日
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date dueDate;
/**
* 应付金额(可为负数用于调整)
*/
private BigDecimal amount;
/**
* 已付金额(可为负数用于冲销)
*/
private BigDecimal paidAmount;
/**
* 未付金额
*/
private BigDecimal balanceAmount;
/**
* 状态
*/
private String status;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,76 @@
package com.gear.oa.domain.bo;
import com.gear.common.core.validate.AddGroup;
import com.gear.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.util.Date;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.gear.common.core.domain.BaseEntity;
/**
* 应收款管理(宽松版)业务对象 gear_receivable
*
* @author Joshi
* @date 2025-09-02
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class GearReceivableBo extends BaseEntity {
/**
* 应收ID主键
*/
private Long receivableId;
/**
* 客户ID
*/
private Long customerId;
/**
* 订单ID
*/
private Long orderId;
/**
* 到期日
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date dueDate;
/**
* 应收金额(可为负数用于调整)
*/
private BigDecimal amount;
/**
* 已收金额(可为负数用于冲销)
*/
private BigDecimal paidAmount;
/**
* 未收金额
*/
private BigDecimal balanceAmount;
/**
* 状态
*/
private String status;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,62 @@
package com.gear.oa.domain.bo;
import com.gear.common.core.validate.AddGroup;
import com.gear.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.util.Date;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import com.gear.common.core.domain.BaseEntity;
/**
* 退换货管理业务对象 gear_return_exchange
*
* @author Joshi
* @date 2025-09-02
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class GearReturnExchangeBo extends BaseEntity {
/**
* 退换货ID主键
*/
private Long returnExchangeId;
/**
* 关联订单明细ID
*/
private Long orderDetailId;
/**
* 客户ID
*/
private Long customerId;
/**
* 类型
*/
private String type;
/**
* 原因
*/
private String reason;
/**
* 状态
*/
private String status;
/**
* 涉及金额
*/
private BigDecimal amount;
}