yangys
2025-09-17 1e2b04fabbbc4b1ae37d7951068d7ab235f5b5f9
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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
<?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="org.springblade.mdm.program.mapper.NcNodeMapper">
    <resultMap id="BaseResultMap" type="org.springblade.mdm.program.entity.NcNode">
        <id column="id" property="id"/>
        <result column="name" property="name"/>
        <result column="parent_id" property="parentId"/>
        <result column="node_type" property="nodeType"/>
        <result column="status" property="status"/>
        <result column="create_time" property="createTime"/>
        <result column="update_time" property="updateTime"/>
        <result column="is_deleted" property="isDeleted"/>
    </resultMap>
<!--
 
    <select id="pageQuery" resultType="org.springblade.mdm.basesetting.machine.vo.MachineVO">
        select m.id,m.name,m.code,g.dict_key machine_group_code,g.dict_value machine_group_name,m.machine_spec,m.manufacturer,m.operator
        from mdm_machine m join blade_dict_biz g on m.machine_group_code=g.dict_key and g.code='machine_group' and g.is_deleted=0
            ${ew.customSqlSegment}
    </select>
-->
 
 
    <!--    <select id="parentTree" resultMap="treeNodeResultMap">-->
<!--        select id, parent_id, dict_value as title, id as "value", id as "key" from blade_dict where is_deleted = 0 and parent_id = 0-->
<!--    </select>-->
    <sql id="prog_all_columns">id,tenant_id,nc_node_id,code,name,machine_code,draw_no,is_cured,
  expire_date,process_edition,is_last_edition,is_locked,task_assign_time,status,create_dept,is_deleted,create_time,create_user,update_time,update_user</sql>
 
    <delete id="deleteSubNodes">
        delete from mdm_nc_node where parent_id=#{nodeId}
    </delete>
    <!--
    <delete id="deleteMachineGroupNodeByParentId">
        delete from mdm_nc_node where parent_id=#{parentId} and node_type='50'
    </delete>
    -->
 
    <sql id="all_columns">id,tenant_id,name,parent_id,parent_ids,node_type,status,create_dept,is_deleted,create_time,create_user,update_time,update_user</sql>
    <sql id="all_columns_n">n.id,n.tenant_id,n.name,n.parent_id,n.parent_ids,n.node_type,n.version_number,n.description,n.remark,n.drawing_no,n.drawing_no_edition,n.craft_edition,n.is_last_edition,n.is_locked,n.process_edition,n.process_no,n.product_model,n.is_cured,n.process_instance_id,n.status,n.create_dept,n.is_deleted,n.create_time,n.create_user,n.update_time,n.update_user</sql>
    <select id="lazyList" resultType="org.springblade.mdm.program.vo.NcNodeVO">
        select <include refid="all_columns_n"/>,dt.dict_value as node_type_name,u.name create_user_name,(
        SELECT
        CASE WHEN count(1) > 0 THEN 1 ELSE 0 END
        FROM
        mdm_nc_node
        WHERE
        parent_id = n.id and is_last_edition=1 and is_deleted = 0
        ) AS "has_children" from mdm_nc_node n left join blade_user u on n.create_user=u.id
        left join blade_dict_biz dt on n.node_type=dt.dict_key and dt.code='nc_node_type' and dt.is_deleted=0
        where n.is_deleted=0 and n.is_last_edition=1 and n.parent_id=#{parentId}
        order by id
    </select>
 
 
    <!--获取 最新版本的程序(即程序包名 节点 node_type=60)-->
    <select id="getLastProgramNode" resultType="org.springblade.mdm.program.entity.NcNode">
        select <include refid="all_columns"/> from mdm_nc_node
        where is_deleted=0 and node_type='60' and is_last_edition=1 order by create_time desc limit 1
    </select>
 
    <!--首页查询-->
    <select id="searchList" resultType="org.springblade.mdm.program.vo.NcNodeVO">
        select <include refid="all_columns_n"/>,dt.dict_value as node_type_name,u.name create_user_name,(
        SELECT
        CASE WHEN count(1) > 0 THEN 1 ELSE 0 END
        FROM
        mdm_nc_node
        WHERE
        parent_id = n.id and is_deleted = 0
        ) AS "has_children" from mdm_nc_node n left join blade_user u on n.create_user=u.id
        left join blade_dict_biz dt on n.node_type=dt.dict_key and dt.code='nc_node_type' and dt.is_deleted=0
        where n.is_deleted=0 and n.node_type=#{nodeType} and n.name like CONCAT('%', #{name}, '%')
 
    </select>
    <select id="searchListInIds" resultType="org.springblade.mdm.program.vo.NcNodeVO">
        select <include refid="all_columns_n"/>,dt.dict_value as node_type_name,u.name create_user_name,(
        SELECT
        CASE WHEN count(1) > 0 THEN 1 ELSE 0 END
        FROM
        mdm_nc_node
        WHERE
        parent_id = n.id and is_deleted = 0
        ) AS "has_children" from mdm_nc_node n left join blade_user u on n.create_user=u.id
        left join blade_dict_biz dt on n.node_type=dt.dict_key and dt.code='nc_node_type' and dt.is_deleted=0
        <where>
                <if test="ids != null and ids.size() > 0">
                    n.id IN
                    <foreach collection="ids" item="id" open="(" separator="," close=")">
                        #{id}
                    </foreach>
                </if>
                <if test="ids == null or ids.size() == 0">
                    1=0
                </if>
        </where>
    </select>
    <!--
    <select id="historyByParentIdAndName" resultType="org.springblade.mdm.program.vo.NcNodeVO">
        select n.id,n.name,n.version_number,n.create_time,n.update_time,u.name create_user_name,n.process_no
         from mdm_nc_node n left join blade_user u on n.create_user=u.id and u.is_deleted=0
 
        where n.is_deleted=0 and n.parent_id in (select id from mdm_nc_node where parent_id=#{parentNode.parentId}) and n.name=#{name}
 
    </select>
    -->
    <select id="searchList2" resultType="org.springblade.mdm.program.vo.NcNodeVO">
        select <include refid="all_columns_n"/>,dt.dict_value as node_type_name,u.name create_user_name,(
        SELECT
        CASE WHEN count(1) > 0 THEN 1 ELSE 0 END
        FROM
        mdm_nc_node
        WHERE
        parent_id = n.id and is_deleted = 0
        ) AS "has_children" from mdm_nc_node n left join blade_user u on n.create_user=u.id
        left join blade_dict_biz dt on n.node_type=dt.dict_key and dt.code='nc_node_type' and dt.is_deleted=0
        <where>
            n.is_deleted=0 and n.node_type='20' and n.name=#{drawingNo}
            <if test="status != null and status != ''">
               and
                (
                1=2
                <if test='status.contains("1".toString())'>
                   or n.parent_ids LIKE '0,1,%'
                </if>
                <if test='status.contains("2".toString())'>
                    or n.parent_ids LIKE '0,2,%'
                </if>
                <if test='status.contains("3".toString())'>
                    or n.parent_ids LIKE '0,3,%'
                </if>
 
                )
            </if>
 
            <if test="createTimeBegin != null">
                and n.create_time&gt;=#{createTimeBegin}
            </if>
            <if test="createTimeEnd != null">
                and n.create_time&lt;=#{createTimeEnd}
            </if>
        </where>
 
 
    </select>
 
    <delete id="deleteOldEditionNodeData">
        delete from mdm_nc_node where is_last_edition &lt;&gt; 1;
    </delete>
</mapper>