DELIMITER $$ USE `mtnoh_aaa_platform`$$ DROP PROCEDURE IF EXISTS `proc_eoms_electric_power_generation_check_engine`$$ CREATE DEFINER=`dwgl`@`%` PROCEDURE `proc_eoms_electric_power_generation_check_engine`( p_oil_engine_id INT, p_task_id INT, p_task_sn VARCHAR(40), P_task_user VARCHAR(255), P_task_use_date DATETIME, P_task_end_date DATETIME ) BEGIN DECLARE p_oil_engine_Status,P_oil_engine_use_status VARCHAR(300); DECLARE p_engine_id,p_engine_id_old,p_use_task_id,p_work_flow_version_id INT; DECLARE p_use_task_sn VARCHAR(40); DECLARE result_code CHAR(5) DEFAULT '00000'; DECLARE msg TEXT;DECLARE set_error_code CHAR(1); DECLARE result_info,success_info TEXT; DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN GET DIAGNOSTICS CONDITION 1 result_code = RETURNED_SQLSTATE, msg = MESSAGE_TEXT; ROLLBACK; UPDATE mtdwgl_res.tb_irms_material_oil_engine oe SET oil_engine_use_status = '空閒' WHERE oe.deleted = '0' AND oe.oil_engine_id = p_oil_engine_id; SET result_info = CONCAT('校驗油機狀態失敗,錯誤代碼:',result_code,',錯誤信息:',CHAR(13),CHAR(10),IFNULL(msg,'')); SELECT result_info; END; START TRANSACTION; SELECT oe.oil_engine_Status,oe.oil_engine_use_status,oe.oil_engine_id,ic.task_id,ic.task_sn INTO p_oil_engine_Status,P_oil_engine_use_status,p_engine_id,p_use_task_id,p_use_task_sn FROM mtdwgl_res.tb_irms_material_oil_engine oe LEFT JOIN mtnoh_aaa_resource.tb_task_electricity_generation_info_current ic ON oe.oil_engine_id = ic.oil_engine_id WHERE oe.deleted = '0' AND oe.oil_engine_id = p_oil_engine_id LIMIT 1; SELECT ic.oil_engine_id INTO p_engine_id_old FROM mtnoh_aaa_resource.tb_task_electricity_generation_info_current ic WHERE ic.task_id = p_task_id AND ic.task_sn = p_task_sn LIMIT 1; IF (p_oil_engine_Status = '在用' AND P_oil_engine_use_status = '空閒') OR p_use_task_sn = p_task_sn THEN SET p_work_flow_version_id := mtnoh_aaa_platform.get_work_flow_version_id(p_task_sn); IF IFNULL(p_engine_id_old,p_oil_engine_id) <> p_oil_engine_id THEN UPDATE mtdwgl_res.tb_irms_material_oil_engine oe SET oil_engine_use_status = '空閒' WHERE oe.deleted = '0' AND oe.oil_engine_id = p_engine_id_old; END IF; UPDATE mtdwgl_res.tb_irms_material_oil_engine oe SET oil_engine_use_status = '發電' WHERE oe.deleted = '0' AND oe.oil_engine_id = p_oil_engine_id; INSERT INTO mtnoh_aaa_resource.tb_task_electricity_generation_info_current (oil_engine_id,work_flow_version_id,task_id,task_sn,task_user,task_use_date,task_end_date) VALUES(p_oil_engine_id,p_work_flow_version_id,p_task_id,p_task_sn,P_task_user,P_task_use_date,P_task_end_date) ON DUPLICATE KEY UPDATE task_user = P_task_user ,task_use_date = P_task_use_date ,task_end_date = P_task_end_date; ELSE IF IFNULL(p_engine_id,-1) <> -1 THEN SELECT p_oil_engine_Status,P_oil_engine_use_status; END IF; END IF; COMMIT; END$$ DELIMITER ;