BEGIN
DECLARE postUuid VARCHAR(40);
DECLARE post VARCHAR(40);
SELECT
t2.user_id INTO postUuid
FROM (
SELECT
IF(e.post_user_id IS NULL, d.user_uuid, e.post_user_id) AS user_uuid
FROM (
SELECT
b.uuid AS reception_uuid
FROM (
SELECT
b.biz_id
FROM
bpm_process_instance a
INNER JOIN biz_factoring_reception b ON a.biz_uuid = b.uuid
AND b.sys_status = 1
WHERE
a.sys_status = 1
AND a.instance_id = instanceId
) t
INNER JOIN biz_factoring_reception b ON t.biz_id = b.biz_id
AND b.sys_status = 1
WHERE b.receive_file_type = 0
ORDER BY b.receive_no ASC
LIMIT 1
) a
INNER JOIN bpm_process_instance b ON a.reception_uuid = b.biz_uuid
AND b.sys_status = 1
INNER JOIN bpm_activity c ON b.instance_id = c.instance_id
AND c.ACTIVITY_ID = 'o_42'
AND c.sys_status = 1
INNER JOIN bpm_task_user d ON c.task_id = d.task_id
AND d.sys_status = 1
LEFT JOIN biz_post_assign_info e ON d.user_uuid = e.leave_user_id
AND e.post_start_date <= '2019-04-01'
AND e.post_end_date >= '2019-04-01'
AND e.sys_status = 1
) t1
INNER JOIN sys_user t2 ON t1.user_uuid = t2.uuid
AND t2.sys_status = 1;
IF postUuid IS NOT NULL THEN
SET post = postUuid;
SELECT
IF (
COUNT(a.post_user_id)!=1,
'flag',
a.post_user_id
) INTO post
FROM biz_post_assign_info a,sys_user b
WHERE
a.post_start_date <= '2019-04-01'
AND a.post_end_date >= '2019-04-01'
AND a.leave_user_id = b.uuid
AND b.user_id = post
AND a.sys_status = 1
AND b.sys_status = 1;
IF post != 'flag' THEN
REPEAT
SELECT
IF (
COUNT(post_user_id) != 1,
'flag',
post_user_id
) INTO post
FROM
biz_post_assign_info
WHERE
post_start_date <= '2019-04-01'
AND post_end_date >= '2019-04-01'
AND leave_user_id = post;
IF post != 'flag' THEN
SET postUuid = post;
END IF;
UNTIL post = 'flag'
END REPEAT;
SELECT user_id INTO postUuid FROM sys_user WHERE uuid = postUuid;
END IF;
END IF;
RETURN postUuid;
END