You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

131 lines
4.2 KiB

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
require_once('../conn.php');
header("Content-Type: application/json; charset=UTF-8");
$signDetails = new signDetails();
echo $signDetails->getSingDetails();
}
class signDetails
{
public function getSingDetails()
{
global $conn;
$system_name = !empty($_POST['system_name']) ? $_POST['system_name'] : '';
$department_id = !empty($_POST['department_id']) ? $_POST['department_id'] : '';
$user_id = !empty($_POST['user_id']) ? $_POST['user_id'] : '';
$sql_str = "
SELECT
sm.system_name,
fm.flow_name,
f.form_key,
sf.current_assigner,
a.name AS user_name,
d.department_id,
d.depart_name AS depart_name,
sf.update_date
FROM flow AS f
LEFT JOIN system_main as sm
ON f.system_id = sm.system_id
LEFT JOIN flow_main as fm
ON f.flow_id = fm.flow_id
LEFT JOIN (
SELECT
form_key,
current_assigner,
IF(update_date IS NULL,create_date,update_date) AS update_date,
MAX(seq) AS seq
FROM subflow
WHERE 1 = 1
GROUP BY form_key, current_assigner, update_date
) AS sf
ON f.form_key = sf.form_key
LEFT JOIN account AS a
ON sf.current_assigner = a.accountid
LEFT JOIN (
SELECT DISTINCT
department_id,
name AS depart_name
FROM department
) AS d
ON a.department_id = d.department_id
WHERE 1 =1
AND f.flow_code != 'Z'
AND sf.form_key != ''
AND sf.form_key IS NOT NULL
AND sf.current_assigner != ''
AND sf.current_assigner IS NOT NULL
";
if(!empty($department_id)){
$sql_str .= " AND d.department_id = :department_id ";
}
if(!empty($user_id)){
$sql_str .= " AND sf.current_assigner = :user_id ";
}
$stmt = $conn->prepare($sql_str);
if(!empty($department_id)){
$stmt->bindParam(':department_id', $department_id);
}
if(!empty($user_id)){
$stmt->bindParam(':user_id', $user_id);
}
$stmt->execute();
$data = $stmt->fetchAll(PDO::FETCH_ASSOC);
return json_encode($data, JSON_UNESCAPED_UNICODE);
}
public function getSingDetailsAllCount()
{
global $conn;
$sql_str = "
SELECT
sm.system_name,
fm.flow_name,
f.form_key,
sf.current_assigner,
a.name AS user_name,
d.department_id,
d.depart_name AS depart_name,
-- d.name AS depart_name,
sf.update_date
FROM flow AS f
LEFT JOIN system_main as sm
ON f.system_id = sm.system_id
LEFT JOIN flow_main as fm
ON f.flow_id = fm.flow_id
LEFT JOIN (
SELECT
form_key,
current_assigner,
IF(update_date IS NULL,create_date,update_date) AS update_date,
MAX(seq) AS seq
FROM subflow
WHERE 1 = 1
GROUP BY form_key, current_assigner, update_date
) AS sf
ON f.form_key = sf.form_key
LEFT JOIN account AS a
ON sf.current_assigner = a.accountid
LEFT JOIN (
SELECT DISTINCT
department_id,
name AS depart_name
FROM department
) AS d
ON a.department_id = d.department_id
WHERE 1 =1
AND f.flow_code != 'Z'
AND sf.form_key != ''
AND sf.form_key IS NOT NULL
AND sf.current_assigner != ''
AND sf.current_assigner IS NOT NULL
";
$stmt = $conn->prepare($sql_str);
$stmt->execute();
return $stmt->rowCount();
}
}