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

@@ -0,0 +1,36 @@
<?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.gear.oa.mapper.GearCustomerMapper">
<resultMap type="com.gear.oa.domain.GearCustomer" id="GearCustomerResult">
<result property="customerId" column="customer_id"/>
<result property="name" column="name"/>
<result property="followUpStatus" column="follow_up_status"/>
<result property="contactLastTime" column="contact_last_time"/>
<result property="contactLastContent" column="contact_last_content"/>
<result property="contactNextTime" column="contact_next_time"/>
<result property="ownerUserId" column="owner_user_id"/>
<result property="ownerTime" column="owner_time"/>
<result property="dealStatus" column="deal_status"/>
<result property="mobile" column="mobile"/>
<result property="telephone" column="telephone"/>
<result property="qq" column="qq"/>
<result property="wechat" column="wechat"/>
<result property="email" column="email"/>
<result property="areaId" column="area_id"/>
<result property="detailAddress" column="detail_address"/>
<result property="industryId" column="industry_id"/>
<result property="level" column="level"/>
<result property="source" column="source"/>
<result property="remark" column="remark"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
<result property="delFlag" column="del_flag"/>
</resultMap>
</mapper>

View File

@@ -0,0 +1,32 @@
<?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.gear.oa.mapper.GearJournalMapper">
<resultMap type="com.gear.oa.domain.GearJournal" id="GearJournalResult">
<result property="journalId" column="journal_id"/>
<result property="journalDate" column="journal_date"/>
<result property="summary" column="summary"/>
<result property="transType" column="trans_type"/>
<result property="counterpart" column="counterpart"/>
<result property="incomeAmount" column="income_amount"/>
<result property="expenseAmount" column="expense_amount"/>
<result property="balanceAmount" column="balance_amount"/>
<result property="remark" column="remark"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
<result property="delFlag" column="del_flag"/>
</resultMap>
<select id="getLastBalance" resultType="java.math.BigDecimal">
SELECT balance_amount
FROM gear_journal
WHERE del_flag = 0
ORDER BY create_time DESC
LIMIT 1
</select>
</mapper>

View File

@@ -0,0 +1,36 @@
<?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.gear.oa.mapper.GearOrderDetailMapper">
<resultMap type="com.gear.oa.domain.GearOrderDetail" id="GearOrderDetailResult">
<result property="detailId" column="detail_id"/>
<result property="orderId" column="order_id"/>
<result property="productId" column="product_id"/>
<result property="quantity" column="quantity"/>
<result property="unit" column="unit"/>
<result property="remark" column="remark"/>
<result property="delFlag" column="del_flag"/>
<result property="createTime" column="create_time"/>
<result property="createBy" column="create_by"/>
<result property="updateTime" column="update_time"/>
<result property="updateBy" column="update_by"/>
<result property="taxPrice" column="tax_price"/>
<result property="noTaxPrice" column="no_tax_price"/>
</resultMap>
<select id="selectVoListByOrderId" resultType="com.gear.oa.domain.vo.GearOrderDetailVo">
SELECT * FROM gear_order_detail WHERE order_id = #{orderId} AND del_flag = 0
</select>
<select id="selectVoPagePlus" resultType="com.gear.oa.domain.vo.GearOrderDetailVo">
SELECT
d.*,
p.product_name AS productName,
p.product_code AS productCode
FROM gear_order_detail d
LEFT JOIN gear_product p ON d.product_id = p.product_id AND p.del_flag = 0
${ew.customSqlSegment}
</select>
</mapper>

View File

@@ -0,0 +1,44 @@
<?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.gear.oa.mapper.GearOrderMapper">
<resultMap type="com.gear.oa.domain.GearOrder" id="GearOrderResult">
<result property="orderId" column="order_id"/>
<result property="orderCode" column="order_code"/>
<result property="customerId" column="customer_id"/>
<result property="salesManager" column="sales_manager"/>
<result property="orderStatus" column="order_status"/>
<result property="tradeType" column="trade_type"/>
<result property="remark" column="remark"/>
<result property="delFlag" column="del_flag"/>
<result property="createTime" column="create_time"/>
<result property="createBy" column="create_by"/>
<result property="updateTime" column="update_time"/>
<result property="updateBy" column="update_by"/>
<result property="taxAmount" column="tax_amount"/>
<result property="noTaxAmount" column="no_tax_amount"/>
</resultMap>
<select id="selectVoPlusPage" resultType="com.gear.oa.domain.vo.GearOrderVo">
select o.order_id,
o.order_code,
o.customer_id,
o.sales_manager,
o.order_status,
o.remark,
o.del_flag,
o.create_time,
o.create_by,
o.update_time,
o.update_by,
o.tax_amount,
o.no_tax_amount,
c.name as customerName
from gear_order o
left join gear_customer c on o.customer_id = c.customer_id and c.del_flag = 0
${ew.customSqlSegment}
</select>
</mapper>

