ERPTurbo_Server/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/OrderCostMapper.xml
shenyifei 1ba1d3ddd1 feat(expense): 添加花销统计记录管理功能
- 新增 ExpenseRecordController 控制器,提供花销记录的增删改查接口
- 实现 ExpenseRecordServiceI 接口及其实现类 ExpenseRecordServiceImpl
- 添加 ExpenseRecordCreateCmd、ExpenseRecordUpdateCmd 等命令对象
- 添加 ExpenseRecordListQry、ExpenseRecordShowQry 查询对象
- 定义 ExpenseRecordVO 用于返回花销统计记录数据
- 在业务模块中新增对应的 assembler、executor、gateway 和 convert 类
- 扩展 CostTypeEnum 枚举,增加 EXPENSE_TYPE 类型
- 更新 Dealer 相关实体和 DO,支持 includeFreightFlag 字段
- 添加 ExpenseCostDO 和 ExpenseProvisionDO 数据库实体映射
- 修改 PurchaseOrderFinalApproveCmdExe,集成花销计提逻辑
- 为 ExpenseRecordDO 添加 totalVehicleCount 等字段并忽略部分映射
- 在 CostListQry 中添加 name 查询字段
- 新增 ExpenseRecord 表及相关字段定义
2025-12-19 17:29:47 +08:00

103 lines
3.7 KiB
XML

<?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.xunhong.erp.turbo.biz.infrastructure.mapper.OrderCostMapper">
<resultMap id="BaseResultMap"
type="com.xunhong.erp.turbo.biz.infrastructure.entity.OrderCostDO">
<result property="orderCostId" column="order_cost_id"/>
<result property="orderId" column="order_id"/>
<result property="costId" column="cost_id"/>
<result property="costItemIds" column="cost_item_ids"
typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>
<result property="name" column="name"/>
<result property="price" column="price"/>
<result property="unit" column="unit"/>
<result property="count" column="count"/>
<result property="belong" column="belong"/>
<result property="principal" column="principal"/>
<result property="type" column="type"/>
<result property="isPaid" column="is_paid"/>
<result property="poState" column="po_state"/>
<result property="createdAt" column="created_at"/>
<result property="updatedAt" column="updated_at"/>
<result property="isDelete" column="is_delete"/>
<result property="version" column="version"/>
</resultMap>
<resultMap id="SelectByOrderIdResultMap"
type="com.xunhong.erp.turbo.biz.infrastructure.entity.OrderCostDO">
<result property="orderCostId" column="order_cost_id"/>
<result property="orderId" column="order_id"/>
<result property="costId" column="cost_id"/>
<result property="name" column="name"/>
<result property="price" column="price"/>
<result property="unit" column="unit"/>
<result property="count" column="count"/>
<result property="belong" column="belong"/>
<result property="principal" column="principal"/>
<result property="type" column="type"/>
<result property="isPaid" column="is_paid"/>
<result property="poState" column="po_state"/>
<association property="orderVehicleDO"
javaType="com.xunhong.erp.turbo.biz.infrastructure.entity.OrderVehicleDO">
<result property="vehicleId" column="vehicle_id"/>
<result property="vehicleNo" column="vehicle_no"/>
<result property="dealerId" column="dealer_id"/>
<result property="dealerName" column="dealer_name"/>
</association>
</resultMap>
<select id="selectPage"
resultType="com.xunhong.erp.turbo.biz.infrastructure.entity.OrderCostDO"
resultMap="BaseResultMap">
SELECT
oc.*,
po.state as po_state
FROM order_cost oc
LEFT JOIN order_vehicle ov ON oc.order_id = ov.order_id AND ov.is_delete
= 0
LEFT JOIN purchase_order po ON oc.order_id = po.order_id AND
po.is_delete = 0
<where>
oc.is_delete = 0
<if test="query.createdBy != null">
AND po.created_by = #{query.createdBy}
</if>
<if test="query.orderId != null">
AND po.order_id = #{query.orderId}
</if>
<if test="query.poStates != null and query.poStates.size() > 0">
AND po.state IN
<foreach collection="query.poStates" item="state" open="("
separator="," close=")">
#{state.type}
</foreach>
</if>
<if test="ew != null">
<if test="ew.nonEmptyOfWhere">
AND
</if>
${ew.sqlSegment}
</if>
</where>
</select>
<select id="selectByOrderId"
resultType="com.xunhong.erp.turbo.biz.infrastructure.entity.OrderCostDO"
resultMap="SelectByOrderIdResultMap">
SELECT
oc.*,
po.state as po_state,
ov.vehicle_id,
ov.vehicle_no,
ov.dealer_id,
ov.dealer_name
FROM order_cost oc
LEFT JOIN order_vehicle ov ON oc.order_id = ov.order_id AND ov.is_delete = 0
LEFT JOIN purchase_order po ON oc.order_id = po.order_id AND
po.is_delete = 0
WHERE oc.order_id = #{orderId}
AND oc.name = #{name}
AND oc.is_delete = 0
</select>
</mapper>