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

@@ -28,7 +28,7 @@ public class GearBomItem extends BaseEntity {
@TableId(value = "item_id")
private Long itemId;
/**
* 关联 wms_bom.bom_id
* 关联 Gear_bom.bom_id
*/
private Long bomId;
/**

View File

@@ -0,0 +1,114 @@
package com.gear.oa.domain;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
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;
/**
* CRM 客户对象 gear_customer
*
* @author Joshi
* @date 2025-09-02
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("gear_customer")
public class GearCustomer extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 编号,主键自增
*/
@TableId(value = "customer_id")
private Long customerId;
/**
* 客户名称
*/
private String name;
/**
* 跟进状态
*/
private Integer followUpStatus;
/**
* 最后跟进时间
*/
private Date contactLastTime;
/**
* 最后跟进内容
*/
private String contactLastContent;
/**
* 下次联系时间
*/
private Date contactNextTime;
/**
* 负责人的用户编号
*/
private Long ownerUserId;
/**
* 成为负责人的时间
*/
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;
/**
* 是否删除
*/
@TableLogic
private Integer delFlag;
}

View File

@@ -0,0 +1,71 @@
package com.gear.oa.domain;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.gear.common.core.domain.BaseEntity;
/**
* 资金日记账对象 gear_journal
*
* @author Joshi
* @date 2025-09-02
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("gear_journal")
public class GearJournal extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 主键ID
*/
@TableId(value = "journal_id")
private Long journalId;
/**
* 日期
*/
private Date journalDate;
/**
* 摘要
*/
private String summary;
/**
* 收支类型
*/
private String transType;
/**
* 对方户名
*/
private String counterpart;
/**
* 收入金额
*/
private BigDecimal incomeAmount;
/**
* 支出金额
*/
private BigDecimal expenseAmount;
/**
* 余额
*/
private BigDecimal balanceAmount;
/**
* 备注
*/
private String remark;
/**
* 删除标志0正常 1删除
*/
@TableLogic
private Integer delFlag;
}

View File

@@ -0,0 +1,69 @@
package com.gear.oa.domain;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
import java.math.BigDecimal;
import java.math.BigDecimal;
import com.gear.common.core.domain.BaseEntity;
/**
* 订单主对象 gear_order
*
* @author Joshi
* @date 2025-09-02
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("gear_order")
public class GearOrder extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 订单ID
*/
@TableId(value = "order_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;
/**
* 删除标志0=正常1=已删除)
*/
@TableLogic
private Integer delFlag;
/**
* 含税金额
*/
private BigDecimal taxAmount;
/**
* 无税金额
*/
private BigDecimal noTaxAmount;
}

View File

@@ -0,0 +1,65 @@
package com.gear.oa.domain;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
import java.math.BigDecimal;
import java.math.BigDecimal;
import com.gear.common.core.domain.BaseEntity;
/**
* 订单明细对象 gear_order_detail
*
* @author Joshi
* @date 2025-09-02
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("gear_order_detail")
public class GearOrderDetail extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 明细ID
*/
@TableId(value = "detail_id")
private Long detailId;
/**
* 订单ID
*/
private Long orderId;
/**
* 产品ID
*/
private Long productId;
/**
* 产品数量
*/
private Long quantity;
/**
* 单位
*/
private String unit;
/**
* 备注
*/
private String remark;
/**
* 删除标志0=正常1=已删除)
*/
@TableLogic
private Integer delFlag;
/**
* 含税单价
*/
private BigDecimal taxPrice;
/**
* 无税单价
*/
private BigDecimal noTaxPrice;
}

View File

@@ -0,0 +1,59 @@
package com.gear.oa.domain;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
import java.math.BigDecimal;
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)
@TableName("gear_other_income")
public class GearOtherIncome extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 其他收入ID主键
*/
@TableId(value = "other_income_id")
private Long otherIncomeId;
/**
* 收入日期
*/
private Date incomeDate;
/**
* 收入类型
*/
private String incomeType;
/**
* 收入金额
*/
private BigDecimal amount;
/**
* 收入来源
*/
private String source;
/**
* 备注
*/
private String remark;
/**
* 删除标志0=正常1=已删除)
*/
@TableLogic
private Integer delFlag;
}

