รวม code แก้ OP รอบใหม่

This commit is contained in:
Nakorn Rientrakrunchai
2020-04-22 06:33:48 +07:00
parent 5aff3ddb9d
commit a2a54c459d
26 changed files with 914 additions and 92 deletions

View File

@@ -107,6 +107,7 @@ namespace TodoAPI2.Models
thefile = m_eva_evaluation_achievement_process2.thefile,
thefileDisplay = m_eva_evaluation_achievement_process2.thefileDisplay,
score = m_eva_evaluation_achievement_process2.score,
sumary = m_eva_evaluation_achievement_process2.sumary,
score2 = m_eva_evaluation_achievement_process2.score2,
sumary2 = m_eva_evaluation_achievement_process2.sumary2,
target_score1 = m_eva_evaluation_achievement_process2.target_score1,

View File

@@ -34,6 +34,8 @@ namespace TodoAPI2.Models
public decimal? score { get; set; }
public decimal? sumary { get; set; }
public decimal? score2 { get; set; }
public decimal? sumary2 { get; set; }

View File

@@ -207,11 +207,11 @@ namespace TodoAPI2.Models
//existingEntity.weight = i.weight;
existingEntity.score = i.score;
existingEntity.sumary = i.sumary;
//existingEntity.target_score1 = i.target_score1;
//existingEntity.target_score2 = i.target_score2;
//existingEntity.target_score3 = i.target_score3;
//existingEntity.target_score4 = i.target_score4;
//existingEntity.target_score5 = i.target_score5;
existingEntity.target_score1 = i.target_score1;
existingEntity.target_score2 = i.target_score2;
existingEntity.target_score3 = i.target_score3;
existingEntity.target_score4 = i.target_score4;
existingEntity.target_score5 = i.target_score5;
_repository.UpdateWithoutCommit(i.id.Value, existingEntity);

View File

@@ -0,0 +1,22 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using TTSW.EF;
using TTSW.Utils;
using TTSW.Constant;
using TTSW.Common;
using TodoAPI2.Models;
namespace TodoAPI2.Models
{
public interface Ieva_temp_fingerscanService
{
List<eva_temp_fingerscanViewModel> GetListBybadgenumber(string badgenumber);
List<eva_temp_fingerscanViewModel> GetListBySearch(eva_temp_fingerscanSearchModel model);
eva_temp_fingerscanWithSelectionViewModel GetBlankItem();
string InsertFingerScanToHR(List<string> model);
string RecieveFingerScanFromLocal(List<fingerscanDataModel> model);
}
}

View File

@@ -0,0 +1,32 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Threading.Tasks;
using TTSW.EF;
using TTSW.Utils;
using TTSW.Constant;
using TTSW.Common;
using System.IO;
namespace TodoAPI2.Models
{
public class eva_temp_fingerscanEntity : BaseEntity2<string>
{
[MaxLength(255)]
public string badgenumber { get; set; }
[MaxLength(255)]
public string firstname { get; set; }
[MaxLength(255)]
public string lastname { get; set; }
public DateTime? checktime { get; set; }
}
}

View File

@@ -0,0 +1,30 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Threading.Tasks;
using TTSW.EF;
using TTSW.Utils;
using TTSW.Constant;
using TTSW.Common;
namespace TodoAPI2.Models
{
public class eva_temp_fingerscanInputModel
{
public Guid? id { get; set; }
public string badgenumber { get; set; }
public string firstname { get; set; }
public string lastname { get; set; }
public DateTime? checktime { get; set; }
public string active_mode { get; set; }
}
}

View File

@@ -0,0 +1,21 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Threading.Tasks;
using TTSW.EF;
using TTSW.Utils;
using TTSW.Constant;
using TTSW.Common;
namespace TodoAPI2.Models
{
public class eva_temp_fingerscanReportRequestModel : eva_temp_fingerscanSearchModel
{
public string filetype { get; set; }
public string contentType { get { return MyHelper.GetContentType(filetype); } }
}
}

View File

@@ -0,0 +1,29 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Threading.Tasks;
using TTSW.EF;
using TTSW.Utils;
using TTSW.Constant;
using TTSW.Common;
namespace TodoAPI2.Models
{
public class eva_temp_fingerscanSearchModel
{
public Guid id { get; set; }
public string badgenumber { get; set; }
public string firstname { get; set; }
public string lastname { get; set; }
public DateTime? checktime { get; set; }
}
}

View File

