✨ 支持应收账单异步作废
This commit is contained in:
@@ -24,6 +24,8 @@
|
||||
<result property="writtenOffAmount" column="written_off_amount"/>
|
||||
<result property="unwrittenAmount" column="unwritten_amount"/>
|
||||
<result property="status" column="status"/>
|
||||
<result property="voidTaskId" column="void_task_id"/>
|
||||
<result property="voidTaskError" column="void_task_error"/>
|
||||
<result property="generationStatus" column="generation_status"/>
|
||||
<result property="billVersion" column="bill_version"/>
|
||||
<result property="bankAccountName" column="bank_account_name"/>
|
||||
@@ -111,7 +113,11 @@
|
||||
</sql>
|
||||
|
||||
<select id="selectArBillList" resultMap="ArBillResult">
|
||||
select b.* from ar_bill b
|
||||
select b.*, (select vt.task_id from ar_bill_void_task vt
|
||||
where vt.ar_bill_id = b.ar_bill_id and vt.status = 'WAITING' limit 1) as void_task_id,
|
||||
(select case when vt.status = 'FAILED' then vt.error_message else null end
|
||||
from ar_bill_void_task vt where vt.ar_bill_id = b.ar_bill_id order by vt.task_id desc limit 1) as void_task_error
|
||||
from ar_bill b
|
||||
<include refid="arBillListFilter"/>
|
||||
order by create_time desc, ar_bill_id desc
|
||||
</select>
|
||||
@@ -246,6 +252,9 @@
|
||||
confirmed_time = case when #{status} = 'CONFIRMED' then sysdate() else confirmed_time end
|
||||
where ar_bill_id = #{arBillId}
|
||||
and status = #{fromStatus}
|
||||
and (#{status} = 'VOID' or not exists (
|
||||
select 1 from ar_bill_void_task vt where vt.ar_bill_id = #{arBillId} and vt.status = 'WAITING'
|
||||
))
|
||||
</update>
|
||||
|
||||
<update id="updateArBillAmounts">
|
||||
@@ -257,6 +266,9 @@
|
||||
update_time = sysdate()
|
||||
where ar_bill_id = #{arBillId}
|
||||
and status = #{fromStatus}
|
||||
and not exists (
|
||||
select 1 from ar_bill_void_task vt where vt.ar_bill_id = #{arBillId} and vt.status = 'WAITING'
|
||||
)
|
||||
</update>
|
||||
|
||||
<update id="updateArBillProgress">
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
<?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.bms.receivable.mapper.ArBillVoidTaskMapper">
|
||||
<resultMap id="Task" type="com.bms.receivable.domain.ArBillVoidTask">
|
||||
<id property="taskId" column="task_id"/>
|
||||
<result property="arBillId" column="ar_bill_id"/>
|
||||
<result property="fromStatus" column="from_status"/>
|
||||
<result property="reason" column="reason"/>
|
||||
<result property="status" column="status"/>
|
||||
<result property="errorMessage" column="error_message"/>
|
||||
<result property="requestId" column="request_id"/>
|
||||
<result property="createBy" column="create_by"/>
|
||||
<result property="createUserId" column="create_user_id"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="finishedAt" column="finished_at"/>
|
||||
</resultMap>
|
||||
<insert id="insert" useGeneratedKeys="true" keyProperty="taskId">
|
||||
insert into ar_bill_void_task (ar_bill_id, from_status, reason, status, request_id, create_by, create_user_id, create_time)
|
||||
values (#{arBillId}, #{fromStatus}, #{reason}, 'WAITING', #{requestId}, #{createBy}, #{createUserId}, sysdate())
|
||||
</insert>
|
||||
<select id="selectById" resultMap="Task">select * from ar_bill_void_task where task_id = #{taskId}</select>
|
||||
<select id="selectByIdForUpdate" resultMap="Task">select * from ar_bill_void_task where task_id = #{taskId} for update</select>
|
||||
<select id="selectActive" resultMap="Task">
|
||||
select * from ar_bill_void_task where ar_bill_id = #{arBillId} and status = 'WAITING' limit 1
|
||||
</select>
|
||||
<select id="selectActiveForUpdate" resultMap="Task">
|
||||
select * from ar_bill_void_task where ar_bill_id = #{arBillId} and status = 'WAITING' limit 1 for update
|
||||
</select>
|
||||
<select id="selectWaiting" resultMap="Task">
|
||||
select * from ar_bill_void_task where status = 'WAITING' order by task_id limit #{limit}
|
||||
</select>
|
||||
<update id="markSuccess">update ar_bill_void_task set status = 'SUCCESS', finished_at = sysdate() where task_id = #{taskId} and status = 'WAITING'</update>
|
||||
<update id="markFailed">update ar_bill_void_task set status = 'FAILED', error_message = #{errorMessage}, finished_at = sysdate() where task_id = #{taskId} and status = 'WAITING'</update>
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user