123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- <?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.siwei.apply.mapper.ProjectWorkflowMapper">
- <resultMap id="ProjectWorkflowResultMap" type="com.siwei.apply.domain.ProjectWorkflow">
- <id property="id" column="id"/>
- <result property="projectId" column="project_id"/>
- <result property="workflowId" column="workflow_id"/>
- <result property="parentId" column="parent_id"/>
- <result property="nodeId" column="node_id"/>
- <result property="nodeTableName" column="node_table_name"/>
- <result property="workflowName" column="workflow_name"/>
- <result property="createdAt" column="created_at"/>
- <result property="updatedAt" column="updated_at"/>
- </resultMap>
- <select id="selectById" parameterType="string" resultMap="ProjectWorkflowResultMap">
- SELECT id,
- project_id,
- workflow_id,
- parent_id,
- node_id,
- node_table_name,
- workflow_name,
- created_at,
- updated_at
- FROM t_project_workflow
- WHERE id = #{id}
- ORDER BY created_at
- </select>
- <select id="selectByProjectId" parameterType="string" resultMap="ProjectWorkflowResultMap">
- SELECT id,
- project_id,
- workflow_id,
- parent_id,
- node_id,
- node_table_name,
- workflow_name,
- created_at,
- updated_at
- FROM t_project_workflow
- WHERE project_id = #{projectId}
- ORDER BY created_at
- </select>
- <select id="selectByNodeId" parameterType="string" resultMap="ProjectWorkflowResultMap">
- SELECT id,
- project_id,
- workflow_id,
- parent_id,
- node_id,
- node_table_name,
- workflow_name,
- created_at,
- updated_at
- FROM t_project_workflow
- WHERE node_id = #{nodeId}
- ORDER BY created_at
- </select>
- <select id="selectCycleByProjectId" parameterType="string"
- resultType="com.siwei.apply.domain.res.ProjectWorkflowRes">
- SELECT project_id as projectId,
- node_id as nodeId,
- workflow_id as workflowId,
- node_table_name as nodeTableName,
- created_at as createdAt
- FROM t_project_workflow
- WHERE project_id = #{projectId}
- ORDER BY created_at
- </select>
- <select id="isOnchain" parameterType="map" resultType="boolean">
- SELECT COALESCE((SELECT has_onchain
- FROM ${tableName}
- WHERE id = #{id}
- AND project_id = #{projectId}
- LIMIT 1 ), false) AS has_onchain
- </select>
- <insert id="add" parameterType="com.siwei.apply.domain.ProjectWorkflow">
- INSERT INTO t_project_workflow (id, project_id, workflow_id, parent_id, node_id, node_table_name, workflow_name,
- created_at, updated_at)
- VALUES (#{id}, #{projectId}, #{workflowId}, #{parentId}, #{nodeId}, #{nodeTableName}, #{workflowName}, now(),
- now())
- </insert>
- <select id="selectByProjectIdAndNodeTableName" parameterType="map" resultMap="ProjectWorkflowResultMap">
- SELECT id,
- project_id,
- workflow_id,
- parent_id,
- node_id,
- node_table_name,
- workflow_name,
- created_at,
- updated_at
- FROM t_project_workflow
- WHERE project_id = #{projectId}
- AND node_table_name = #{nodeTableName}
- ORDER BY created_at
- </select>
- <!-- 统计:每个项目取最大 workflow_id,若同项目同 workflow_id 多条只计一次;
- 然后按 workflow_name 分组统计数量;返回字段 name(workflow_name)与 count -->
- <select id="countMaxWorkflowByName" resultType="com.siwei.apply.domain.res.ProjectProcessRes">
- SELECT t.workflow_name AS name,
- CAST(COUNT(*) AS varchar) AS count
- FROM (
- SELECT DISTINCT tpw.project_id, tpw.workflow_id, tpw.workflow_name
- FROM t_project_workflow tpw
- INNER JOIN (
- SELECT project_id, MAX (workflow_id) AS max_workflow_id
- FROM t_project_workflow
- GROUP BY project_id
- ) m
- ON m.project_id = tpw.project_id AND m.max_workflow_id = tpw.workflow_id
- <where>
- EXISTS (
- SELECT 1 FROM t_project p
- WHERE p.id = tpw.project_id
- <if test="projectType != null">
- AND p.project_type = #{projectType}
- </if>
- AND p.on_chain_num > 0
- )
- </where>
- ) t
- GROUP BY t.workflow_name
- </select>
- <select id="selectProjectOneNodeId" parameterType="map" resultMap="ProjectWorkflowResultMap">
- SELECT
- flow2.id,
- flow2.project_id,
- flow2.workflow_id,
- flow2.parent_id,
- flow2.node_id,
- flow2.node_table_name,
- flow2.workflow_name,
- flow2.created_at,
- flow2.updated_at
- FROM "public"."t_project_workflow" flow1
- LEFT JOIN "public"."t_project_workflow" flow2
- on flow1.project_id=flow2.project_id and flow2.node_table_name=#{nodeTableName}
- WHERE flow1.node_id = #{nodeId}
- </select>
- <!-- <select id="selectOnchainInfoByNodeId" resultType="map" parameterType="String">-->
- <!-- SELECT-->
- <!-- id,-->
- <!-- has_onchain as "hasOnchain"-->
- <!-- FROM "public".#{nodeTableName}-->
- <!-- WHERE id = #{nodeId}-->
- <!-- limit 1-->
- <!-- </select>-->
- </mapper>
|