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