View File

@@ -0,0 +1,71 @@
package com.gear.oa.domain;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
import java.math.BigDecimal;
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)
@TableName("gear_payable")
public class GearPayable extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 应付ID主键
*/
@TableId(value = "payable_id")
private Long payableId;
/**
* 供应商ID
*/
private Long supplierId;
/**
* 订单ID
*/
private Long orderId;
/**
* 到期日
*/
private Date dueDate;
/**
* 应付金额(可为负数用于调整)
*/
private BigDecimal amount;
/**
* 已付金额(可为负数用于冲销)
*/
private BigDecimal paidAmount;
/**
* 未付金额
*/
private BigDecimal balanceAmount;
/**
* 状态
*/
private String status;
/**
* 删除标志0=正常1=已删除)
*/
@TableLogic
private Integer delFlag;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,71 @@
package com.gear.oa.domain;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
import java.math.BigDecimal;
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)
@TableName("gear_receivable")
public class GearReceivable extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 应收ID主键
*/
@TableId(value = "receivable_id")
private Long receivableId;
/**
* 客户ID
*/
private Long customerId;
/**
* 订单ID
*/
private Long orderId;
/**
* 到期日
*/
private Date dueDate;
/**
* 应收金额(可为负数用于调整)
*/
private BigDecimal amount;
/**
* 已收金额(可为负数用于冲销)
*/
private BigDecimal paidAmount;
/**
* 未收金额
*/
private BigDecimal balanceAmount;
/**
* 状态
*/
private String status;
/**
* 删除标志0=正常1=已删除)
*/
@TableLogic
private Integer delFlag;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,61 @@
package com.gear.oa.domain;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
import java.math.BigDecimal;
import java.math.BigDecimal;
import com.gear.common.core.domain.BaseEntity;
/**
* 退换货管理对象 gear_return_exchange
*
* @author Joshi
* @date 2025-09-02
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("gear_return_exchange")
public class GearReturnExchange extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 退换货ID主键
*/
@TableId(value = "return_exchange_id")
private Long returnExchangeId;
/**
* 关联订单明细ID
*/
private Long orderDetailId;
/**
* 客户ID
*/
private Long customerId;
/**
* 类型
*/
private String type;
/**
* 原因
*/
private String reason;
/**
* 状态
*/
private String status;
/**
* 涉及金额
*/
private BigDecimal amount;
/**
* 删除标志0=正常1=已删除)
*/
@TableLogic
private Integer delFlag;
}

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;
}

View File

