migrate retirehistory

This commit is contained in:
Kittapath 2023-08-03 12:53:33 +07:00
parent 0bf0386863
commit df9c2204d8
12 changed files with 12507 additions and 38 deletions

View file

@ -164,8 +164,28 @@ namespace BMA.EHR.Retirement.Service.Controllers
Year = x.Year,
Round = x.Round,
Total = x.Total,
Json = true,
})
.ToListAsync();
var retire = await _context.RetirementPeriods
.Include(x => x.RetirementProfiles)
.Where(x => x.Year == year)
.Where(x => x.Type.Trim().ToUpper().Contains(type.Trim().ToUpper()))
.FirstOrDefaultAsync();
if (retire != null)
{
retire_old.Add(new
{
Id = retire.Id,
CreatedAt = retire.CreatedAt,
Year = retire.Year,
Round = retire.Round,
Total = retire.RetirementProfiles.Count(),
Json = false,
});
}
return Success(retire_old);
}
return Success();
@ -224,7 +244,7 @@ namespace BMA.EHR.Retirement.Service.Controllers
var data = new RetirementProfile
{
Order = order,
Remove = "pending",
Remove = "PENDING",
RetirementPeriod = retire,
Profile = profile,
CreatedUserId = FullName ?? "",
@ -244,8 +264,32 @@ namespace BMA.EHR.Retirement.Service.Controllers
{
if (req.Option == null)
req.Option = "EDIT";
var file_name = DateTime.Now.ToString();
var profile = Newtonsoft.Json.JsonConvert.SerializeObject(retire.RetirementProfiles);
var file_name = DateTime.Now.ToString("yyyyMMddTHHmmss");
var profile_old = await _context.RetirementProfiles
.Where(x => x.RetirementPeriod == retire)
.Select(x => new
{
Order = x.Order,
Id = x.Id,
Reason = x.Reason,
Remove = x.Remove,
ProfileId = x.Profile.Id,
CitizenId = x.Profile.CitizenId,
Prefix = x.Profile.Prefix == null ? null : x.Profile.Prefix.Name,
FullName = $"{x.Profile.FirstName} {x.Profile.LastName}",
OrganizationOrganization = x.Profile.OrganizationOrganization,
Oc = x.Profile.Oc,
Position = x.Profile.Position == null ? null : x.Profile.Position.Name,
PositionType = x.Profile.PositionType == null ? null : x.Profile.PositionType.Name,
PositionExecutive = x.Profile.PositionExecutive,
PosNo = x.Profile.PosNo == null ? null : x.Profile.PosNo.Name,
PositionEmployeePosition = x.Profile.PositionEmployeePosition,
PositionEmployeeLevel = x.Profile.PositionEmployeeLevel,
PositionEmployeeGroup = x.Profile.PositionEmployeeGroup,
PosNoEmployee = x.Profile.PosNoEmployee,
})
.ToListAsync();
var profile = Newtonsoft.Json.JsonConvert.SerializeObject(profile_old);
await _documentService.GenerateJsonFile(profile, "/retire", file_name);
var history = new RetirementPeriodHistory
{
@ -271,15 +315,41 @@ namespace BMA.EHR.Retirement.Service.Controllers
retire.LastUpdateFullName = FullName ?? "System Administrator";
retire.LastUpdateUserId = UserId ?? "";
retire.LastUpdatedAt = DateTime.Now;
// RetireHistoryId
////ดึงไฟล์json
// foreach (var retire_profile in retire.RetirementProfiles)
// {
// retire_profile.Remove = retire_profile.Remove.Trim().ToUpper().Contains("CHANGE") ? "PENDING" : retire_profile.Remove;
// retire_profile.LastUpdateFullName = FullName ?? "System Administrator";
// retire_profile.LastUpdateUserId = UserId ?? "";
// retire_profile.LastUpdatedAt = DateTime.Now;
// }
_context.RetirementProfiles.RemoveRange(retire.RetirementProfiles);
if (!req.Option.Trim().ToUpper().Contains("ADD"))
{
var profileHistorys = await _context.RetirementPeriodHistorys.AsQueryable()
.FirstOrDefaultAsync(x => x.Id == req.RetireHistoryId);
if (profileHistorys == null)
return Error(GlobalMessages.InvalidRetirementHistoryRequest, 404);
using (var client = new HttpClient())
{
var url = $"https://s3cluster.frappet.com/bma-ehr-fpt/retire/{profileHistorys.ProfileFile}";
var responseTask = client.GetAsync(url);
var results = responseTask.Result;
var profileOlds = Newtonsoft.Json.JsonConvert.DeserializeObject<List<RetirementProfile>>(results.Content.ReadAsStringAsync().Result);
if (profileOlds != null)
{
foreach (var profileOld in profileOlds)
{
var data = new RetirementProfile
{
Order = profileOld.Order,
Remove = "PENDING",
RetirementPeriod = retire,
Profile = profileOld.Profile,
CreatedUserId = profileOld.CreatedUserId,
CreatedFullName = profileOld.CreatedFullName,
CreatedAt = profileOld.CreatedAt,
LastUpdateFullName = profileOld.LastUpdateFullName,
LastUpdateUserId = profileOld.LastUpdateUserId,
LastUpdatedAt = profileOld.LastUpdatedAt,
};
}
}
}
}
await _context.SaveChangesAsync();
}
@ -323,12 +393,26 @@ namespace BMA.EHR.Retirement.Service.Controllers
[HttpGet("{retireId:length(36)}")]
public async Task<ActionResult<ResponseObject>> GetProfileRetirement(Guid retireId)
{
var retire = await _context.RetirementPeriodHistorys
var retire = await _context.RetirementPeriods
.Include(x => x.RetirementProfiles)
.FirstOrDefaultAsync(x => x.Id == retireId);
if (retire == null)
return Error(GlobalMessages.InvalidRetirementRequest, 404);
{
var profileHistorys = await _context.RetirementPeriodHistorys.AsQueryable()
.FirstOrDefaultAsync(x => x.Id == retireId);
if (profileHistorys == null)
return Error(GlobalMessages.InvalidRetirementHistoryRequest, 404);
using (var client = new HttpClient())
{
var url = $"https://s3cluster.frappet.com/bma-ehr-fpt/retire/{profileHistorys.ProfileFile}";
var responseTask = client.GetAsync(url);
var results = responseTask.Result;
// Console.WriteLine(results.Content.ReadAsStringAsync().Result);
return Success(new { Json = true, profile = Newtonsoft.Json.JsonConvert.DeserializeObject<List<RetirementProfile>>(results.Content.ReadAsStringAsync().Result) });
}
}
return Success(retire);
return Success(new { Json = false, profile = retire.RetirementProfiles });
}
/// <summary>
@ -340,19 +424,19 @@ namespace BMA.EHR.Retirement.Service.Controllers
/// <response code="400">ค่าตัวแปรที่ส่งมาไม่ถูกต้อง</response>
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
[HttpDelete("profile/{retireProfileId:length(36)}")]
public async Task<ActionResult<ResponseObject>> DeleteProfileRetirement(Guid retireProfileId)
{
var profile = await _context.RetirementProfiles
.FirstOrDefaultAsync(x => x.Id == retireProfileId);
if (profile == null)
return Error(GlobalMessages.DataNotFound, 404);
// [HttpDelete("profile/{retireProfileId:length(36)}")]
// public async Task<ActionResult<ResponseObject>> DeleteProfileRetirement(Guid retireProfileId)
// {
// var profile = await _context.RetirementProfiles
// .FirstOrDefaultAsync(x => x.Id == retireProfileId);
// if (profile == null)
// return Error(GlobalMessages.DataNotFound, 404);
_context.RetirementProfiles.Remove(profile);
_context.SaveChanges();
// _context.RetirementProfiles.Remove(profile);
// _context.SaveChanges();
return Success();
}
// return Success();
// }
/// <summary>
/// Add รายชื่อผู้เกษียณอายุราชการในประกาศ
@ -427,7 +511,7 @@ namespace BMA.EHR.Retirement.Service.Controllers
/// <response code="400">ค่าตัวแปรที่ส่งมาไม่ถูกต้อง</response>
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
[HttpPost("reason")]
[HttpPost("edit")]
public async Task<ActionResult<ResponseObject>> EditReasonProfileRetirement([FromBody] ProfileRetireRequest req)
{
var profile = await _context.RetirementProfiles
@ -445,6 +529,44 @@ namespace BMA.EHR.Retirement.Service.Controllers
return Success();
}
/// <summary>
/// แก้ไขข้อมูลบุคคล
/// </summary>
/// <param name="retireProfileId">Id ผู้ใช้งานในประกาศ</param>
/// <param name="reason">เหตุผล</param>
/// <returns></returns>
/// <response code="200"></response>
/// <response code="400">ค่าตัวแปรที่ส่งมาไม่ถูกต้อง</response>
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
[HttpPost("remove")]
public async Task<ActionResult<ResponseObject>> RemoveReasonProfileRetirement([FromBody] ProfileRetireRequest req)
{
var profile = await _context.RetirementProfiles
.Include(x => x.RetirementPeriod)
.ThenInclude(x => x.RetirementPeriodHistorys)
.FirstOrDefaultAsync(x => x.Id == req.RetireProfileId);
if (profile == null)
return Error(GlobalMessages.DataNotFound, 404);
if (profile.RetirementPeriod.RetirementPeriodHistorys.Count() == 0)
{
await GenOrderByYear(profile.RetirementPeriod.Id);
_context.RetirementProfiles.Remove(profile);
}
else
{
profile.Remove = "REMOVE";
profile.Reason = req.Reason;
profile.LastUpdateFullName = FullName ?? "System Administrator";
profile.LastUpdateUserId = UserId ?? "";
profile.LastUpdatedAt = DateTime.Now;
}
_context.SaveChanges();
return Success();
}
/// <summary>
/// View เหตุผลแก้ไขข้อมูลบุคคล
/// </summary>

View file

@ -27,10 +27,10 @@
}
},
"MinIO": {
"Endpoint": "https://s3.frappet.com/",
"Endpoint": "https://s3cluster.frappet.com/",
"AccessKey": "frappet",
"SecretKey": "P@ssw0rd",
"BucketName": "bma-recruit"
"SecretKey": "FPTadmin2357",
"BucketName": "bma-ehr-fpt"
},
"Protocol": "HTTPS"
}