View File

@@ -0,0 +1,22 @@
<?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.gear.oa.mapper.GearOtherIncomeMapper">
<resultMap type="com.gear.oa.domain.GearOtherIncome" id="GearOtherIncomeResult">
<result property="otherIncomeId" column="other_income_id"/>
<result property="incomeDate" column="income_date"/>
<result property="incomeType" column="income_type"/>
<result property="amount" column="amount"/>
<result property="source" column="source"/>
<result property="remark" column="remark"/>
<result property="delFlag" column="del_flag"/>
<result property="createTime" column="create_time"/>
<result property="createBy" column="create_by"/>
<result property="updateTime" column="update_time"/>
<result property="updateBy" column="update_by"/>
</resultMap>
</mapper>

View File

@@ -0,0 +1,45 @@
<?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.gear.oa.mapper.GearPayableMapper">
<resultMap type="com.gear.oa.domain.GearPayable" id="GearPayableResult">
<result property="payableId" column="payable_id"/>
<result property="supplierId" column="supplier_id"/>
<result property="orderId" column="order_id"/>
<result property="dueDate" column="due_date"/>
<result property="amount" column="amount"/>
<result property="paidAmount" column="paid_amount"/>
<result property="balanceAmount" column="balance_amount"/>
<result property="status" column="status"/>
<result property="delFlag" column="del_flag"/>
<result property="remark" column="remark"/>
<result property="createTime" column="create_time"/>
<result property="createBy" column="create_by"/>
<result property="updateTime" column="update_time"/>
<result property="updateBy" column="update_by"/>
</resultMap>
<select id="selectVoPagePlus" resultType="com.gear.oa.domain.vo.GearPayableVo">
select p.payable_id,
p.supplier_id,
s.name as supplierName,
p.order_id,
p.due_date,
p.amount,
p.paid_amount,
p.balance_amount,
p.status,
p.del_flag,
p.remark,
p.create_time,
p.create_by,
p.update_time,
p.update_by
from gear_payable p
left join gear_supplier s on p.supplier_id = s.supplier_id and s.del_flag = 0
${ew.customSqlSegment}
</select>
</mapper>

View File

@@ -0,0 +1,45 @@
<?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.gear.oa.mapper.GearReceivableMapper">
<resultMap type="com.gear.oa.domain.GearReceivable" id="GearReceivableResult">
<result property="receivableId" column="receivable_id"/>
<result property="customerId" column="customer_id"/>
<result property="orderId" column="order_id"/>
<result property="dueDate" column="due_date"/>
<result property="amount" column="amount"/>
<result property="paidAmount" column="paid_amount"/>
<result property="balanceAmount" column="balance_amount"/>
<result property="status" column="status"/>
<result property="delFlag" column="del_flag"/>
<result property="remark" column="remark"/>
<result property="createTime" column="create_time"/>
<result property="createBy" column="create_by"/>
<result property="updateTime" column="update_time"/>
<result property="updateBy" column="update_by"/>
</resultMap>
<select id="selectVoPagePlus" resultType="com.gear.oa.domain.vo.GearReceivableVo">
select r.receivable_id,
r.customer_id,
r.order_id,
r.due_date,
r.amount,
r.paid_amount,
r.balance_amount,
r.status,
r.del_flag,
r.remark,
r.create_time,
r.create_by,
r.update_time,
r.update_by,
c.name as customerName
from gear_receivable r
left join gear_customer c on r.customer_id = c.customer_id and c.del_flag = 0
${ew.customSqlSegment}
</select>
</mapper>

View File

@@ -0,0 +1,23 @@
<?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.gear.oa.mapper.GearReturnExchangeMapper">
<resultMap type="com.gear.oa.domain.GearReturnExchange" id="GearReturnExchangeResult">
<result property="returnExchangeId" column="return_exchange_id"/>
<result property="orderDetailId" column="order_detail_id"/>
<result property="customerId" column="customer_id"/>
<result property="type" column="type"/>
<result property="reason" column="reason"/>
<result property="status" column="status"/>
<result property="amount" column="amount"/>
<result property="delFlag" column="del_flag"/>
<result property="createTime" column="create_time"/>
<result property="createBy" column="create_by"/>
<result property="updateTime" column="update_time"/>
<result property="updateBy" column="update_by"/>
</resultMap>
</mapper>