Files
spdm-backend/project/src/main/resources/mapper/SimulationNodeMapper.xml
lidongyang e10f8b83a0 1、新增 导出知识库接口
2、任务模块导出接口 bugfix
2025-11-27 14:43:58 +08:00

581 lines
23 KiB
XML

<?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.sdm.project.dao.SimulationNodeMapper">
<insert id="addNodeBatch" useGeneratedKeys="true" keyProperty="id">
insert into simulation_node
(uuid,ownRootNodeUuid,nodeName,nodeCode,englishName,nodeType,nodeSubType,nodeStatus,parentId,folderId,nodeLevel,beginTime,endTime,finishTime,progress,
achieveStatus,nodeVersion,tenantId,description,detailImgUrl,creator,create_time,tag1,tag2,tag3,tag4,tag5,tag6,tag7,tag8,tag9,tag10)
values
<foreach collection='addNodeList' item='addNode' index='index' separator=','>
(#{addNode.uuid},#{addNode.ownRootNodeUuid},#{addNode.nodeName},#{addNode.nodeCode},'',#{addNode.nodeType},#{addNode.nodeSubType},'0',#{addNode.pid},
'',1,#{addNode.beginTime},#{addNode.endTime},'',#{addNode.progressStatus},#{addNode.achieveStatus},#{addNode.exeStauts},#{addNode.tenantId},#{addNode.description},
#{addNode.detailImgUrl},#{addNode.creator},#{addNode.createTime},#{addNode.tag1},#{addNode.tag2},
#{addNode.tag3},#{addNode.tag4},#{addNode.tag5},#{addNode.tag6},#{addNode.tag7},#{addNode.tag8},#{addNode.tag9},#{addNode.tag10})
</foreach>
</insert>
<insert id="addNodeMemberBatch">
insert into simulation_node_member (nodeId,identity,name,user_id,creator,create_time) values
<foreach collection='addNodeMemberList' item='addNodeMember' index='index' separator=','>
(#{addNodeMember.nodeId},#{addNodeMember.identity},#{addNodeMember.name},#{addNodeMember.userId},#{addNodeMember.creator},#{addNodeMember.createTime})
</foreach>
</insert>
<insert id="addNodeExtraBatch">
insert into simulation_node_extra
(nodeId,propertyName,propertyValue,valueType,propertyClass,creator,create_time) values
<foreach collection='addNodeExtraList' item='addNodeExtra' index='index' separator=','>
(#{addNodeExtra.nodeId},#{addNodeExtra.propertyName},#{addNodeExtra.propertyValue},#{addNodeExtra.valueType},#{addNodeExtra.propertyClass},#{addNodeExtra.creator},#{addNodeExtra.createTime})
</foreach>
</insert>
<update id="editNode">
update simulation_node
<trim prefix="set" suffixOverrides=",">
<if test="editNode.nodeName != null and editNode.nodeName != ''">
nodeName = #{editNode.nodeName},
</if>
<if test="editNode.nodeCode != null and editNode.nodeCode != ''">
nodeCode = #{editNode.nodeCode},
</if>
<if test="editNode.nodeSubType != null and editNode.nodeSubType != ''">
nodeSubType = #{editNode.nodeSubType},
</if>
<if test="editNode.beginTime != null and editNode.beginTime != ''">
beginTime = #{editNode.beginTime},
</if>
<if test="editNode.endTime != null and editNode.endTime != ''">
endTime = #{editNode.endTime},
</if>
<if test="editNode.description != null and editNode.description != ''">
description = #{editNode.description},
</if>
<if test="editNode.detailImgUrl != null and editNode.detailImgUrl != ''">
detailImgUrl = #{editNode.detailImgUrl},
</if>
<if test="editNode.exeStatus != null and editNode.exeStatus != ''">
exe_status = #{editNode.exeStatus},
</if>
<if test="editNode.achieveStatus != null and editNode.achieveStatus != ''">
achieveStatus = #{editNode.achieveStatus},
</if>
<if test="editNode.updater != null and editNode.updater != ''">
updater = #{editNode.updater},
</if>
<if test="editNode.updateTime != null and editNode.updateTime != ''">
update_time = #{editNode.updateTime}
</if>
<if test="editNode.englishName != null and editNode.englishName != ''">
englishName = #{editNode.englishName}
</if>
</trim>
where uuid = #{editNode.uuid}
</update>
<update id="editNodeMember">
update simulation_node_member
<trim prefix="set" suffixOverrides=",">
<if test="editNodeMember.identity != null and editNodeMember.identity != ''">
identity = #{editNodeMember.identity},
</if>
<if test="editNodeMember.name != null and editNodeMember.name != ''">
name = #{editNodeMember.name},
</if>
<if test="editNodeMember.updater != null and editNodeMember.updater != ''">
updater = #{editNodeMember.updater},
</if>
<if test="editNodeMember.updateTime != null and editNodeMember.updateTime != ''">
update_time = #{editNodeMember.updateTime},
</if>
</trim>
where id = #{editNodeMember.id}
</update>
<update id="editNodeExtra">
update simulation_node_extra
<trim prefix="set" suffixOverrides=",">
<if test="nodeExtra.propertyName != null and nodeExtra.propertyName != ''">
propertyName = #{nodeExtra.propertyName},
</if>
<if test="nodeExtra.propertyValue != null and nodeExtra.propertyValue != ''">
propertyValue = #{nodeExtra.propertyValue},
</if>
<if test="nodeExtra.valueType != null and nodeExtra.valueType != ''">
valueType = #{nodeExtra.valueType},
</if>
<if test="nodeExtra.propertyClass != null and nodeExtra.propertyClass != ''">
propertyClass = #{nodeExtra.propertyClass},
</if>
<if test="nodeExtra.updater != null and nodeExtra.updater != ''">
updater = #{nodeExtra.updater},
</if>
<if test="nodeExtra.updateTime != null and nodeExtra.updateTime != ''">
update_time = #{nodeExtra.updateTime},
</if>
</trim>
where id = #{nodeExtra.id}
</update>
<delete id="deleteNodeBatch">
delete from simulation_node
where uuid in (
<foreach collection='deleteNodeIdList' item='nodeId' index='index' separator=','>
#{nodeId}
</foreach>
)
</delete>
<delete id="deleteNodeMemberBatch">
delete from simulation_node_member
where nodeId in (
<foreach collection='deleteNodeIdList' item='nodeId' index='index' separator=','>
#{nodeId}
</foreach>
)
</delete>
<delete id="deleteNodeExtraBatch">
delete from simulation_node_extra
where nodeId in (
<foreach collection='deleteNodeIdList' item='nodeId' index='index' separator=','>
#{nodeId}
</foreach>
)
</delete>
<delete id="deleteTaskBatch">
delete from simulation_task
where node_id in (
<foreach collection='deleteNodeIdList' item='nodeId' index='index' separator=','>
#{nodeId}
</foreach>
)
</delete>
<delete id="deleteTaskExtraBatch">
delete from simulation_task_extra
where task_id in (
<foreach collection='taskIdList' item='taskId' index='index' separator=','>
#{taskId}
</foreach>
)
</delete>
<delete id="deleteTaskMemberBatch">
delete from simulation_task_member
where task_id in (
<foreach collection='taskIdList' item='taskId' index='index' separator=','>
#{taskId}
</foreach>
)
</delete>
<delete id="deletePerformanceBatch">
delete from simulation_performance
where id in (
<foreach collection='performanceIdList' item='performanceId' index='index' separator=','>
#{performanceId}
</foreach>
)
</delete>
<delete id="deletePerformanceExtraBatch">
delete from simulation_performance_extra
where performanceId in (
<foreach collection='performanceIdList' item='performanceId' index='index' separator=','>
#{performanceId}
</foreach>
)
</delete>
<select id="getNodeList" resultType="com.sdm.project.model.vo.SpdmNodeVo">
select * from simulation_node sn
where sn.tenantId = #{tenantId}
<if test="nodeType != null and nodeType != ''">
and sn.nodeType = #{nodeType}
</if>
<if test="nodeSubType != null and nodeSubType != ''">
and sn.nodeSubType = #{nodeSubType}
</if>
<if test="exeStatus != null and exeStatus != ''">
and sn.exe_status = #{exeStatus}
</if>
<if test="nodeCode != null and nodeCode != ''">
and sn.nodeCode like CONCAT('%',#{nodeCode},'%')
</if>
<if test="manager != null and manager != ''">
and snm.name like CONCAT('%',#{manager},'%')
</if>
<if test="nodeName != null and nodeName != ''">
and sn.nodeName like CONCAT('%',#{nodeName},'%')
</if>
order by create_time desc
limit #{pos},#{limit}
</select>
<select id="getNodeListCount" resultType="java.lang.Integer">
select count(1) from simulation_node sn
where sn.tenantId = #{tenantId}
<if test="nodeType != null and nodeType != ''">
and sn.nodeType = #{nodeType}
</if>
<if test="nodeSubType != null and nodeSubType != ''">
and sn.nodeSubType = #{nodeSubType}
</if>
<if test="progressStatus != null">
and sn.progress = #{progressStatus}
</if>
<if test="nodeCode != null and nodeCode != ''">
and sn.nodeCode like CONCAT('%',#{nodeCode},'%')
</if>
<if test="manager != null and manager != ''">
and snm.name like CONCAT('%',#{manager},'%')
</if>
<if test="nodeName != null and nodeName != ''">
and sn.nodeName like CONCAT('%',#{nodeName},'%')
</if>
</select>
<select id="getNodeExtraListByNodeIdList" resultType="com.sdm.project.model.vo.SpdmNodeExtraVo">
SELECT
*
FROM
simulation_node_extra
WHERE
nodeId in (
<foreach collection='nodeIdList' item='nodeId' index='index' separator=','>
#{nodeId}
</foreach>
)
</select>
<select id="getNodeDetail" resultType="com.sdm.project.model.vo.SpdmNodeDetailVo">
select *,
GROUP_CONCAT(snm.name ORDER BY snm.name SEPARATOR ',') AS managers
from simulation_node sn
LEFT JOIN simulation_node_member snm ON sn.uuid = snm.nodeId
where sn.uuid = #{projectNodeId}
and sn.tenantId = #{tenantId}
GROUP BY sn.uuid limit 0,1
</select>
<select id="allList" resultType="com.sdm.project.model.po.ProjectNodePo">
select * from simulation_node
where uuid in (
<foreach collection='nodeIdList' item='nodeId' index='index' separator=','>
#{nodeId}
</foreach>
)
</select>
<select id="getTaskListByNodeIdList" resultType="com.sdm.project.model.po.TaskNodePo">
select * from simulation_task where node_id in (
<foreach collection='deleteNodeIdList' item='nodeId' index='index' separator=','>
#{nodeId}
</foreach>
)
</select>
<select id="getPerformanceListByNodeIdList" resultType="com.sdm.project.model.po.PerformanceNodePo">
select * from simulation_performance where taskId in (
<foreach collection='taskIdList' item='taskId' index='index' separator=','>
#{taskId}
</foreach>
)
</select>
<select id="getNodeMemberListByNodeIdList" resultType="com.sdm.project.model.vo.SpdmNodeMemberVo">
select * from simulation_node_member
where nodeId in (
<foreach collection='nodeIdList' item='nodeId' index='index' separator=','>
#{nodeId}
</foreach>
)
</select>
<select id="getNodeById" resultType="com.sdm.project.model.vo.SpdmNodeVo">
select *
from simulation_node
where uuid = #{projectNodeId} limit 1
</select>
<select id="getNodeListByNodeIdList" resultType="com.sdm.project.model.vo.SpdmNodeVo">
select * from simulation_node
where parentId in (
<foreach collection='nodeIdList' item='nodeId' index='index' separator=','>
#{nodeId}
</foreach>
)
</select>
<select id="getTaskMemberListByNodeIdList" resultType="com.sdm.project.model.po.TaskNodeMemberPo">
select * from simulation_task_member
where task_id in (
<foreach collection='nodeIdList' item='nodeId' index='index' separator=','>
#{nodeId}
</foreach>
)
</select>
<select id="getNodeListByIds" resultType="com.sdm.project.model.vo.SpdmNodeVo">
select * from simulation_node
where uuid in (
<foreach collection='nodeIdList' item='nodeId' index='index' separator=','>
#{nodeId}
</foreach>
)
</select>
<select id="getUserGroupProjectStatistics" resultType="com.sdm.project.model.vo.UserGroupProjectVo">
select
nodeId,
user_id as userId
from simulation_node_member
where user_id in (
<foreach collection='userIds' item='userId' index='index' separator=','>
#{userId}
</foreach>
)
</select>
<select id="getUserGroupTaskCompleteStatistics"
parameterType="com.sdm.project.model.req.GetUserGroupTaskCompleteStatisticsReq"
resultType="com.sdm.project.model.vo.UserGroupTaskCompleteVo">
select task.exe_status as exeStatus,
task_member.user_id as userId
from simulation_task task
left join simulation_task_member task_member on task.uuid = task_member.task_id
<where>
task_member.user_id in
(
<foreach collection='req.userIds' item='userId' index='index' separator=','>
#{userId}
</foreach>
)
<if test="req.tag1 != null and req.tag1 !='' ">
and task.tag1 = #{req.tag1}
</if>
<if test="req.tag2 != null and req.tag2 !='' ">
and task.tag2 = #{req.tag2}
</if>
<if test="req.tag3 != null and req.tag3 !='' ">
and task.tag3 = #{req.tag3}
</if>
<if test="req.tag4 != null and req.tag4 !='' ">
and task.tag4 = #{req.tag4}
</if>
<if test="req.tag5 != null and req.tag5 !='' ">
and task.tag5 = #{req.tag5}
</if>
<if test="req.tag6 != null and req.tag6 !='' ">
and task.tag6 = #{req.tag6}
</if>
<if test="req.tag7 != null and req.tag7 !='' ">
and task.tag7 = #{req.tag7}
</if>
<if test="req.tag8 != null and req.tag8 !='' ">
and task.tag8 = #{req.tag8}
</if>
<if test="req.tag9 != null and req.tag9 !='' ">
and task.tag9 = #{req.tag9}
</if>
<if test="req.tag10 != null and req.tag10 !='' ">
and task.tag10 = #{req.tag10}
</if>
</where>
</select>
<select id="getUserGroupDifficultyStatistics"
parameterType="com.sdm.project.model.req.GetUserGroupTaskCompleteStatisticsReq"
resultType="com.sdm.project.model.vo.UserGroupDifficultyVo">
select
task.difficult,
task_member.user_id as userId
from simulation_task task
left join simulation_task_member task_member on task.uuid = task_member.task_id
<where>
task_member.user_id in
(
<foreach collection='req.userIds' item='userId' index='index' separator=','>
#{userId}
</foreach>
)
<if test="req.tag1 != null and req.tag1 !='' ">
and task.tag1 = #{req.tag1}
</if>
<if test="req.tag2 != null and req.tag2 !='' ">
and task.tag2 = #{req.tag2}
</if>
<if test="req.tag3 != null and req.tag3 !='' ">
and task.tag3 = #{req.tag3}
</if>
<if test="req.tag4 != null and req.tag4 !='' ">
and task.tag4 = #{req.tag4}
</if>
<if test="req.tag5 != null and req.tag5 !='' ">
and task.tag5 = #{req.tag5}
</if>
<if test="req.tag6 != null and req.tag6 !='' ">
and task.tag6 = #{req.tag6}
</if>
<if test="req.tag7 != null and req.tag7 !='' ">
and task.tag7 = #{req.tag7}
</if>
<if test="req.tag8 != null and req.tag8 !='' ">
and task.tag8 = #{req.tag8}
</if>
<if test="req.tag9 != null and req.tag9 !='' ">
and task.tag9 = #{req.tag9}
</if>
<if test="req.tag10 != null and req.tag10 !='' ">
and task.tag10 = #{req.tag10}
</if>
</where>
</select>
<select id="getCommonCompleteStatisticsFromTask"
parameterType="com.sdm.project.model.req.CommonGetCompleteStatisticsReq"
resultType="com.sdm.project.model.vo.CommonGetCompleteFromTaskVo">
select
task.${req.resultTagType} as tag,
node.nodeName,
task.exe_status as exeStatus
from simulation_task task
left join simulation_node node on task.${req.resultTagType} = node.uuid
<where>
1=1
and node.nodeName is not null and node.nodeName != ''
and task.exe_status is not null
<if test="req.tag1 != null and req.tag1 !='' ">
and task.tag1 = #{req.tag1}
</if>
<if test="req.tag2 != null and req.tag2 !='' ">
and task.tag2 = #{req.tag2}
</if>
<if test="req.tag3 != null and req.tag3 !='' ">
and task.tag3 = #{req.tag3}
</if>
<if test="req.tag4 != null and req.tag4 !='' ">
and task.tag4 = #{req.tag4}
</if>
<if test="req.tag5 != null and req.tag5 !='' ">
and task.tag5 = #{req.tag5}
</if>
<if test="req.tag6 != null and req.tag6 !='' ">
and task.tag6 = #{req.tag6}
</if>
<if test="req.tag7 != null and req.tag7 !='' ">
and task.tag7 = #{req.tag7}
</if>
<if test="req.tag8 != null and req.tag8 !='' ">
and task.tag8 = #{req.tag8}
</if>
<if test="req.tag9 != null and req.tag9 !='' ">
and task.tag9 = #{req.tag9}
</if>
<if test="req.tag10 != null and req.tag10 !='' ">
and task.tag10 = #{req.tag10}
</if>
</where>
</select>
<select id="getCommonCompleteStatisticsFromPerformance"
parameterType="com.sdm.project.model.req.CommonGetCompleteStatisticsReq"
resultType="com.sdm.project.model.vo.CommonGetCompleteFromPerformanceVo">
select
task.${req.resultTagType} as tag,
node.nodeName,
performance.completeStatus
from simulation_performance performance
left join simulation_task task on performance.taskId = task.uuid
left join simulation_node node on task.${req.resultTagType} = node.uuid
<where>
node.nodeName is not null and node.nodeName != ''
and
performance.completeStatus is not null
<if test="req.tag1 != null and req.tag1 !='' ">
and task.tag1 = #{req.tag1}
</if>
<if test="req.tag2 != null and req.tag2 !='' ">
and task.tag2 = #{req.tag2}
</if>
<if test="req.tag3 != null and req.tag3 !='' ">
and task.tag3 = #{req.tag3}
</if>
<if test="req.tag4 != null and req.tag4 !='' ">
and task.tag4 = #{req.tag4}
</if>
<if test="req.tag5 != null and req.tag5 !='' ">
and task.tag5 = #{req.tag5}
</if>
<if test="req.tag6 != null and req.tag6 !='' ">
and task.tag6 = #{req.tag6}
</if>
<if test="req.tag7 != null and req.tag7 !='' ">
and task.tag7 = #{req.tag7}
</if>
<if test="req.tag8 != null and req.tag8 !='' ">
and task.tag8 = #{req.tag8}
</if>
<if test="req.tag9 != null and req.tag9 !='' ">
and task.tag9 = #{req.tag9}
</if>
<if test="req.tag10 != null and req.tag10 !='' ">
and task.tag10 = #{req.tag10}
</if>
</where>
</select>
<select id="getWorkstationApproveStatus"
parameterType="com.sdm.project.model.req.GetWorkstationApproveStatusReq"
resultType="com.sdm.project.model.vo.WorkstationApproveStatusVo">
select
task.${req.resultTagType} as tag,
node.nodeName,
task.approval_status as approvalStatus
from simulation_task task
left join simulation_node node on task.${req.resultTagType} = node.uuid
<where>
1=1
and node.nodeName is not null and node.nodeName != ''
and task.approval_status is not null
<if test="req.tag1 != null and req.tag1 !='' ">
and task.tag1 = #{req.tag1}
</if>
<if test="req.tag2 != null and req.tag2 !='' ">
and task.tag2 = #{req.tag2}
</if>
<if test="req.tag3 != null and req.tag3 !='' ">
and task.tag3 = #{req.tag3}
</if>
<if test="req.tag4 != null and req.tag4 !='' ">
and task.tag4 = #{req.tag4}
</if>
<if test="req.tag5 != null and req.tag5 !='' ">
and task.tag5 = #{req.tag5}
</if>
<if test="req.tag6 != null and req.tag6 !='' ">
and task.tag6 = #{req.tag6}
</if>
<if test="req.tag7 != null and req.tag7 !='' ">
and task.tag7 = #{req.tag7}
</if>
<if test="req.tag8 != null and req.tag8 !='' ">
and task.tag8 = #{req.tag8}
</if>
<if test="req.tag9 != null and req.tag9 !='' ">
and task.tag9 = #{req.tag9}
</if>
<if test="req.tag10 != null and req.tag10 !='' ">
and task.tag10 = #{req.tag10}
</if>
</where>
</select>
</mapper>