View file

@ -0,0 +1 @@
[{"Order":2,"Id":"08db93d9-a26b-4a93-8ecc-01f6bc4425b7","Reason":"","Remove":"PENDING","ProfileId":"08db721d-b171-45f1-845e-d78809081cfa","CitizenId":"0000000000053","Prefix":"นาย","FullName":"บล ตง","OrganizationOrganization":"กองพัฒนาระบบราชการกรุงเทพมหานคร","Oc":"ปลัดกรุงเทพมหานคร/สำนักงานคณะกรรมการข้าราชการกรุงเทพมหานคร/กองพัฒนาระบบราชการกรุงเทพมหานคร","Position":"ผู้อำนวยการ","PositionType":"อำนวยการ","PositionExecutive":"ผู้อำนวยการกอง","PosNo":"กพร.1","PositionEmployeePosition":null,"PositionEmployeeLevel":null,"PositionEmployeeGroup":null,"PosNoEmployee":null},{"Order":1,"Id":"08db93d9-a26f-4d4e-885e-c996514222f2","Reason":"","Remove":"PENDING","ProfileId":"08db721d-b438-414e-861a-bd74b2cc8b03","CitizenId":"0000000000088","Prefix":"นาง","FullName":"สจ สว","OrganizationOrganization":"ส่วนโครงสร้างและอัตรากำลัง","Oc":"ปลัดกรุงเทพมหานคร/สำนักงานคณะกรรมการข้าราชการกรุงเทพมหานคร/กองอัตรากำลัง/ส่วนโครงสร้างและอัตรากำลัง","Position":"ผู้อำนวยการ","PositionType":"อำนวยการ","PositionExecutive":"ผู้อำนวยการส่วน","PosNo":"กคอ.70","PositionEmployeePosition":null,"PositionEmployeeLevel":null,"PositionEmployeeGroup":null,"PosNoEmployee":null},{"Order":4,"Id":"08db93d9-a26f-4dbb-8afb-4bed0ac1c147","Reason":"","Remove":"PENDING","ProfileId":"08db721d-bb39-4902-8dab-dc582de20ab7","CitizenId":"0000000000209","Prefix":"นางสาว","FullName":"วณ มจ","OrganizationOrganization":"ฝ่ายบริหารงานทั่วไป","Oc":"ปลัดกรุงเทพมหานคร/สำนักปลัดกรุงเทพมหานคร/สถาบันพัฒนาข้าราชการกรุงเทพมหานคร/ฝ่ายบริหารงานทั่วไป","Position":"เจ้าพนักงานธุรการ","PositionType":"ทั่วไป","PositionExecutive":null,"PosNo":"สพข.15","PositionEmployeePosition":null,"PositionEmployeeLevel":null,"PositionEmployeeGroup":null,"PosNoEmployee":null},{"Order":3,"Id":"08db93d9-a26f-4ddf-8c67-3ce67296b477","Reason":"","Remove":"PENDING","ProfileId":"08db721d-c0f0-4a43-820e-0d505da95a20","CitizenId":"0000000000301","Prefix":"นางสาว","FullName":"มร พจ","OrganizationOrganization":"ศูนย์การเรียนรู้มหานคร","Oc":"ปลัดกรุงเทพมหานคร/สำนักปลัดกรุงเทพมหานคร/สถาบันพัฒนาข้าราชการกรุงเทพมหานคร/ศูนย์การเรียนรู้มหานคร","Position":"นักจัดการงานทั่วไป","PositionType":"วิชาการ","PositionExecutive":"ผู้อำนวยการศูนย์","PosNo":"สพข.107","PositionEmployeePosition":null,"PositionEmployeeLevel":null,"PositionEmployeeGroup":null,"PosNoEmployee":null}]

