ปรับโครงสร้างระบบ ให้รองรับ การไปช่วยปฏิบัติงาน

This commit is contained in:
Nakorn Rientrakrunchai
2021-03-09 18:46:05 +07:00
parent fcc5146085
commit 2952c1fc2a
40 changed files with 2188 additions and 1176 deletions

View File

@@ -20,8 +20,8 @@ namespace TodoAPI2.Models
List<external_employeeViewModel> GetAllEmployee();
List<external_menu> GetAllMenu();
List<external_menu> GetMenuByUser(int? userid);
List<external_user> GetAllUser();
List<dept_mappingViewModel> GetDeptMapping();
}
}

View File

@@ -735,6 +735,53 @@ select id,name from users
return i;
}
public List<dept_mappingViewModel> GetDeptMapping()
{
var sql = string.Format(@"
select orgdata.id,orgdata2.id as id2,
case when orgdata2.department_name is not null then
concat(orgdata2.department_name,' - ',orgdata.department_name)
else orgdata.department_name end as full_dep,
orgdata.department_name,
orgdata.department_code,detail.parent_department_id,
case
when org_type_depart.department_degree_id = 1 then orgdata.department_code::int*1000
when detail.parent_department_id is not null and detail.parent_department_id>0
then orgdata2.department_code::int*1000+orgdata.department_code::int
else orgdata.department_code::int*100000 end as sort_order,org_type_depart.department_degree_id
from public.{0}DepartmentData{0} orgdata
left join org_organization_chart_details detail on orgdata.id = detail.department_id
left join public.{0}DepartmentData{0} orgdata2 on orgdata2.id = detail.parent_department_id
left join public.org_type_departments as org_type_depart on orgdata.department_type_id = org_type_depart.id
left join public.org_type_department_colors as org_depart_color
on org_type_depart.department_degree_id = org_depart_color.id
where orgdata.department_name is not null and orgdata.deleted_at is null
order by case
when org_type_depart.department_degree_id = 1 then orgdata.department_code::int*1000
when detail.parent_department_id is not null and detail.parent_department_id>0
then orgdata2.department_code::int*1000+orgdata.department_code::int
else orgdata.department_code::int*100000 end
", '"'.ToString());
var para = db.GetParameterListNpgsql();
DataTable dt = db.ExecuteDataTableNpgsql(sql, para);
var result = new List<dept_mappingViewModel>();
foreach (DataRow dr in dt.Rows)
{
var i = new dept_mappingViewModel();
if(dr["id"] != DBNull.Value) i.id = Convert.ToInt32(dr["id"]);
if (dr["id2"] != DBNull.Value) i.id2 = Convert.ToInt32(dr["id2"]);
if (dr["full_dep"] != DBNull.Value) i.full_dep= dr["full_dep"].ToString();
if (dr["department_name"] != DBNull.Value) i.department_name = dr["department_name"].ToString();
if (dr["department_code"] != DBNull.Value) i.department_code = dr["department_code"].ToString();
if (dr["parent_department_id"] != DBNull.Value) i.parent_department_id = Convert.ToInt32(dr["parent_department_id"]);
if (dr["sort_order"] != DBNull.Value) i.sort_order = Convert.ToInt32(dr["sort_order"]);
if (dr["department_degree_id"] != DBNull.Value) i.department_degree_id = Convert.ToInt32(dr["department_degree_id"]);
result.Add(i);
}
return result;
}
}
public class external_menu

View File

@@ -11,6 +11,18 @@ using TTSW.Common;
namespace TodoAPI2.Models
{
public class dept_mappingViewModel
{
public int? id { get; set; }
public int? id2 { get; set; }
public string full_dep { get; set; }
public string department_name { get; set; }
public string department_code { get; set; }
public int? parent_department_id { get; set; }
public int? sort_order { get; set; }
public int? department_degree_id { get; set; }
}
public class employee_leaveViewModel
{
public decimal? sum_day_sick_leave { get; set; }