@@ -0,0 +1,270 @@
using AutoMapper;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using TTSW.EF;
using TTSW.Utils;
using TTSW.Constant;
using TTSW.Common;
using TodoAPI2.Models;
using System.IO;
using System.Web;
using System.Net;
using TTSW.Configure;
using Microsoft.Extensions.Options;
using System.Data;
using System.Data.Odbc;
using Microsoft.Extensions.Configuration;
namespace TodoAPI2.Models
{
public class eva_temp_fingerscanService : Ieva_temp_fingerscanService
{
private IBaseRepository2<eva_temp_fingerscanEntity, string> _repository;
private IMyDatabase db;
private Iexternal_linkageService ext;
private Iexternal_employeeService emp;
private IConfiguration Configuration { get; set; }
public eva_temp_fingerscanService(IBaseRepository2<eva_temp_fingerscanEntity, string> repository, IMyDatabase mydb,
Iexternal_linkageService inext, Iexternal_employeeService inemp, IConfiguration configuration)
{
_repository = repository;
db = mydb;
ext = inext;
emp = inemp;
Configuration = configuration;
}
public eva_temp_fingerscanWithSelectionViewModel GetBlankItem()
{
var i = new eva_temp_fingerscanWithSelectionViewModel();
i.checktime = DateTime.Now;
return i;
}
public List<eva_temp_fingerscanViewModel> GetListBybadgenumber(string badgenumber)
{
var model = new eva_temp_fingerscanSearchModel();
model.badgenumber = badgenumber;
return GetListBySearch(model);
}
private string GetDateStringForDB(DateTime d)
{
string year = d.Year.ToString();
string month = d.Month.ToString();
if (d.Month < 10)
{
month = "0" + month;
}
string day = d.Day.ToString();
if (d.Day < 10)
{
day = "0" + day;
}
return year + "-" + month + "-" + day;
}
private string GetTimeStringForDB(DateTime d)
{
string hour = d.Hour.ToString();
if (d.Hour < 10)
{
hour = "0" + hour;
}
string minute = d.Minute.ToString();
if (d.Minute < 10)
{
minute = "0" + minute;
}
return hour + ":" + minute;
}
public List<eva_temp_fingerscanViewModel> GetListBySearch(eva_temp_fingerscanSearchModel model)
{
//var all_emp = emp.GetListByemployee_type(null, null);
//if (!model.checktime.HasValue) return null;
//string connectionString = Configuration.GetConnectionString("fingerScanConnectionString");
//List<eva_temp_fingerscanViewModel> data = null;
//List<userinfo> userinfo_data = new List<userinfo>();
//List<checkinout> checkinout_data = new List<checkinout>();
//using (OdbcConnection odbcConnection = new OdbcConnection(connectionString))
//{
// odbcConnection.Open();
// using (var command = odbcConnection.CreateCommand())
// {
// command.CommandType = System.Data.CommandType.Text;
// command.CommandText = "select Badgenumber,userid,name,lastname from USERINFO";
// OdbcDataReader reader = command.ExecuteReader();
// while (reader.Read())
// {
// userinfo info = new userinfo();
// info.badgenumber = Convert.ToString(reader[0]);
// info.userid = Convert.ToString(reader["userid"]);
// info.name = Convert.ToString(reader["name"]);
// info.lastname = Convert.ToString(reader["lastname"]);
// userinfo_data.Add(info);
// }
// }
// odbcConnection.Close();
//}
//using (OdbcConnection odbcConnection2 = new OdbcConnection(connectionString))
//{
// odbcConnection2.Open();
// using (var command2 = odbcConnection2.CreateCommand())
// {
// command2.CommandType = System.Data.CommandType.Text;
// command2.CommandText = "select CHECKTIME,userid from checkinout";
// OdbcDataReader reader2 = command2.ExecuteReader();
// while (reader2.Read())
// {
// checkinout inout = new checkinout();
// inout.checktime = Convert.ToDateTime(reader2["CHECKTIME"]);
// inout.userid = Convert.ToString(reader2["userid"]);
// checkinout_data.Add(inout);
// }
// }
// odbcConnection2.Close();
//}
//data = (from i in checkinout_data
// join j in userinfo_data on i.userid equals j.userid
// join e in all_emp on j.badgenumber equals e.position_number
// where GetDateStringForDB(i.checktime) == GetDateStringForDB(model.checktime.Value)
// orderby i.checktime descending
// select new eva_temp_fingerscanViewModel()
// {
// badgenumber = j.badgenumber,
// checktime = i.checktime,
// fullname_in_finger_scan = j.name + " " + j.lastname,
// fullname_in_system = e.fullname,
// txt_checktime = GetDateStringForDB(i.checktime) + " " + GetTimeStringForDB(i.checktime),
// id = e.id.ToString() + "#" + GetDateStringForDB(i.checktime) + "#" + GetTimeStringForDB(i.checktime)
// }).ToList();
//return data;
return null;
}
private string ClearName(string fullname)
{
return fullname.Replace(" ", "")
.Replace("นาย", "")
.Replace("นางสาว", "")
.Replace("นาง", "")
.Replace("น.ส.", "")
.Replace("ผศ.ดร.", "");
}
public string RecieveFingerScanFromLocal(List<fingerscanDataModel> model)
{
var all_emp = emp.GetListByemployee_type(null, null);
var result = (from i in model
join e in all_emp on ClearName(i.fullname) equals ClearName(e.halfname)
select e.id.ToString() + "#" + GetDateStringForDB(i.checktime) + "#" + GetTimeStringForDB(i.checktime)).ToList();
return InsertFingerScanToHR(result);
}
public string InsertFingerScanToHR(List<string> model)
{
int count_insert = 0;
foreach (var i in model)
{
var data = i.Split('#');
string employee_id = data[0];
string date = data[1];
string time = data[2];
string sql_checking = $"select employee_id,date,time from tad_time_attendances where employee_id={employee_id} and date='{date}' and time='{time}' ";
DataTable dt = db.ExecuteDataTableNpgsql(sql_checking, null);
if (dt.Rows.Count == 0)
{
string sql_insert = $"insert into tad_time_attendances(employee_id,date,time) values({employee_id},'{date}','{time}')";
db.ExecuteNonQueryNpgsql(sql_insert, null);
count_insert++;
}
}
return count_insert.ToString();
}
}
public class userinfo
{
public string badgenumber { get; set; }
public string userid { get; set; }
public string name { get; set; }
public string lastname { get; set; }
}
public class checkinout
{
public DateTime checktime { get; set; }
public string userid { get; set; }
}
public class fingerscanDataModel
{
public string badgenumber { get; set; }
public DateTime checktime { get; set; }
public string fullname { get; set; }
}
}
//using (var command = odbcConnection.CreateCommand())
// {
// command.CommandType = System.Data.CommandType.Text;
// string checktime = GetDateStringForDB(model.checktime.Value);
// command.CommandText = $@"
//SELECT USERINFO.[name], USERINFO.[lastname], USERINFO.Badgenumber, CHECKINOUT.CHECKTIME
//FROM CHECKINOUT INNER JOIN USERINFO ON CHECKINOUT.USERID = USERINFO.USERID
//where CHECKTIME is not null
//and DateValue(CHECKINOUT.CHECKTIME) = #{checktime}#
//order by CHECKTIME desc; ";
// OdbcDataReader reader = command.ExecuteReader();
// while (reader.Read())
// {
// var n = new eva_temp_fingerscanViewModel();
// //n.id = Convert.ToDateTime(reader["CHECKTIME"]);
// if(reader["checktime"] != DBNull.Value)
// {
// n.badgenumber = Convert.ToString(reader["Badgenumber"]);
// n.checktime = Convert.ToDateTime(reader["CHECKTIME"]);
// n.txt_checktime = GetDateStringForDB(n.checktime.Value) + " " + GetTimeStringForDB(n.checktime.Value);
// n.fullname_in_finger_scan = Convert.ToString(reader["name"]) + " " + Convert.ToString(reader["lastname"]);
// var x = (from i in all_emp
// where i.position_number == n.badgenumber
// select i).FirstOrDefault();
// if (x != null)
// {
// n.id = x.id.ToString()+"#"+ GetDateStringForDB(n.checktime.Value)+"#"+ GetTimeStringForDB(n.checktime.Value);
// n.fullname_in_system = x.fullname;
// };
// data.Add(n);
// }
// }
//}