View file

@ -0,0 +1 @@
[{"Order":2,"Id":"08db93d9-a26b-4a93-8ecc-01f6bc4425b7","Reason":"","Remove":"PENDING","ProfileId":"08db721d-b171-45f1-845e-d78809081cfa","CitizenId":"0000000000053","Prefix":"นาย","FullName":"บล ตง","OrganizationOrganization":"กองพัฒนาระบบราชการกรุงเทพมหานคร","Oc":"ปลัดกรุงเทพมหานคร/สำนักงานคณะกรรมการข้าราชการกรุงเทพมหานคร/กองพัฒนาระบบราชการกรุงเทพมหานคร","Position":"ผู้อำนวยการ","PositionType":"อำนวยการ","PositionExecutive":"ผู้อำนวยการกอง","PosNo":"กพร.1","PositionEmployeePosition":null,"PositionEmployeeLevel":null,"PositionEmployeeGroup":null,"PosNoEmployee":null},{"Order":1,"Id":"08db93d9-a26f-4d4e-885e-c996514222f2","Reason":"","Remove":"PENDING","ProfileId":"08db721d-b438-414e-861a-bd74b2cc8b03","CitizenId":"0000000000088","Prefix":"นาง","FullName":"สจ สว","OrganizationOrganization":"ส่วนโครงสร้างและอัตรากำลัง","Oc":"ปลัดกรุงเทพมหานคร/สำนักงานคณะกรรมการข้าราชการกรุงเทพมหานคร/กองอัตรากำลัง/ส่วนโครงสร้างและอัตรากำลัง","Position":"ผู้อำนวยการ","PositionType":"อำนวยการ","PositionExecutive":"ผู้อำนวยการส่วน","PosNo":"กคอ.70","PositionEmployeePosition":null,"PositionEmployeeLevel":null,"PositionEmployeeGroup":null,"PosNoEmployee":null},{"Order":4,"Id":"08db93d9-a26f-4dbb-8afb-4bed0ac1c147","Reason":"","Remove":"PENDING","ProfileId":"08db721d-bb39-4902-8dab-dc582de20ab7","CitizenId":"0000000000209","Prefix":"นางสาว","FullName":"วณ มจ","OrganizationOrganization":"ฝ่ายบริหารงานทั่วไป","Oc":"ปลัดกรุงเทพมหานคร/สำนักปลัดกรุงเทพมหานคร/สถาบันพัฒนาข้าราชการกรุงเทพมหานคร/ฝ่ายบริหารงานทั่วไป","Position":"เจ้าพนักงานธุรการ","PositionType":"ทั่วไป","PositionExecutive":null,"PosNo":"สพข.15","PositionEmployeePosition":null,"PositionEmployeeLevel":null,"PositionEmployeeGroup":null,"PosNoEmployee":null},{"Order":3,"Id":"08db93d9-a26f-4ddf-8c67-3ce67296b477","Reason":"","Remove":"PENDING","ProfileId":"08db721d-c0f0-4a43-820e-0d505da95a20","CitizenId":"0000000000301","Prefix":"นางสาว","FullName":"มร พจ","OrganizationOrganization":"ศูนย์การเรียนรู้มหานคร","Oc":"ปลัดกรุงเทพมหานคร/สำนักปลัดกรุงเทพมหานคร/สถาบันพัฒนาข้าราชการกรุงเทพมหานคร/ศูนย์การเรียนรู้มหานคร","Position":"นักจัดการงานทั่วไป","PositionType":"วิชาการ","PositionExecutive":"ผู้อำนวยการศูนย์","PosNo":"สพข.107","PositionEmployeePosition":null,"PositionEmployeeLevel":null,"PositionEmployeeGroup":null,"PosNoEmployee":null}]

