package jnpf.elnMapper;
|
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import jnpf.elnEntity.runtime.ElnRecordEntity;
|
import org.apache.ibatis.annotations.Insert;
|
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Select;
|
import org.apache.ibatis.annotations.Update;
|
|
import java.util.List;
|
|
@Mapper
|
public interface ElnRecordMapper extends BaseMapper<ElnRecordEntity> {
|
|
@Update("UPDATE eln_record SET f_version = f_version + 1, "
|
+ "f_last_modify_user_id = #{userId}, f_last_modify_time = CURRENT_TIMESTAMP "
|
+ "WHERE f_tenant_id = #{tenantId} AND f_id = #{recordId} "
|
+ "AND f_version = #{expectedRecordVersion} AND COALESCE(f_delete_mark, 0) = 0")
|
int advanceVersion(@Param("tenantId") String tenantId, @Param("recordId") String recordId,
|
@Param("expectedRecordVersion") Integer expectedRecordVersion,
|
@Param("userId") String userId);
|
|
@Select("SELECT f_id AS id, jilu_bianhao AS jiluBianhao, jianyan_xiang_id AS jianyanXiangId, "
|
+ "muban_id AS mubanId, muban_bianhao AS mubanBianhao, muban_banben AS mubanBanben, "
|
+ "chuangjian_caozuo_bianma AS chuangjianCaozuoBianma, "
|
+ "dangqian_xiuding_id AS dangqianXiudingId, f_tenant_id AS fTenantId, "
|
+ "f_version AS fVersion, f_delete_mark AS fDeleteMark "
|
+ "FROM eln_record WHERE f_tenant_id = #{tenantId} AND f_id = #{recordId} "
|
+ "AND COALESCE(f_delete_mark, 0) = 0 FOR UPDATE")
|
ElnRecordEntity selectLiveForUpdate(@Param("tenantId") String tenantId,
|
@Param("recordId") String recordId);
|
|
@Update("UPDATE eln_record SET dangqian_xiuding_id = #{newRevisionId}, "
|
+ "f_version = f_version + 1, f_last_modify_user_id = #{userId}, "
|
+ "f_last_modify_time = CURRENT_TIMESTAMP WHERE f_tenant_id = #{tenantId} "
|
+ "AND f_id = #{recordId} AND dangqian_xiuding_id = #{previousRevisionId} "
|
+ "AND f_version = #{expectedRecordVersion} AND COALESCE(f_delete_mark, 0) = 0")
|
int switchCurrentRevision(@Param("tenantId") String tenantId,
|
@Param("recordId") String recordId,
|
@Param("previousRevisionId") String previousRevisionId,
|
@Param("newRevisionId") String newRevisionId,
|
@Param("expectedRecordVersion") Integer expectedRecordVersion,
|
@Param("userId") String userId);
|
|
@Insert("INSERT INTO eln_record (jilu_bianhao, jianyan_xiang_id, muban_id, "
|
+ "muban_bianhao, muban_banben, chuangjian_caozuo_bianma, dangqian_xiuding_id, "
|
+ "f_id, f_tenant_id, f_version, f_creator_user_id, f_creator_time, "
|
+ "f_last_modify_user_id, f_last_modify_time, f_delete_user_id, f_delete_time, "
|
+ "f_delete_mark) VALUES (#{entity.jiluBianhao}, #{entity.jianyanXiangId}, "
|
+ "#{entity.mubanId}, #{entity.mubanBianhao}, #{entity.mubanBanben}, "
|
+ "#{entity.chuangjianCaozuoBianma}, #{entity.dangqianXiudingId}, #{entity.id}, "
|
+ "#{entity.fTenantId}, #{entity.fVersion}, #{entity.fCreatorUserId}, "
|
+ "#{entity.fCreatorTime}, #{entity.fLastModifyUserId}, #{entity.fLastModifyTime}, "
|
+ "#{entity.fDeleteUserId}, #{entity.fDeleteTime}, #{entity.fDeleteMark}) "
|
+ "ON CONFLICT DO NOTHING")
|
int insertIfAbsent(@Param("entity") ElnRecordEntity entity);
|
|
@Select("SELECT f_id AS id, jilu_bianhao AS jiluBianhao, jianyan_xiang_id AS jianyanXiangId, "
|
+ "muban_id AS mubanId, muban_bianhao AS mubanBianhao, muban_banben AS mubanBanben, "
|
+ "chuangjian_caozuo_bianma AS chuangjianCaozuoBianma, "
|
+ "dangqian_xiuding_id AS dangqianXiudingId, f_tenant_id AS fTenantId, "
|
+ "f_version AS fVersion, f_delete_mark AS fDeleteMark "
|
+ "FROM eln_record WHERE f_tenant_id = #{tenantId} "
|
+ "AND jianyan_xiang_id = #{testWorkItemId} "
|
+ "AND COALESCE(f_delete_mark, 0) = 0")
|
ElnRecordEntity selectLiveByTestWorkItem(@Param("tenantId") String tenantId,
|
@Param("testWorkItemId") String testWorkItemId);
|
|
@Select("SELECT f_id AS id, jilu_bianhao AS jiluBianhao, jianyan_xiang_id AS jianyanXiangId, "
|
+ "muban_id AS mubanId, muban_bianhao AS mubanBianhao, muban_banben AS mubanBanben, "
|
+ "chuangjian_caozuo_bianma AS chuangjianCaozuoBianma, "
|
+ "dangqian_xiuding_id AS dangqianXiudingId, f_tenant_id AS fTenantId, "
|
+ "f_version AS fVersion, f_delete_mark AS fDeleteMark "
|
+ "FROM eln_record WHERE f_tenant_id = #{tenantId} "
|
+ "AND jianyan_xiang_id = #{testWorkItemId} "
|
+ "AND chuangjian_caozuo_bianma = #{operationCode} "
|
+ "AND COALESCE(f_delete_mark, 0) = 0")
|
ElnRecordEntity selectLiveByCreationOperation(@Param("tenantId") String tenantId,
|
@Param("testWorkItemId") String testWorkItemId,
|
@Param("operationCode") String operationCode);
|
|
@Select("SELECT f_id AS id, jilu_bianhao AS jiluBianhao, jianyan_xiang_id AS jianyanXiangId, "
|
+ "muban_id AS mubanId, muban_bianhao AS mubanBianhao, muban_banben AS mubanBanben, "
|
+ "chuangjian_caozuo_bianma AS chuangjianCaozuoBianma, "
|
+ "dangqian_xiuding_id AS dangqianXiudingId, f_tenant_id AS fTenantId, "
|
+ "f_version AS fVersion, f_delete_mark AS fDeleteMark "
|
+ "FROM eln_record WHERE f_tenant_id = #{tenantId} "
|
+ "AND muban_bianhao = #{templateCode} "
|
+ "AND COALESCE(f_delete_mark, 0) = 0")
|
List<ElnRecordEntity> selectLiveByTemplateCode(@Param("tenantId") String tenantId,
|
@Param("templateCode") String templateCode);
|
}
|