View File

@@ -0,0 +1,42 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Threading.Tasks;
using TTSW.EF;
using TTSW.Utils;
using TTSW.Constant;
using TTSW.Common;
namespace TodoAPI2.Models
{
public class eva_temp_fingerscanViewModel : BaseViewModel2<string>
{
public string badgenumber { get; set; }
public DateTime? checktime { get; set; }
public string txt_checktime { get; set; }
//{
// get
// {
// if (this.checktime.HasValue)
// {
// return MyHelper.GetDateStringForReport(this.checktime) + " " + this.checktime.Value.ToShortTimeString();
// }
// else
// {
// return "";
// }
// }
//}
public string fullname_in_system { get; set; }
public string fullname_in_finger_scan { get; set; }
}
}

View File

@@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace TodoAPI2.Models
{
public class eva_temp_fingerscanWithSelectionViewModel: eva_temp_fingerscanViewModel
{
}
}

View File

@@ -68,6 +68,7 @@ where ha.employee_id = @emp_id and ha.workingstatus = 'สถานะปฏิ
var sql = string.Format(@"
select he.employee_id as id, mpn.position_number,he.employee_no,he.position_no,
CONCAT(htm.title_name,' ',he.firstname,' ',he.lastname) as fullname,opd.position_name,
CONCAT(he.firstname,he.lastname) as halfname,
orgdata.id as department_id,orgdata.department_name,orgdata.department_code,he.salary,
he.employee_type_id, het.employee_type_name,opd.position_id as position_id,
u.email as user_email, u.id as user_id,hpl.position_level_name,he.position_level_id,
@@ -95,7 +96,8 @@ order by he.firstname,he.lastname;
i.position_number = dr["position_number"].ToString();
i.position_name = dr["position_name"].ToString();
i.fullname= dr["fullname"].ToString();
if(dr["employee_type_id"] != DBNull.Value)
i.halfname = dr["halfname"].ToString();
if (dr["employee_type_id"] != DBNull.Value)
{
i.employee_type_id = Convert.ToInt32(dr["employee_type_id"]);
i.employee_type_name = dr["employee_type_name"].ToString();

View File

@@ -21,6 +21,8 @@ namespace TodoAPI2.Models
public string fullname { get; set; }
public string halfname { get; set; }
public int? employee_type_id { get; set; }
public int? position_id { get; set; }