View file

@ -0,0 +1 @@
[{"Order":2,"Id":"08db93d9-a26b-4a93-8ecc-01f6bc4425b7","Reason":"","Remove":"PENDING","ProfileId":"08db721d-b171-45f1-845e-d78809081cfa","CitizenId":"0000000000053","Prefix":"นาย","FullName":"บล ตง","OrganizationOrganization":"กองพัฒนาระบบราชการกรุงเทพมหานคร","Oc":"ปลัดกรุงเทพมหานคร/สำนักงานคณะกรรมการข้าราชการกรุงเทพมหานคร/กองพัฒนาระบบราชการกรุงเทพมหานคร","Position":"ผู้อำนวยการ","PositionType":"อำนวยการ","PositionExecutive":"ผู้อำนวยการกอง","PosNo":"กพร.1","PositionEmployeePosition":null,"PositionEmployeeLevel":null,"PositionEmployeeGroup":null,"PosNoEmployee":null},{"Order":1,"Id":"08db93d9-a26f-4d4e-885e-c996514222f2","Reason":"","Remove":"PENDING","ProfileId":"08db721d-b438-414e-861a-bd74b2cc8b03","CitizenId":"0000000000088","Prefix":"นาง","FullName":"สจ สว","OrganizationOrganization":"ส่วนโครงสร้างและอัตรากำลัง","Oc":"ปลัดกรุงเทพมหานคร/สำนักงานคณะกรรมการข้าราชการกรุงเทพมหานคร/กองอัตรากำลัง/ส่วนโครงสร้างและอัตรากำลัง","Position":"ผู้อำนวยการ","PositionType":"อำนวยการ","PositionExecutive":"ผู้อำนวยการส่วน","PosNo":"กคอ.70","PositionEmployeePosition":null,"PositionEmployeeLevel":null,"PositionEmployeeGroup":null,"PosNoEmployee":null},{"Order":4,"Id":"08db93d9-a26f-4dbb-8afb-4bed0ac1c147","Reason":"","Remove":"PENDING","ProfileId":"08db721d-bb39-4902-8dab-dc582de20ab7","CitizenId":"0000000000209","Prefix":"นางสาว","FullName":"วณ มจ","OrganizationOrganization":"ฝ่ายบริหารงานทั่วไป","Oc":"ปลัดกรุงเทพมหานคร/สำนักปลัดกรุงเทพมหานคร/สถาบันพัฒนาข้าราชการกรุงเทพมหานคร/ฝ่ายบริหารงานทั่วไป","Position":"เจ้าพนักงานธุรการ","PositionType":"ทั่วไป","PositionExecutive":null,"PosNo":"สพข.15","PositionEmployeePosition":null,"PositionEmployeeLevel":null,"PositionEmployeeGroup":null,"PosNoEmployee":null},{"Order":3,"Id":"08db93d9-a26f-4ddf-8c67-3ce67296b477","Reason":"","Remove":"PENDING","ProfileId":"08db721d-c0f0-4a43-820e-0d505da95a20","CitizenId":"0000000000301","Prefix":"นางสาว","FullName":"มร พจ","OrganizationOrganization":"ศูนย์การเรียนรู้มหานคร","Oc":"ปลัดกรุงเทพมหานคร/สำนักปลัดกรุงเทพมหานคร/สถาบันพัฒนาข้าราชการกรุงเทพมหานคร/ศูนย์การเรียนรู้มหานคร","Position":"นักจัดการงานทั่วไป","PositionType":"วิชาการ","PositionExecutive":"ผู้อำนวยการศูนย์","PosNo":"สพข.107","PositionEmployeePosition":null,"PositionEmployeeLevel":null,"PositionEmployeeGroup":null,"PosNoEmployee":null}]