23 lines
992 B
SQL
23 lines
992 B
SQL
DROP TRIGGER IF EXISTS trg_loading_pick_task_before_update;
|
|||
|
|
DELIMITER $$
|
||
|
|
CREATE TRIGGER trg_loading_pick_task_before_update
|
||
|
|
BEFORE UPDATE ON fl_loading_pick_task
|
||
|
|
FOR EACH ROW
|
||
|
|
BEGIN
|
||
|
|
IF OLD.task_status = 'COMPLETED' THEN
|
||
|
|
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = '已完成PDA拣货任务不可修改';
|
||
|
|
END IF;
|
||
|
|
IF NEW.loading_plan_id <> OLD.loading_plan_id
|
||
|
|
OR NOT (NEW.container_booking_id <=> OLD.container_booking_id)
|
||
|
|
OR NOT (NEW.cabinet_no <=> OLD.cabinet_no) THEN
|
||
|
|
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'PDA拣货任务稳定归属不可修改';
|
||
|
|
END IF;
|
||
|
|
IF NOT ((OLD.task_status = 'LOADING' AND NEW.task_status IN ('LOADING','COMPLETING'))
|
||
|
|
OR (OLD.task_status = 'COMPLETING' AND NEW.task_status IN ('COMPLETING','COMPLETION_FAILED','COMPLETED'))
|
||
|
|
OR (OLD.task_status = 'COMPLETION_FAILED' AND NEW.task_status = 'COMPLETING')) THEN
|
||
|
|
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'PDA拣货任务状态流转非法';
|
||
|
|
END IF;
|
||
|
|
END$$
|
||
|
|
DELIMITER ;
|
||
|
|
|