@@ -28,9 +28,9 @@ public class GearBomItemVo {
private Long itemId;
/**
* 关联 wms_bom.bom_id
* 关联 Gear_bom.bom_id
*/
@ExcelProperty(value = "关联 wms_bom.bom_id")
@ExcelProperty(value = "关联 Gear_bom.bom_id")
private Long bomId;
/**

View File

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

View File

@@ -0,0 +1,86 @@
package com.gear.oa.domain.vo;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.gear.common.annotation.ExcelDictFormat;
import com.gear.common.convert.ExcelDictConvert;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* 资金日记账视图对象 gear_journal
*
* @author Joshi
* @date 2025-09-02
*/
@Data
@ExcelIgnoreUnannotated
public class GearJournalVo {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@ExcelProperty(value = "主键ID")
private Long journalId;
/**
* 日期
*/
@ExcelProperty(value = "日期")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date journalDate;
/**
* 摘要
*/
@ExcelProperty(value = "摘要")
private String summary;
/**
* 收支类型
*/
@ExcelProperty(value = "收支类型")
private String transType;
/**
* 对方户名
*/
@ExcelProperty(value = "对方户名")
private String counterpart;
/**
* 收入金额
*/
@ExcelProperty(value = "收入金额")
private BigDecimal incomeAmount;
/**
* 支出金额
*/
@ExcelProperty(value = "支出金额")
private BigDecimal expenseAmount;
/**
* 余额
*/
@ExcelProperty(value = "余额")
private BigDecimal balanceAmount;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}

View File

@@ -0,0 +1,79 @@
package com.gear.oa.domain.vo;
import java.math.BigDecimal;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.gear.common.annotation.ExcelDictFormat;
import com.gear.common.convert.ExcelDictConvert;
import lombok.Data;
import java.util.Date;
import org.springframework.format.annotation.DateTimeFormat;
/**
* 订单明细视图对象 gear_order_detail
*
* @author Joshi
* @date 2025-09-02
*/
@Data
@ExcelIgnoreUnannotated
public class GearOrderDetailVo {
private static final long serialVersionUID = 1L;
/**
* 明细ID
*/
@ExcelProperty(value = "明细ID")
private Long detailId;
/**
* 订单ID
*/
@ExcelProperty(value = "订单ID")
private Long orderId;
/**
* 产品ID
*/
@ExcelProperty(value = "产品ID")
private Long productId;
/**
* 产品数量
*/
@ExcelProperty(value = "产品数量")
private Long quantity;
/**
* 单位
*/
@ExcelProperty(value = "单位")
private String unit;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
/**
* 含税单价
*/
@ExcelProperty(value = "含税单价")
private BigDecimal taxPrice;
/**
* 无税单价
*/
@ExcelProperty(value = "无税单价")
private BigDecimal noTaxPrice;
//产品名称和产品code
private String productName;
private String productCode;
}

View File

@@ -0,0 +1,84 @@
package com.gear.oa.domain.vo;
import java.math.BigDecimal;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.gear.common.annotation.ExcelDictFormat;
import com.gear.common.convert.ExcelDictConvert;
import lombok.Data;
import java.util.Date;
import org.springframework.format.annotation.DateTimeFormat;
/**
* 订单主视图对象 gear_order
*
* @author Joshi
* @date 2025-09-02
*/
@Data
@ExcelIgnoreUnannotated
public class GearOrderVo {
private static final long serialVersionUID = 1L;
/**
* 订单ID
*/
@ExcelProperty(value = "订单ID")
private Long orderId;
/**
* 订单编号
*/
@ExcelProperty(value = "订单编号")
private String orderCode;
/**
* 客户ID
*/
@ExcelProperty(value = "客户ID")
private Long customerId;
/**
* 销售经理
*/
@ExcelProperty(value = "销售经理")
private String salesManager;
/**
* 订单状态0=新建1=生产中2=已完成3=已取消)
*/
@ExcelProperty(value = "订单状态", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "0==新建1=生产中2=已完成3=已取消")
private Integer orderStatus;
/**
* 0内贸, 1外贸
*/
@ExcelProperty(value = "0内贸, 1外贸")
private Integer tradeType;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
/**
* 含税金额
*/
@ExcelProperty(value = "含税金额")
private BigDecimal taxAmount;
/**
* 无税金额
*/
@ExcelProperty(value = "无税金额")
private BigDecimal noTaxAmount;
private String customerName;
}

View File

@@ -0,0 +1,69 @@
package com.gear.oa.domain.vo;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.gear.common.annotation.ExcelDictFormat;
import com.gear.common.convert.ExcelDictConvert;
import lombok.Data;
import java.util.Date;
import org.springframework.format.annotation.DateTimeFormat;
/**
* 其他收入视图对象 gear_other_income
*
* @author Joshi
* @date 2025-09-02
*/
@Data
@ExcelIgnoreUnannotated
public class GearOtherIncomeVo {
private static final long serialVersionUID = 1L;
/**
* 其他收入ID主键
*/
@ExcelProperty(value = "其他收入ID", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "主=键")
private Long otherIncomeId;
/**
* 收入日期
*/
@ExcelProperty(value = "收入日期")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date incomeDate;
/**
* 收入类型
*/
@ExcelProperty(value = "收入类型")
private String incomeType;
/**
* 收入金额
*/
@ExcelProperty(value = "收入金额")
private BigDecimal amount;
/**
* 收入来源
*/
@ExcelProperty(value = "收入来源")
private String source;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}

View File

@@ -0,0 +1,91 @@
package com.gear.oa.domain.vo;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.gear.common.annotation.ExcelDictFormat;
import com.gear.common.convert.ExcelDictConvert;
import lombok.Data;
import java.util.Date;
import org.springframework.format.annotation.DateTimeFormat;
/**
* 应付款管理(宽松版)视图对象 gear_payable
*
* @author Joshi
* @date 2025-09-02
*/
@Data
@ExcelIgnoreUnannotated
public class GearPayableVo {
private static final long serialVersionUID = 1L;
/**
* 应付ID主键
*/
@ExcelProperty(value = "应付ID", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "主=键")
private Long payableId;
/**
* 供应商ID
*/
@ExcelProperty(value = "供应商ID")
private Long supplierId;
/**
* 订单ID
*/
@ExcelProperty(value = "订单ID")
private Long orderId;
/**
* 到期日
*/
@ExcelProperty(value = "到期日")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date dueDate;
/**
* 应付金额(可为负数用于调整)
*/
@ExcelProperty(value = "应付金额", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "可=为负数用于调整")
private BigDecimal amount;
/**
* 已付金额(可为负数用于冲销)
*/
@ExcelProperty(value = "已付金额", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "可=为负数用于冲销")
private BigDecimal paidAmount;
/**
* 未付金额
*/
@ExcelProperty(value = "未付金额")
private BigDecimal balanceAmount;
/**
* 状态
*/
@ExcelProperty(value = "状态")
private String status;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
//供应商名称
private String supplierName;
}

View File

@@ -0,0 +1,90 @@
package com.gear.oa.domain.vo;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.gear.common.annotation.ExcelDictFormat;
import com.gear.common.convert.ExcelDictConvert;
import lombok.Data;
import java.util.Date;
import org.springframework.format.annotation.DateTimeFormat;
/**
* 应收款管理(宽松版)视图对象 gear_receivable
*
* @author Joshi
* @date 2025-09-02
*/
@Data
@ExcelIgnoreUnannotated
public class GearReceivableVo {
private static final long serialVersionUID = 1L;
/**
* 应收ID主键
*/
@ExcelProperty(value = "应收ID", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "主=键")
private Long receivableId;
/**
* 客户ID
*/
@ExcelProperty(value = "客户ID")
private Long customerId;
/**
* 订单ID
*/
@ExcelProperty(value = "订单ID")
private Long orderId;
/**
* 到期日
*/
@ExcelProperty(value = "到期日")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date dueDate;
/**
* 应收金额(可为负数用于调整)
*/
@ExcelProperty(value = "应收金额", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "可=为负数用于调整")
private BigDecimal amount;
/**
* 已收金额(可为负数用于冲销)
*/
@ExcelProperty(value = "已收金额", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "可=为负数用于冲销")
private BigDecimal paidAmount;
/**
* 未收金额
*/
@ExcelProperty(value = "未收金额")
private BigDecimal balanceAmount;
/**
* 状态
*/
@ExcelProperty(value = "状态")
private String status;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
//客户名称
private String customerName;
}

View File

@@ -0,0 +1,71 @@
package com.gear.oa.domain.vo;
import java.math.BigDecimal;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.gear.common.annotation.ExcelDictFormat;
import com.gear.common.convert.ExcelDictConvert;
import lombok.Data;
import java.util.Date;
import org.springframework.format.annotation.DateTimeFormat;
/**
* 退换货管理视图对象 gear_return_exchange
*
* @author Joshi
* @date 2025-09-02
*/
@Data
@ExcelIgnoreUnannotated
public class GearReturnExchangeVo {
private static final long serialVersionUID = 1L;
/**
* 退换货ID主键
*/
@ExcelProperty(value = "退换货ID", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "主=键")
private Long returnExchangeId;
/**
* 关联订单明细ID
*/
@ExcelProperty(value = "关联订单明细ID")
private Long orderDetailId;
/**
* 客户ID
*/
@ExcelProperty(value = "客户ID")
private Long customerId;
/**
* 类型
*/
@ExcelProperty(value = "类型")
private String type;
/**
* 原因
*/
@ExcelProperty(value = "原因")
private String reason;
/**
* 状态
*/
@ExcelProperty(value = "状态")
private String status;
/**
* 涉及金额
*/
@ExcelProperty(value = "涉及金额")
private BigDecimal amount;
}