package jnpf.dmsMapper;
|
|
import jnpf.base.mapper.SuperMapper;
|
import jnpf.dmsEntity.recordprint.DmsJiluDayinLiushuiEntity;
|
import jnpf.dmsEntity.recordprint.DmsJiluDayinShenqingZixiangEntity;
|
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Select;
|
|
import java.util.List;
|
|
/**
|
* 记录文件打印准备数据库操作。
|
*/
|
@Mapper
|
public interface DmsJiluDayinLiushuiMapper extends SuperMapper<DmsJiluDayinLiushuiEntity> {
|
|
/**
|
* 锁定并读取打印申请子项,保证同一子项只能由一个请求生成流水记录。
|
*
|
* @param id 打印申请子项主键
|
* @return 未删除的打印申请子项
|
*/
|
DmsJiluDayinShenqingZixiangEntity selectPrintItemForUpdate(@Param("id") String id);
|
|
/**
|
* 统计打印申请子项已经生成的有效流水记录。
|
*
|
* @param printItemId 打印申请子项主键
|
* @return 有效流水记录数量
|
*/
|
int countActivePrintRecords(@Param("printItemId") String printItemId);
|
|
/**
|
* 批量新增打印流水实体。
|
*
|
* @param records 打印流水实体集合
|
* @return 新增条数
|
*/
|
int insertPrintRecords(@Param("records") List<DmsJiluDayinLiushuiEntity> records);
|
|
/**
|
* 将打印申请子项更新为打印中,并写入与 A 表相同的打印人和打印时间。
|
*
|
* @param entity 打印申请子项实体
|
* @return 更新条数
|
*/
|
int markPrintItemProcessing(DmsJiluDayinShenqingZixiangEntity entity);
|
|
/**
|
* 取得记录打印流水号业务事务锁。
|
*
|
* <p>该锁跨 DMS 实例生效,并持续到当前数据库事务结束。所有使用同一单据规则的
|
* DMS 入口都必须遵守该锁协议,才能保证批次号码不会互相穿插。</p>
|
*
|
* @return 固定值 1
|
*/
|
@Select("SELECT 1 FROM (SELECT pg_advisory_xact_lock(" +
|
"hashtextextended('dms:record-print:serial', 0))) serial_lock")
|
Integer lockSerialAllocation();
|
}
|