INSERT INTO m_wbs_tree_contract(p_key_id, id, wbs_id, wbs_type, project_id, contract_id, contract_type, tenant_id, parent_id, ancestors, node_type, node_name, full_name, sort, remark, `type`, table_type, create_time, create_user, create_dept, update_user, update_time, `STATUS`, is_deleted, unique_code, partition_code, is_expernode, is_concrete, table_owner, major_data_type, init_table_name, is_link_table, excel_id, html_url, is_type_private_pid, is_ele) VALUES (#{pKeyId}, #{wbsTree.id}, #{wbsTree.wbsId}, #{wbsType}, #{wbsTree.projectId}, #{contractId}, 1, #{wbsTree.tenantId}, #{wbsTree.parentId}, #{wbsTree.ancestors}, #{wbsTree.nodeType}, #{wbsTree.nodeName}, #{wbsTree.fullName}, #{wbsTree.sort}, #{wbsTree.remark}, #{wbsTree.type}, #{wbsTree.tableType}, #{wbsTree.createTime}, #{wbsTree.createUser}, #{wbsTree.createDept}, #{wbsTree.updateUser}, #{wbsTree.updateTime}, #{wbsTree.status}, #{wbsTree.isDeleted}, #{wbsTree.uniqueCode}, #{wbsTree.partitionCode}, #{wbsTree.isExpernode}, #{wbsTree.isConcrete}, #{wbsTree.tableOwner}, #{wbsTree.majorDataType}, #{wbsTree.initTableName}, #{wbsTree.isLinkTable}, #{wbsTree.excelId}, #{wbsTree.htmlUrl}, #{wbsTree.pKeyId}, 1) DELETE FROM m_wbs_tree_contract WHERE (id IN #{ids} OR parent_id IN #{ids} ) AND wbs_id = #{wbsId} AND project_id = #{projectId} AND contract_id = #{contractId} UPDATE m_wbs_tree_contract SET is_deleted = 0 WHERE id = #{id} AND wbs_id = #{wbsId} AND project_id = #{projectId} AND contract_id = #{contractId} UPDATE m_wbs_tree_contract SET node_type = #{wbsTP.nodeType} ,is_classifition=#{wbsTP.isClassifition},class_name=#{wbsTP.className},unit_name=#{wbsTP.unitName} WHERE project_id = #{wbsTP.projectId} AND is_type_private_pid = #{wbsTP.pKeyId} UPDATE m_wbs_tree_contract SET is_deleted = 0 WHERE contract_id = #{contractId} AND contract_id_relation = #{contractIdRelation} AND status = 1 DELETE FROM m_wbs_tree_contract WHERE p_key_id IN #{ids} UPDATE m_wbs_tree_contract SET is_deleted=1 WHERE p_key_id IN #{ids} update m_wbs_tree_contract set is_deleted = 0 p_key_id in #{primaryKeyId} UPDATE m_wbs_tree_contract SET node_name = #{wbsTree.nodeName}, full_name = #{wbsTree.nodeName}, node_type = #{wbsTree.nodeType}, major_data_type = #{wbsTree.majorDataType}, unique_code = #{wbsTree.uniqueCode}, partition_code = #{wbsTree.partitionCode}, table_type = #{wbsTree.tableType}, table_owner = #{wbsTree.tableOwner} , sort = #{wbsTree.sort} WHERE id = #{wbsTree.id} AND contract_id = #{id} AND status = 1 AND is_deleted = 0 UPDATE m_wbs_tree_contract SET node_name = #{wbsTreePrivate.nodeName}, full_name = #{wbsTreePrivate.nodeName}, node_type = #{wbsTreePrivate.nodeType}, major_data_type = #{wbsTreePrivate.majorDataType}, unique_code = #{wbsTreePrivate.uniqueCode}, partition_code = #{wbsTreePrivate.partitionCode}, table_type = #{wbsTreePrivate.tableType}, table_owner = #{wbsTreePrivate.tableOwner} , sort = #{wbsTreePrivate.sort} WHERE id = #{wbsTreePrivate.id} AND contract_id = #{id} AND status = 1 AND is_deleted = 0 UPDATE m_wbs_tree_contract SET node_name = CASE WHEN node_name LIKE '%_PL_%' THEN CONCAT(#{wbsTreePrivate.nodeName}, SUBSTRING(node_name FROM INSTR(node_name, '_PL_'))) WHEN node_name LIKE '%__%' THEN CONCAT(#{wbsTreePrivate.nodeName}, SUBSTRING(node_name FROM INSTR(node_name, '__'))) ELSE #{wbsTreePrivate.nodeName} END, full_name = CASE WHEN full_name LIKE '%_PL_%' THEN CONCAT(#{wbsTreePrivate.nodeName}, SUBSTRING(full_name FROM INSTR(full_name, '_PL_'))) WHEN full_name LIKE '%__%' THEN CONCAT(#{wbsTreePrivate.nodeName}, SUBSTRING(full_name FROM INSTR(full_name, '__'))) ELSE #{wbsTreePrivate.nodeName} END, table_type = #{wbsTreePrivate.tableType}, table_owner = #{wbsTreePrivate.tableOwner} ,sort = #{wbsTreePrivate.sort} WHERE p_key_id in #{pKeyIds} UPDATE m_wbs_tree_contract node_name = CASE WHEN node_name LIKE '%_PL_%' THEN CONCAT( #{item.nodeName} , SUBSTRING(node_name FROM INSTR(node_name, '_PL_')) ) WHEN node_name LIKE '%__%' THEN CONCAT( #{item.nodeName} , SUBSTRING(node_name FROM INSTR(node_name, '__')) ) ELSE #{item.nodeName} END, full_name = CASE WHEN full_name LIKE '%_PL_%' THEN CONCAT( #{item.nodeName} , SUBSTRING(full_name FROM INSTR(full_name, '_PL_')) ) WHEN full_name LIKE '%__%' THEN CONCAT( #{item.nodeName} , SUBSTRING(full_name FROM INSTR(full_name, '__')) ) ELSE #{item.nodeName} END, node_type = #{item.nodeType}, major_data_type = #{item.majorDataType}, table_type = #{item.tableType}, table_owner = #{item.tableOwner}, html_url = #{item.htmlUrl}, excel_id = #{item.excelId}, sort = #{item.sort} WHERE id = #{item.id} AND project_id = #{item.projectId} AND contract_id = #{item.contractId} AND status = 1 AND is_deleted = 0 UPDATE m_wbs_tree_contract SET is_deleted = 1 WHERE type = 2 AND p_key_id in #{ids} UPDATE m_wbs_tree_contract SET html_url = #{wbsTreePrivate.htmlUrl}, init_table_name = #{wbsTreePrivate.initTableName}, node_name = #{wbsTreePrivate.nodeName}, full_name = #{wbsTreePrivate.fullName} WHERE project_id = #{wbsTreePrivate.projectId} and excel_id = #{wbsTreePrivate.excelId} UPDATE m_wbs_tree_contract is_type_private_pid = #{value} where p_key_id = #{key} UPDATE m_wbs_tree_contract sort = #{value} where p_key_id = #{key} ${item} UPDATE m_wbs_tree_contract a LEFT JOIN ( SELECT tree_p_id, p_key_id FROM m_wbs_tree_contract WHERE project_id = #{projectId} and contract_id = #{contractId} ) b ON a.parent_id = b.tree_p_id SET a.p_id = IFNULL( b.p_key_id, 0 ) WHERE a.project_id = #{projectId} and contract_id = #{contractId} UPDATE m_wbs_tree_contract `ancestors_p_id` = #{item.ancestorsPId} where p_key_id = #{item.pKeyId}