刘光辉
6 小时以前 06f314545ac3514d7ce28939920866ae8188d31c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
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);
}