From 411d59d1a53b1489650b361940f9088f93025d12 Mon Sep 17 00:00:00 2001 From: Suphonchai Phoonsawat Date: Wed, 14 Jun 2023 10:14:03 +0700 Subject: [PATCH] =?UTF-8?q?=E0=B9=81=E0=B8=81=E0=B9=89=E0=B9=84=E0=B8=82?= =?UTF-8?q?=E0=B8=A3=E0=B8=B2=E0=B8=A2=E0=B8=87=E0=B8=B2=E0=B8=99=20?= =?UTF-8?q?=E0=B8=9A=E0=B8=8A=202=203?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Controllers/OrganizationReportController.cs | 8 +- Models/Report2/Report2.cs | 28 + Report/Organization/rptAccount3.trdp | Bin 2530 -> 2528 bytes Services/OrganizationReportService.cs | 882 ++++++++++++-------- appsettings.Development.json | 2 +- 5 files changed, 563 insertions(+), 357 deletions(-) diff --git a/Controllers/OrganizationReportController.cs b/Controllers/OrganizationReportController.cs index d709214..0e9c05f 100644 --- a/Controllers/OrganizationReportController.cs +++ b/Controllers/OrganizationReportController.cs @@ -103,10 +103,12 @@ namespace BMA.EHR.Report.Service.Controllers PositionLevel = d.PositionLevel, Remark = d.Remark, PositionType = d.PositionType, + IsDirector = d.IsDirector, + GovernmentCode = d.GovernmentCode, }); } - var items = result_data.OrderBy(x => x.OcOrder).ThenBy(x => x.PositionNumberInt).ToList(); + var items = result_data.OrderBy(x => x.GovernmentCode).ThenBy(x => x.PositionNumberInt).ToList(); var rptFile = Path.Combine(_hostingEnvironment.ContentRootPath, "Report", "Organization", $"rptAccount1.trdp"); ReportPackager reportPackager = new ReportPackager(); @@ -209,7 +211,7 @@ namespace BMA.EHR.Report.Service.Controllers } - var items = result_data.OrderBy(x => x.OcOrder).ThenBy(x => x.PositionNumberInt).ToList(); + var items = result_data.OrderBy(x => x.GovernmentCode).ThenBy(x => x.PositionNumberInt).ToList(); var rptFile = Path.Combine(_hostingEnvironment.ContentRootPath, "Report", "Organization", $"rptAccount2.trdp"); ReportPackager reportPackager = new ReportPackager(); @@ -314,7 +316,7 @@ namespace BMA.EHR.Report.Service.Controllers } - var items = result_data.OrderBy(x => x.OcOrder).ThenBy(x => x.PositionNumberInt).ToList(); + var items = result_data.OrderBy(x => x.GovernmentCode).ThenBy(x => x.PositionNumberInt).ToList(); var rptFile = Path.Combine(_hostingEnvironment.ContentRootPath, "Report", "Organization", $"rptAccount3.trdp"); ReportPackager reportPackager = new ReportPackager(); diff --git a/Models/Report2/Report2.cs b/Models/Report2/Report2.cs index 03fcc6b..5737368 100644 --- a/Models/Report2/Report2.cs +++ b/Models/Report2/Report2.cs @@ -7,6 +7,34 @@ namespace BMA.EHR.Organization.Service.Models.Report2 { public class Report2 : EntityBase { + [Comment("รหัสส่วนราชการเดิม")] + public string? OrganizationShortNameOld { get; set; } + public string? GovernmentCodeOld { get; set; } + + [Comment("ชื่อหน่วยงานเดิม")] + public string? OrganizationOrganizationOld { get; set; } + + [Comment("ตำแหน่งเลขที่เดิม")] + public string? PositionNumOld { get; set; } + + [Comment("ประเภทตำแหน่งเดิม")] + public string? PositionTypeOld { get; set; } + + [Comment("ตำแหน่งทางการบริหารเดิม")] + public string? PositionExecutiveOld { get; set; } + + [Comment("ด้านทางบริหารเดิม")] + public string? PositionExecutiveSideOld { get; set; } + + [Comment("ตำแหน่งในสายงานเดิม")] + public string? PositionPathOld { get; set; } + + [Comment("ด้าน/สาขาเดิม")] + public string? PositionPathSideOld { get; set; } + + [Comment("ระดับตำแหน่งเดิม")] + public string? PositionLevelOld { get; set; } + [Comment("รหัสส่วนราชการ")] public Guid? OrganizationShortNameId { get; set; } public string? OrganizationShortName { get; set; } diff --git a/Report/Organization/rptAccount3.trdp b/Report/Organization/rptAccount3.trdp index f180a4ceb54f2f41f204d8c91cd118fdc525947b..892875c254a442847c3e30bc37c37029a8ab6854 100644 GIT binary patch delta 2185 zcmV;42zK}46W|jUP)h>@6aWAK2mnq|&Q{~23Hl=l0023W7c+ldZ_`#7$L}ZYJ6N8C zKpT!E%eGTZNu>+Ra4XeA$GMoAUmYtz{x!bkJ zmMgFfyo5DcVs~A4_-Ugt>h6MpKH^+p0>{|ny7r*qVC(Rj4Ure6hQJ9dyePx8H(W3n z;UcVT>3y&c^d4|JpzFd0GwZl5h}os4!_0a2e|OY_x`|t;mP-d>ftxO_Y!~l#P{Cf6UcYpVrwsb?|>K#yX%q; z#5#%l)p39CnSepPyKEYLIJYana)ASz3gAe0bu&18&FJ+^ko+?I`kHOI!3B2KnU3!0 zx5n1Sj(>Q-G9BY9cvxr-U6xt4&E68brkf+cGL2*t8n_Md!EOYjJ+}#fzzWUS1T3BT za%{U7@K7D#+4w0O>EC_tAs*2ecplIYl9QQ_nKgd{n7t9VZQJhkF6uQkxZ)`p+-SHa zH;&qpV}lzFti)+T0_;EW*ge5`KRff${^|wz=kf(KzzFom)QHI^K4Nmgh(RmMwu8I^ zX$tCP$2N@~`j+e3gQ!ZzBB*SWfeLCFCRc3Jc8JMkQ}6CgOa@hAGN=S5gIb13JYxam zq-TG`Ag&N|xEL72<#`|?bBda{{{&7|wFx33Cu+?I6PeS*W`Yyw%KpK3*Q@jRR)aU9 z2kD{kP-;A?iU;46bMR<#nxf_4@et$iqwhV(g&%zH9fd}-Mx&Z&2%MH6GQ( zBXS}WuM)Tsa#2a-cwUb1h~NqMI7{uw80j1x+83gMyL5tN%r;OhuEjTV1}f=(r*0#% zA$^5!rbFy%e?f&A_Ms=g5v^~v`Ru$oMQP?O;5^q7#ZsYvDkxamIEZf@L(K!-qws(4 zJAC$=kTqC1px~0~;IN`_$($r;d2q>`tmbVTO2LJ9oJ8x%0I1%0RumwSQ}Xtmf(BRq zyzRx$*sZ+ALE^7)7ZLYE#jBcB>sb}$1_>5Qo}MLelBDE-gQ-aqK1)y|)znmz8oV5- zdEqn)hNSFx`UM8!IbM^db3FHPg#CXyeI*MO4t)OG;3Ehi$qc~&eMmro^r`<>-!W&bW@bHsW;Od4+ zr^k6t=7mXuyca*|D9Q1u^dZklEo7I@9`YQyUYM0-w(Yx{ zMMcWz*5HCWXIOW`y{%q9z`5|kpew!uJm_NHJehfblq zfLc<6vuNN&8gVHLbQLRY~ZV9w4^VHUS$XfYY0a=4TmLYjH2G(&%A%4SEX-e^@4 zp=c+S;f54gEk>xLo4RvvHgcMUl6Otce@_lAcqer2@F-Hj*KFIJejkkIqb@ugsf)Hb9#|{r9XHs`u-+N!T}&X4 z8n6QKFs!jX9$|wa0bzd!uIWzSuqKLoc;H6#u9K)BGuvUWNHw@Oa5)_QpxTH=EN+`5 z48qQlLwF84y8yW1SMZVTacpMVQxmnN_t2|>;q4lmXfZj_^dz@Cz=Wf3JIVY43`N5a z7*v6S3rRq;vaHj$O4`}$?!XM#p{`C{E@)5Gy`VlBfHw3b<6(bvI<5r(^-(#NCc&SP z^h>;XvBSAM_NUIHJQAITA)PNy#i;4In3w}C=_3V^c67%U9k7YHcuQ=lC`CAf%Z%Bb zr`wE~J-+LVkxcWEviPQPlO~a?IU4y4@Tg_rIl>}aqq7+3q@?ZC?7UrC*aqQoqp-gm zOj7NMPAg8)b}@eosO0nJX+&M`hFO>LNXc^TpH3xEX?sgm%idfbeQA@G8l6*#PFns~ z%}xN%Ku)t>$4)If)5^Mr)ERH<~plrQ$n+u=}9!9a!%veqIb;fsqq=*VwHJ@DnhF!=X8>jqW!g+67^FX z$I|}9Qo`{9ZIEhmPEe~kqE4eN3`;jGI1i>_MY+Ekt~tV$qT3|h((!ehQcGIxma0b1 zkzOP^IyOE^sTjJ(rfS%vDK^?11skP$>GPVL#nNjOHBYfg|B0=+N;YwAB`BkTXgA0Y zfnWR=P)h>@6aWAK2mnq|&Xalw;SEkv&Q{~23Hl=l0023YXbCR^PEpR2nh6^LYm>GK LCI(Fj00000B{e** delta 2209 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 j006cC000vJ000000000000000ZIiSKCI(Ll00000X__N( diff --git a/Services/OrganizationReportService.cs b/Services/OrganizationReportService.cs index 30d4550..65970b0 100644 --- a/Services/OrganizationReportService.cs +++ b/Services/OrganizationReportService.cs @@ -4,426 +4,602 @@ using BMA.EHR.Organization.Service.Extensions; using BMA.EHR.Profile.Service.Services; using BMA.EHR.Report.Service.Data; using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion.Internal; +using System.Linq; +using System.Security.Cryptography.X509Certificates; namespace BMA.EHR.Report.Service.Services { - public class OrganizationReportService - { - #region " Fields " - - private readonly EHRDbContext _context; - private readonly EHRDbContext _applicationDbContext; - private readonly ProfileService _profileService; - - #endregion - - #region " Constructor and Destructor " - - public OrganizationReportService(EHRDbContext context, - EHRDbContext applicationDbContext, - ProfileService profileService) - { - _context = context; - _applicationDbContext = applicationDbContext; - _profileService = profileService; - } - - #endregion - - #region " Methods " - - #region " Report Query " - - public async Task?> GetOrganizationTypes(string type) - { - var Organizations = await _context.Organizations.ToListAsync(); - - var OrganizationOrganizations = await _context.OrganizationOrganizations.ToListAsync(); - var OrganizationTypes = await _context.OrganizationTypes.FirstOrDefaultAsync(x => x.Name == type); - - if (OrganizationTypes == null) - { - throw new Exception("Invalid Organization type."); - } - - var dataType = (from o in Organizations - join os in OrganizationOrganizations on o.OrganizationOrganizationId equals os.Id into os1 - from os in os1.DefaultIfEmpty() - where o.OrganizationTypeId == OrganizationTypes.Id && os != null - orderby o.OrganizationOrder - select new - { - organizationId = o.Id, - organizationName = os.Name - }).ToList(); - - return dataType; - } - - public async Task> GetReport1Query(Guid ocId) - { - var ocIdList = _profileService.GetAllIdByRoot(ocId); - var RootOcName = _profileService.GetOrganizationNameFullPath(ocId, false, false); - - var organizationPositions = await _context.OrganizationPositions.ToListAsync(); - var positionMasters = await _context.PositionMasters.ToListAsync(); - var organizations = await _context.Organizations.ToListAsync(); - var organizationOrganizations = await _applicationDbContext.OrganizationOrganizations.ToListAsync(); - var organizationShortNames = await _applicationDbContext.OrganizationShortNames.ToListAsync(); - var positionNumbers = await _context.PositionNumbers.ToListAsync(); - var executivePositions = await _applicationDbContext.PositionExecutives.ToListAsync(); - var executivePositionSide = await _applicationDbContext.PositionExecutiveSides.ToListAsync(); - var positionPaths = await _applicationDbContext.PositionPaths.ToListAsync(); - var positionPathSides = await _applicationDbContext.PositionPathSides.ToListAsync(); - var positionTypes = await _applicationDbContext.PositionTypes.ToListAsync(); - - var data = (from op in organizationPositions - join pm in positionMasters on op.PositionMasterId equals pm.Id - join oc in organizations on op.OrganizationId equals oc.Id - join oc_n in organizationOrganizations on oc.OrganizationOrganizationId equals oc_n.Id - join sn in organizationShortNames on oc.OrganizationShortNameId equals sn.Id - join pn in positionNumbers on op.PositionNumberId equals pn.Id - join pp in positionPaths on pm.PositionPathId equals pp.Id - join pps in positionPathSides on pm.PositionPathSideId equals pps.Id into pp_pps_join - from pp_pps in pp_pps_join.DefaultIfEmpty() - join ex_p in executivePositions on pm.PositionExecutiveId equals ex_p.Id into pm_exp_join - from pm_exp in pm_exp_join.DefaultIfEmpty() - join ex_p_s in executivePositionSide on pm.PositionExecutiveSideId equals ex_p_s.Id into pm_exp_s_join - from pm_exp_s in pm_exp_s_join.DefaultIfEmpty() - join pt in positionTypes on pm.PositionTypeId equals pt.Id - where ocIdList.Contains((Guid)op.OrganizationId) - select new Account1ResultItem - { - Id = op.Id, - RootOcId = ocId, - RootOcName = RootOcName, - OcId = op.OrganizationId.Value, - OcFullName = _profileService.FindOCFullPathWithNewLine(op.OrganizationId.Value, false, suppress: RootOcName), - OcName = _profileService.GetOrganizationName(op.OrganizationId.Value), - ShortName = sn.Name, - PositionNumber = pn.Name, - PositionLevel = _profileService.GetPositionLevel(pm.Id), - PositionName = $"{pp.Name}\r\n", - PositionSide = pm.PositionPathSideObject is null ? "" : Newtonsoft.Json.JsonConvert.DeserializeObject>(pm.PositionPathSideObject).GetNameList(), - PositionExecutive = pm_exp == null ? "" : $"{pm_exp.Name}\r\n", - PositionExecutiveSide = pm.PositionExecutiveSideObject is null ? "" : Newtonsoft.Json.JsonConvert.DeserializeObject>(pm.PositionExecutiveSideObject).GetNameList(), - Remark = op.PositionUserNote, - OcOrder = oc.OrganizationOrder.Value, - PositionType = pt.Name - }).ToList(); - - return data; - } - - public async Task> GetReport2Query(Guid ocId) - { - try - { - - - var ocIdList = _profileService.GetAllIdByRoot(ocId); - var RootOcName = _profileService.GetOrganizationNameFullPath(ocId, false, false); - - var organizationPositions = await _context.OrganizationPositions.ToListAsync(); - var positionMasters = await _context.PositionMasters.ToListAsync(); - var organizations = await _context.Organizations.ToListAsync(); - var organizationOrganizations = await _applicationDbContext.OrganizationOrganizations.ToListAsync(); - var organizationShortNames = await _applicationDbContext.OrganizationShortNames.ToListAsync(); - var positionNumbers = await _context.PositionNumbers.ToListAsync(); - var executivePositions = await _applicationDbContext.PositionExecutives.ToListAsync(); - var executivePositionSide = await _applicationDbContext.PositionExecutiveSides.ToListAsync(); - var positionPaths = await _applicationDbContext.PositionPaths.ToListAsync(); - var positionPathSides = await _applicationDbContext.PositionPathSides.ToListAsync(); - var positionTypes = await _applicationDbContext.PositionTypes.ToListAsync(); - var profilePositions = await _context.ProfilePositions.ToListAsync(); - var prefixes = await _context.Prefixes.ToListAsync(); - var profiles = await _context.Profiles.ToListAsync(); - var report2 = await _context.Report2s.ToListAsync(); - - var profile_data = (from p in _context.Profiles - join pf in _context.Prefixes on p.PrefixId equals pf.Id - select new - { - p.Id, - p.CitizenId, - Prefix = pf.Name, - p.FirstName, - p.LastName, - p.PositionLine, - p.Position, - p.PositionPathSide, - p.PositionType, - p.PositionLevel, - p.PositionExecutive, - p.PositionExecutiveSide, - p.PosNo, - p.OrganizationShortName, - Degree = p.Educations == null || p.Educations.Count == 0 ? "" : $"{p.Educations.OrderBy(x => x.StartDate).Last().Degree}\r\n({p.Educations.OrderBy(x => x.StartDate).Last().Field})", - Salary = p.Salaries == null || p.Salaries.Count == 0 ? 0 : p.Salaries.OrderBy(x => x.Date).Last().Amount, - SalaryPosition = p.Salaries == null || p.Salaries.Count == 0 ? 0 : p.Salaries.OrderBy(x => x.Date).Last().PositionSalaryAmount, - - }).ToList(); - - - var report2_data = (from org_pos in _context.OrganizationPositions.ToList() - join ppos in _context.ProfilePositions.ToList() on org_pos.Id equals ppos.OrganizationPositionId - join pf in profile_data.ToList() on ppos.ProfileId equals pf.Id - join r_raw in _context.Report2s.ToList() on ppos.Id equals r_raw.ProfilePositionId into r_join - from r in r_join.DefaultIfEmpty() - select new - { - //Id = r.Id, - ProfilePositionId = ppos.Id, - CitizenId = pf.CitizenId, - Prefix = pf.Prefix, - FirstName = pf.FirstName, - LastName = pf.LastName, - OrganizationName = r == null ? "" : r.OrganizationOrganization, - ShortName = r == null ? pf.OrganizationShortName : r.OrganizationShortName, - PositionNumber = r == null ? pf.PosNo : r.PositionNum, - PositionPath = r == null ? pf.Position : r.PositionPath, - PositionPathSide = r == null ? pf.PositionPathSide : r.PositionPathSide, - PositionType = r == null ? pf.PositionType : r.PositionType, - PositionLevel = r == null ? pf.PositionLevel : r.PositionLevel, - PositionExecutive = r == null ? pf.PositionExecutive : r.PositionExecutive, - PositionExecutiveSide = r == null ? pf.PositionExecutiveSide : r.PositionExecutiveSide, - OcId = org_pos.Id, - OrganizationPositionId = ppos.OrganizationPositionId, - Degree = pf.Degree, - Salary = pf.Salary, - SalaryPosition = pf.SalaryPosition, - }).ToList(); - - //var report2_data = (from r in _context.Report2s.ToList() - // join ppos in _context.ProfilePositions.ToList() on r.ProfilePositionId equals ppos.Id - // join org_pos in _context.OrganizationPositions.ToList() on ppos.OrganizationPositionId equals org_pos.Id - // join pf in profile_data.ToList() on ppos.ProfileId equals pf.Id - // select new - // { - // Id = r.Id, - // ProfilePositionId = r.ProfilePositionId, - // CitizenId = pf.CitizenId, - // Prefix = pf.Prefix, - // FirstName = pf.FirstName, - // LastName = pf.LastName, - // OrganizationName = r.OrganizationOrganization, - // ShortName = r.OrganizationShortName, - // PositionNumber = r.PositionNum, - // PositionPath = r.PositionPath, - // PositionPathSide = r.PositionPathSide, - // PositionType = r.PositionType, - // PositionLevel = r.PositionLevel, - // PositionExecutive = r.PositionExecutive, - // PositionExecutiveSide = r.PositionExecutiveSide, - // OcId = org_pos.Id, - // OrganizationPositionId = ppos.OrganizationPositionId, - // Degree = pf.Degree, - // Salary = pf.Salary, - // SalaryPosition = pf.SalaryPosition, - // }).ToList(); - - - - var data = (from op in organizationPositions - join pm in positionMasters on op.PositionMasterId equals pm.Id - join oc in organizations on op.OrganizationId equals oc.Id - join oc_n in organizationOrganizations on oc.OrganizationOrganizationId equals oc_n.Id - join sn in organizationShortNames on oc.OrganizationShortNameId equals sn.Id - join pn in positionNumbers on op.PositionNumberId equals pn.Id - join pp in positionPaths on pm.PositionPathId equals pp.Id - join pps in positionPathSides on pm.PositionPathSideId equals pps.Id into pp_pps_join - from pp_pps in pp_pps_join.DefaultIfEmpty() - join ex_p in executivePositions on pm.PositionExecutiveId equals ex_p.Id into pm_exp_join - from pm_exp in pm_exp_join.DefaultIfEmpty() - join ex_p_s in executivePositionSide on pm.PositionExecutiveSideId equals ex_p_s.Id into pm_exp_s_join - from pm_exp_s in pm_exp_s_join.DefaultIfEmpty() - join pt in positionTypes on pm.PositionTypeId equals pt.Id - join rp2 in report2_data.ToList() on op.Id equals rp2.OrganizationPositionId into rp2_join - from rp2_dt in rp2_join.DefaultIfEmpty() - - where ocIdList.Contains((Guid)op.OrganizationId) - select new Account2ResultItem - { - Id = op.Id, - RootOcId = ocId, - RootOcName = RootOcName, - OcId = op.OrganizationId.Value, - OcFullName = _profileService.FindOCFullPathWithNewLine(op.OrganizationId.Value, false, suppress: RootOcName), - OcName = _profileService.GetOrganizationName(op.OrganizationId.Value), - ShortName = sn.Name, - PositionNumber = pn.Name, - PositionLevel = rp2_dt == null ? _profileService.GetPositionLevel(pm.Id) : rp2_dt.PositionLevel, - - PositionName = $"{pp.Name}\r\n", - PositionSide = pm.PositionPathSideObject is null ? "" : Newtonsoft.Json.JsonConvert.DeserializeObject>(pm.PositionPathSideObject).GetNameList(), - PositionExecutive = pm_exp == null ? "" : $"{pm_exp.Name}\r\n", - PositionExecutiveSide = pm.PositionExecutiveSideObject is null ? "" : Newtonsoft.Json.JsonConvert.DeserializeObject>(pm.PositionExecutiveSideObject).GetNameList(), - Remark = op.PositionUserNote, - OcOrder = oc.OrganizationOrder.Value, - PositionType = pt.Name, - - - OcIdNew = rp2_dt == null ? op.OrganizationId.Value : rp2_dt.OcId, - OcFullNameNew = _profileService.FindOCFullPathWithNewLine(op.OrganizationId.Value, false, suppress: RootOcName), - OcNameNew = rp2_dt == null ? _profileService.GetOrganizationName(op.OrganizationId.Value) : _profileService.GetOrganizationName(rp2_dt.OcId), - ShortNameNew = rp2_dt == null ? "" : rp2_dt.ShortName, - PositionNumberNew = rp2_dt == null ? "" : rp2_dt.PositionNumber, - PositionLevelNew = rp2_dt == null ? "" : rp2_dt.PositionLevel, - PositionNameNew = rp2_dt == null ? "" : rp2_dt.PositionPath, - PositionSideNew = rp2_dt == null ? "" : rp2_dt.PositionPathSide, - PositionExecutiveNew = rp2_dt == null ? "" : rp2_dt.PositionExecutive, - PositionExecutiveSideNew = rp2_dt == null ? "" : rp2_dt.PositionExecutiveSide, - PositionTypeNew = rp2_dt == null ? "" : rp2_dt.PositionType, + public class OrganizationReportService + { + #region " Fields " + + private readonly EHRDbContext _context; + private readonly EHRDbContext _applicationDbContext; + private readonly ProfileService _profileService; + + #endregion + + #region " Constructor and Destructor " + + public OrganizationReportService(EHRDbContext context, + EHRDbContext applicationDbContext, + ProfileService profileService) + { + _context = context; + _applicationDbContext = applicationDbContext; + _profileService = profileService; + } + + #endregion + + #region " Methods " + + #region " Report Query " + + public async Task?> GetOrganizationTypes(string type) + { + var Organizations = await _context.Organizations.ToListAsync(); + + var OrganizationOrganizations = await _context.OrganizationOrganizations.ToListAsync(); + var OrganizationTypes = await _context.OrganizationTypes.FirstOrDefaultAsync(x => x.Name == type); + + if (OrganizationTypes == null) + { + throw new Exception("Invalid Organization type."); + } + + var dataType = (from o in Organizations + join os in OrganizationOrganizations on o.OrganizationOrganizationId equals os.Id into os1 + from os in os1.DefaultIfEmpty() + where o.OrganizationTypeId == OrganizationTypes.Id && os != null + orderby o.OrganizationOrder + select new + { + organizationId = o.Id, + organizationName = os.Name + }).ToList(); + + return dataType; + } + + public async Task> GetReport1Query(Guid ocId) + { + var ocIdList = _profileService.GetAllIdByRoot(ocId); + var RootOcName = _profileService.GetOrganizationNameFullPath(ocId, false, false); + + var organizationPositions = await _context.OrganizationPositions.ToListAsync(); + var positionMasters = await _context.PositionMasters.ToListAsync(); + var organizations = await _context.Organizations.ToListAsync(); + var organizationOrganizations = await _applicationDbContext.OrganizationOrganizations.ToListAsync(); + var organizationShortNames = await _applicationDbContext.OrganizationShortNames.ToListAsync(); + var positionNumbers = await _context.PositionNumbers.ToListAsync(); + var executivePositions = await _applicationDbContext.PositionExecutives.ToListAsync(); + var executivePositionSide = await _applicationDbContext.PositionExecutiveSides.ToListAsync(); + var positionPaths = await _applicationDbContext.PositionPaths.ToListAsync(); + var positionPathSides = await _applicationDbContext.PositionPathSides.ToListAsync(); + var positionTypes = await _applicationDbContext.PositionTypes.ToListAsync(); + + var data = (from op in organizationPositions + join pm in positionMasters on op.PositionMasterId equals pm.Id + join oc in organizations on op.OrganizationId equals oc.Id + join oc_n in organizationOrganizations on oc.OrganizationOrganizationId equals oc_n.Id + join sn in organizationShortNames on oc.OrganizationShortNameId equals sn.Id + join pn in positionNumbers on op.PositionNumberId equals pn.Id + join pp in positionPaths on pm.PositionPathId equals pp.Id + join pps in positionPathSides on pm.PositionPathSideId equals pps.Id into pp_pps_join + from pp_pps in pp_pps_join.DefaultIfEmpty() + join ex_p in executivePositions on pm.PositionExecutiveId equals ex_p.Id into pm_exp_join + from pm_exp in pm_exp_join.DefaultIfEmpty() + join ex_p_s in executivePositionSide on pm.PositionExecutiveSideId equals ex_p_s.Id into pm_exp_s_join + from pm_exp_s in pm_exp_s_join.DefaultIfEmpty() + join pt in positionTypes on pm.PositionTypeId equals pt.Id + where ocIdList.Contains((Guid)op.OrganizationId) + select new Account1ResultItem + { + Id = op.Id, + RootOcId = ocId, + RootOcName = RootOcName, + OcId = op.OrganizationId.Value, + OcFullName = _profileService.FindOCFullPathWithNewLine(op.OrganizationId.Value, false, suppress: RootOcName), + OcName = _profileService.GetOrganizationName(op.OrganizationId.Value), + ShortName = sn.Name, + PositionNumber = pn.Name, + PositionLevel = _profileService.GetPositionLevel(pm.Id), + PositionName = $"{pp.Name}\r\n", + PositionSide = pm.PositionPathSideObject is null ? "" : Newtonsoft.Json.JsonConvert.DeserializeObject>(pm.PositionPathSideObject).GetNameList(), + PositionExecutive = pm_exp == null ? "" : $"{pm_exp.Name}\r\n", + PositionExecutiveSide = pm.PositionExecutiveSideObject is null ? "" : Newtonsoft.Json.JsonConvert.DeserializeObject>(pm.PositionExecutiveSideObject).GetNameList(), + Remark = op.PositionUserNote, + OcOrder = oc.OrganizationOrder.Value, + PositionType = pt.Name, + IsDirector = pm.IsDirector.Value ? 0 : 1, + GovernmentCode = sn.GovernmentCode == null || sn.GovernmentCode == "" ? sn.AgencyCode : sn.GovernmentCode + }).ToList(); + + return data; + } + + private string GetShortNameFromPosNo(string posno) + { + if (string.IsNullOrEmpty(posno)) return ""; + var posArray = posno.Split('.'); + var ret = string.Empty; + + for (var i = 0; i < posArray.Length - 1; i++) + { + ret += $"{posArray[i]}."; + } + + return ret; + } + + private int GetPosnoIntFromPosNo(string posno) + { + if (string.IsNullOrEmpty(posno)) return 999; + var posArray = posno.Split('.'); + + return Convert.ToInt32(posArray.Last()); + } + + private Guid GetOcId(Guid shortNameId, Guid nameId) + { + var data = _context.Organizations.AsNoTracking() + .FirstOrDefault(x => x.OrganizationShortNameId == shortNameId && + x.OrganizationOrganizationId == nameId); + if (data == null) return Guid.Empty; + else return data.Id; + } + + private string GetCitizenId(Guid profileId) + { + var data = _context.Profiles.AsNoTracking().FirstOrDefault(x => x.Id == profileId); + + return data == null ? "" : data.CitizenId; + } + private string GetPrefix(Guid profileId) + { + var data = _context.Profiles.AsNoTracking().FirstOrDefault(x => x.Id == profileId); + if (data == null) return ""; + + var prefix = _context.Prefixes.AsNoTracking().FirstOrDefault(x => x.Id == data.PrefixId); + + return prefix == null ? "" : prefix.Name; + } + + private string GetFirstName(Guid profileId) + { + var data = _context.Profiles.AsNoTracking().FirstOrDefault(x => x.Id == profileId); + + return data == null ? "" : data.FirstName; + } + + private string GetLastName(Guid profileId) + { + var data = _context.Profiles.AsNoTracking().FirstOrDefault(x => x.Id == profileId); + + return data == null ? "" : data.LastName; + } + + + public async Task> GetReport2Query(Guid ocId) + { + try + { + + + var ocIdList = _profileService.GetAllIdByRoot(ocId); + var RootOcName = _profileService.GetOrganizationNameFullPath(ocId, false, false); + + var organizationPositions = await _context.OrganizationPositions.ToListAsync(); + var positionMasters = await _context.PositionMasters.ToListAsync(); + var organizations = await _context.Organizations.ToListAsync(); + var organizationOrganizations = await _applicationDbContext.OrganizationOrganizations.ToListAsync(); + var organizationShortNames = await _applicationDbContext.OrganizationShortNames.ToListAsync(); + var positionNumbers = await _context.PositionNumbers.ToListAsync(); + var executivePositions = await _applicationDbContext.PositionExecutives.ToListAsync(); + var executivePositionSide = await _applicationDbContext.PositionExecutiveSides.ToListAsync(); + var positionPaths = await _applicationDbContext.PositionPaths.ToListAsync(); + var positionPathSides = await _applicationDbContext.PositionPathSides.ToListAsync(); + var positionTypes = await _applicationDbContext.PositionTypes.ToListAsync(); + var profilePositions = await _context.ProfilePositions.ToListAsync(); + var prefixes = await _context.Prefixes.ToListAsync(); + var profiles = await _context.Profiles.ToListAsync(); + var report2 = await _context.Report2s.ToListAsync(); + + var profile_data = (from p in _context.Profiles + join pf in _context.Prefixes on p.PrefixId equals pf.Id + select new + { + p.Id, + p.CitizenId, + Prefix = pf.Name, + p.FirstName, + p.LastName, + p.PositionLine, + p.Position, + p.PositionPathSide, + p.PositionType, + p.PositionLevel, + p.PositionExecutive, + p.PositionExecutiveSide, + p.PosNo, + p.OrganizationShortName, + Degree = p.Educations == null || p.Educations.Count == 0 ? "" : $"{p.Educations.OrderBy(x => x.StartDate).Last().Degree}\r\n({p.Educations.OrderBy(x => x.StartDate).Last().Field})", + Salary = p.Salaries == null || p.Salaries.Count == 0 ? 0 : p.Salaries.OrderBy(x => x.Date).Last().Amount, + SalaryPosition = p.Salaries == null || p.Salaries.Count == 0 ? 0 : p.Salaries.OrderBy(x => x.Date).Last().PositionSalaryAmount, + + }).ToList(); + + + var report2_raw_data = (from r in _context.Report2s.AsNoTracking().ToList() + join ppos in _context.ProfilePositions.AsNoTracking().ToList() on r.ProfilePositionId equals ppos.Id into r_ppos_join + from ppos_join in r_ppos_join.DefaultIfEmpty() + //join pf in profile_data.ToList() on ppos_join.ProfileId equals pf.Id into r_pf_join + //from pf_join in r_pf_join.DefaultIfEmpty() + select new + { + Id = r.Id, + ProfilePositionId = ppos_join == null ? Guid.Empty : ppos_join.Id, + CitizenId = ppos_join != null ? GetCitizenId(ppos_join.ProfileId.Value) : "", + Prefix = ppos_join != null ? GetPrefix(ppos_join.ProfileId.Value) : "", + FirstName = ppos_join != null ? GetFirstName(ppos_join.ProfileId.Value) : "", + LastName = ppos_join != null ? GetLastName(ppos_join.ProfileId.Value) : "", + // new + OrganizationName = r.OrganizationOrganization, + ShortName = GetShortNameFromPosNo(r.PositionNum), + PositionNumber = r.PositionNum, + PositionNumberInt = GetPosnoIntFromPosNo(r.PositionNum), + PositionPath = r.PositionPath, + PositionPathSide = r.PositionPathSide, + PositionType = r.PositionType, + PositionLevel = r.PositionLevel, + PositionExecutive = r.PositionExecutive, + PositionExecutiveSide = r.PositionExecutiveSide, + + OrganizationPositionId = ppos_join == null ? Guid.Empty : ppos_join.OrganizationPositionId, + + // old + OcId = GetOcId(r.OrganizationShortNameId.Value, r.OrganizationOrganizationId.Value), + Degree = ppos_join == null ? "" : (profile_data.Where(x => x.Id == ppos_join.ProfileId).FirstOrDefault().Degree), + Salary = ppos_join == null ? 0 : (profile_data.Where(x => x.Id == ppos_join.ProfileId).FirstOrDefault().Salary), + SalaryPosition = ppos_join == null ? 0 : (profile_data.Where(x => x.Id == ppos_join.ProfileId).FirstOrDefault().SalaryPosition), + + ShortNameOld = GetShortNameFromPosNo(r.PositionNumOld), + PositionNumberOld = r.PositionNumOld, + PositionNumberOldInt = GetPosnoIntFromPosNo(r.PositionNumOld), + GovCode = r.GovernmentCodeOld, + GovCodeNew = r.GovernmentCode, + PositionName = r.PositionPath, + PositionNameOld = r.PositionPathOld, + + + PositionPathOld = r.PositionPathOld, + PositionPathSideOld = r.PositionPathSideOld, + PositionTypeOld = r.PositionTypeOld, + PositionLevelOld = r.PositionLevelOld, + PositionExecutiveOld = r.PositionExecutiveOld, + PositionExecutiveSideOld = r.PositionExecutiveSideOld, + }).ToList(); + + + //var report2_data = (from org_pos in _context.OrganizationPositions.ToList() + // join ppos in _context.ProfilePositions.ToList() on org_pos.Id equals ppos.OrganizationPositionId + // join pf in profile_data.ToList() on ppos.ProfileId equals pf.Id + // join r_raw in _context.Report2s.ToList() on ppos.Id equals r_raw.ProfilePositionId into r_join + // from r in r_join.DefaultIfEmpty() + // select new + // { + // //Report2Id = r.Id, + // ProfilePositionId = ppos.Id, + // CitizenId = pf.CitizenId, + // Prefix = pf.Prefix, + // FirstName = pf.FirstName, + // LastName = pf.LastName, + // OrganizationName = r == null ? "" : r.OrganizationOrganization, + // ShortName = r == null ? pf.OrganizationShortName : GetShortNameFromPosNo(r.PositionNum), + // PositionNumber = r == null ? pf.PosNo : r.PositionNum, + // PositionNumberInt = r == null ? GetPosnoIntFromPosNo(pf.PosNo) : GetPosnoIntFromPosNo(r.PositionNum), + // PositionPath = r == null ? pf.Position : r.PositionPath, + // PositionPathSide = r == null ? pf.PositionPathSide : r.PositionPathSide, + // PositionType = r == null ? pf.PositionType : r.PositionType, + // PositionLevel = r == null ? pf.PositionLevel : r.PositionLevel, + // PositionExecutive = r == null ? pf.PositionExecutive : r.PositionExecutive, + // PositionExecutiveSide = r == null ? pf.PositionExecutiveSide : r.PositionExecutiveSide, + // OcId = org_pos.Id, + // OrganizationPositionId = ppos.OrganizationPositionId, + // Degree = pf.Degree, + // Salary = pf.Salary, + // SalaryPosition = pf.SalaryPosition, + + // ShortNameOld = r == null ? pf.OrganizationShortName : GetShortNameFromPosNo(r.PositionNumOld), + // PositionNumberOld = r == null ? pf.PosNo : r.PositionNumOld, + // PositionNumberOldInt = r == null ? GetPosnoIntFromPosNo(pf.PosNo) : GetPosnoIntFromPosNo(r.PositionNumOld), + + // }).ToList(); + + //var report2_data = (from r in _context.Report2s.ToList() + // join ppos in _context.ProfilePositions.ToList() on r.ProfilePositionId equals ppos.Id + // join org_pos in _context.OrganizationPositions.ToList() on ppos.OrganizationPositionId equals org_pos.Id + // join pf in profile_data.ToList() on ppos.ProfileId equals pf.Id + // select new + // { + // Id = r.Id, + // ProfilePositionId = r.ProfilePositionId, + // CitizenId = pf.CitizenId, + // Prefix = pf.Prefix, + // FirstName = pf.FirstName, + // LastName = pf.LastName, + // OrganizationName = r.OrganizationOrganization, + // ShortName = r.OrganizationShortName, + // PositionNumber = r.PositionNum, + // PositionPath = r.PositionPath, + // PositionPathSide = r.PositionPathSide, + // PositionType = r.PositionType, + // PositionLevel = r.PositionLevel, + // PositionExecutive = r.PositionExecutive, + // PositionExecutiveSide = r.PositionExecutiveSide, + // OcId = org_pos.Id, + // OrganizationPositionId = ppos.OrganizationPositionId, + // Degree = pf.Degree, + // Salary = pf.Salary, + // SalaryPosition = pf.SalaryPosition, + // }).ToList(); + + + var data2 = (from r in report2_raw_data + where ocIdList.Contains(r.OcId) + select new Account2ResultItem + { + Id = r.Id, + RootOcId = ocId, + RootOcName = RootOcName, + GovernmentCode = r.GovCode, + OcId = r.OcId, + OcFullName = _profileService.FindOCFullPathWithNewLine(r.OcId, false, suppress: RootOcName), + OcName = _profileService.GetOrganizationName(r.OcId), + ShortName = r.ShortNameOld, + PositionNumber = r.PositionNumberOld, + PositionLevel = r.PositionLevelOld, + PositionName = $"{r.PositionNameOld}\r\n", + PositionSide = r.PositionPathSideOld, + PositionExecutive = r.PositionExecutiveOld, + PositionExecutiveSide = r.PositionExecutiveSideOld, + Remark = "", + PositionType = r.PositionTypeOld, + OcIdNew = r.OcId, + OcFullNameNew = _profileService.FindOCFullPathWithNewLine(r.OcId, false, suppress: RootOcName), + OcNameNew = _profileService.GetOrganizationName(r.OcId), + ShortNameNew = r.ShortName, + PositionNumberNew = r.PositionNumber, + PositionLevelNew = r.PositionLevel, + PositionNameNew = $"{r.PositionName}\r\n", + PositionSideNew = r.PositionPathSide, + PositionExecutiveNew = r.PositionExecutive, + PositionExecutiveSideNew = r.PositionExecutiveSide, + PositionTypeNew = r.PositionType, + + + PositionNumberInt = r.PositionNumberOldInt, + PositionNumberIntNew = r.PositionNumberInt, + + + Prefix = r.Prefix, + FirstName = r.FirstName, + LastName = r.LastName, + Degree = r.Degree, + + Salary = Convert.ToInt32(r.Salary), + SalaryPosition = Convert.ToInt32(r.SalaryPosition) + + }).ToList(); + + //var data = (from op in organizationPositions + // join pm in positionMasters on op.PositionMasterId equals pm.Id + // join oc in organizations on op.OrganizationId equals oc.Id + // join oc_n in organizationOrganizations on oc.OrganizationOrganizationId equals oc_n.Id + // join sn in organizationShortNames on oc.OrganizationShortNameId equals sn.Id + // join pn in positionNumbers on op.PositionNumberId equals pn.Id + // join pp in positionPaths on pm.PositionPathId equals pp.Id + // join pps in positionPathSides on pm.PositionPathSideId equals pps.Id into pp_pps_join + // from pp_pps in pp_pps_join.DefaultIfEmpty() + // join ex_p in executivePositions on pm.PositionExecutiveId equals ex_p.Id into pm_exp_join + // from pm_exp in pm_exp_join.DefaultIfEmpty() + // join ex_p_s in executivePositionSide on pm.PositionExecutiveSideId equals ex_p_s.Id into pm_exp_s_join + // from pm_exp_s in pm_exp_s_join.DefaultIfEmpty() + // join pt in positionTypes on pm.PositionTypeId equals pt.Id + // join rp2 in report2_raw_data.ToList() on op.Id equals rp2.OrganizationPositionId into rp2_join + // from rp2_dt in rp2_join.DefaultIfEmpty() + + // where ocIdList.Contains((Guid)op.OrganizationId) + // select new Account2ResultItem + // { + // Id = op.Id, + // RootOcId = ocId, + // RootOcName = RootOcName, + // OcId = op.OrganizationId.Value, + // OcFullName = _profileService.FindOCFullPathWithNewLine(op.OrganizationId.Value, false, suppress: RootOcName), + // OcName = _profileService.GetOrganizationName(op.OrganizationId.Value), + // ShortName = sn.Name, + // PositionNumber = pn.Name, + // PositionLevel = rp2_dt == null ? _profileService.GetPositionLevel(pm.Id) : rp2_dt.PositionLevel, + + // PositionName = $"{pp.Name}\r\n", + // PositionSide = pm.PositionPathSideObject is null ? "" : Newtonsoft.Json.JsonConvert.DeserializeObject>(pm.PositionPathSideObject).GetNameList(), + // PositionExecutive = pm_exp == null ? "" : $"{pm_exp.Name}\r\n", + // PositionExecutiveSide = pm.PositionExecutiveSideObject is null ? "" : Newtonsoft.Json.JsonConvert.DeserializeObject>(pm.PositionExecutiveSideObject).GetNameList(), + // Remark = op.PositionUserNote, + // OcOrder = oc.OrganizationOrder.Value, + // PositionType = pt.Name, - Prefix = rp2_dt == null ? "" : rp2_dt.Prefix, - FirstName = rp2_dt == null ? "" : rp2_dt.FirstName, - LastName = rp2_dt == null ? "" : rp2_dt.LastName, - Degree = rp2_dt == null ? (pm == null ? "" : pm.Qualification) : rp2_dt.Degree, - Salary = rp2_dt == null ? 0 : (int)rp2_dt.Salary.Value, - SalaryPosition = rp2_dt == null ? 0 : (int)rp2_dt.SalaryPosition.Value, + // OcIdNew = rp2_dt == null ? op.OrganizationId.Value : rp2_dt.OcId, + // OcFullNameNew = _profileService.FindOCFullPathWithNewLine(op.OrganizationId.Value, false, suppress: RootOcName), + // OcNameNew = rp2_dt == null ? _profileService.GetOrganizationName(op.OrganizationId.Value) : _profileService.GetOrganizationName(rp2_dt.OcId), + // ShortNameNew = rp2_dt == null ? "" : rp2_dt.ShortName, + // PositionNumberNew = rp2_dt == null ? "" : rp2_dt.PositionNumber, + // PositionLevelNew = rp2_dt == null ? "" : rp2_dt.PositionLevel, + // PositionNameNew = rp2_dt == null ? "" : rp2_dt.PositionPath, + // PositionSideNew = rp2_dt == null ? "" : rp2_dt.PositionPathSide, + // PositionExecutiveNew = rp2_dt == null ? "" : rp2_dt.PositionExecutive, + // PositionExecutiveSideNew = rp2_dt == null ? "" : rp2_dt.PositionExecutiveSide, + // PositionTypeNew = rp2_dt == null ? "" : rp2_dt.PositionType, + // Prefix = rp2_dt == null ? "" : rp2_dt.Prefix, + // FirstName = rp2_dt == null ? "" : rp2_dt.FirstName, + // LastName = rp2_dt == null ? "" : rp2_dt.LastName, + // Degree = rp2_dt == null ? (pm == null ? "" : pm.Qualification) : rp2_dt.Degree, - }).ToList(); + // Salary = rp2_dt == null ? 0 : (int)rp2_dt.Salary.Value, + // SalaryPosition = rp2_dt == null ? 0 : (int)rp2_dt.SalaryPosition.Value, - return data; - } - catch - { - throw; - } - } - #endregion + // }).ToList(); - #endregion - } + return data2; + } + catch + { + throw; + } + } - public class Account1ResultItem - { - public Guid Id { get; set; } + #endregion - public Guid RootOcId { get; set; } + #endregion + } - public string RootOcName { get; set; } = string.Empty; + public class Account1ResultItem + { + public Guid Id { get; set; } - public Guid OcId { get; set; } + public Guid RootOcId { get; set; } - public string OcFullName { get; set; } = string.Empty; + public string RootOcName { get; set; } = string.Empty; - public string OcName { get; set; } = string.Empty; + public Guid OcId { get; set; } - public string ShortName { get; set; } = string.Empty; + public string OcFullName { get; set; } = string.Empty; - public string PositionNumber { get; set; } = string.Empty; + public string OcName { get; set; } = string.Empty; - public string PositionName { get; set; } = string.Empty; + public string ShortName { get; set; } = string.Empty; - public string PositionSide { get; set; } = string.Empty; + public string PositionNumber { get; set; } = string.Empty; - public string PositionLevel { get; set; } = string.Empty; + public string PositionName { get; set; } = string.Empty; - public string PositionExecutive { get; set; } = string.Empty; + public string PositionSide { get; set; } = string.Empty; - public string PositionExecutiveSide { get; set; } = string.Empty; + public string PositionLevel { get; set; } = string.Empty; - public string Remark { get; set; } = string.Empty; + public string PositionExecutive { get; set; } = string.Empty; - public int OcOrder { get; set; } = 0; + public string PositionExecutiveSide { get; set; } = string.Empty; - public int PositionNumberInt { get; set; } = 0; + public string Remark { get; set; } = string.Empty; - public string PositionType { get; set; } = string.Empty; - } + public int OcOrder { get; set; } = 0; - public class Account2ResultItem - { - public Guid Id { get; set; } + public int PositionNumberInt { get; set; } = 0; - public Guid RootOcId { get; set; } + public string PositionType { get; set; } = string.Empty; - public string RootOcName { get; set; } = string.Empty; + public int IsDirector { get; set; } = 0; - public Guid OcId { get; set; } + public string GovernmentCode { get; set; } = string.Empty; + } - public string OcFullName { get; set; } = string.Empty; + public class Account2ResultItem + { + public Guid Id { get; set; } - public string OcName { get; set; } = string.Empty; + public Guid RootOcId { get; set; } - public string ShortName { get; set; } = string.Empty; + public string RootOcName { get; set; } = string.Empty; - public string PositionNumber { get; set; } = string.Empty; + public Guid OcId { get; set; } - public string PositionName { get; set; } = string.Empty; + public string OcFullName { get; set; } = string.Empty; - public string PositionSide { get; set; } = string.Empty; + public string OcName { get; set; } = string.Empty; - public string PositionLevel { get; set; } = string.Empty; + public string ShortName { get; set; } = string.Empty; - public string PositionExecutive { get; set; } = string.Empty; + public string PositionNumber { get; set; } = string.Empty; - public string PositionExecutiveSide { get; set; } = string.Empty; + public string PositionName { get; set; } = string.Empty; - public string Remark { get; set; } = string.Empty; + public string PositionSide { get; set; } = string.Empty; - public int OcOrder { get; set; } = 0; + public string PositionLevel { get; set; } = string.Empty; - public int PositionNumberInt { get; set; } = 0; + public string PositionExecutive { get; set; } = string.Empty; - public string PositionType { get; set; } = string.Empty; + public string PositionExecutiveSide { get; set; } = string.Empty; - // new - public Guid RootOcIdNew { get; set; } + public string Remark { get; set; } = string.Empty; - public string RootOcNameNew { get; set; } = string.Empty; + public int OcOrder { get; set; } = 0; - public Guid OcIdNew { get; set; } + public int PositionNumberInt { get; set; } = 0; - public string OcFullNameNew { get; set; } = string.Empty; + public string PositionType { get; set; } = string.Empty; - public string OcNameNew { get; set; } = string.Empty; + // new + public Guid RootOcIdNew { get; set; } - public string ShortNameNew { get; set; } = string.Empty; + public string RootOcNameNew { get; set; } = string.Empty; - public string PositionNumberNew { get; set; } = string.Empty; + public Guid OcIdNew { get; set; } - public string PositionNameNew { get; set; } = string.Empty; + public string OcFullNameNew { get; set; } = string.Empty; - public string PositionSideNew { get; set; } = string.Empty; + public string OcNameNew { get; set; } = string.Empty; - public string PositionLevelNew { get; set; } = string.Empty; + public string ShortNameNew { get; set; } = string.Empty; - public string PositionExecutiveNew { get; set; } = string.Empty; + public string PositionNumberNew { get; set; } = string.Empty; - public string PositionExecutiveSideNew { get; set; } = string.Empty; + public string PositionNameNew { get; set; } = string.Empty; - public int PositionNumberIntNew { get; set; } = 0; + public string PositionSideNew { get; set; } = string.Empty; - public string PositionTypeNew { get; set; } = string.Empty; + public string PositionLevelNew { get; set; } = string.Empty; - // name - public string Prefix { get; set; } = string.Empty; + public string PositionExecutiveNew { get; set; } = string.Empty; - public string FirstName { get; set; } = string.Empty; + public string PositionExecutiveSideNew { get; set; } = string.Empty; - public string LastName { get; set; } = string.Empty; + public int PositionNumberIntNew { get; set; } = 0; - public string Degree { get; set; } = string.Empty; + public string PositionTypeNew { get; set; } = string.Empty; - public int Salary { get; set; } = 0; + // name + public string Prefix { get; set; } = string.Empty; - public int SalaryPosition { get; set; } = 0; + public string FirstName { get; set; } = string.Empty; - public string FullName { get; set; } = string.Empty; + public string LastName { get; set; } = string.Empty; - } + public string Degree { get; set; } = string.Empty; - public class OrganizationItem - { - public Guid Id { get; set; } + public int Salary { get; set; } = 0; - public string Name { get; set; } = string.Empty; + public int SalaryPosition { get; set; } = 0; - public int Order { get; set; } = 0; - } + public string FullName { get; set; } = string.Empty; + + public string GovernmentCode { get; set; } = string.Empty; + + } + + public class OrganizationItem + { + public Guid Id { get; set; } + + public string Name { get; set; } = string.Empty; + + public int Order { get; set; } = 0; + } } diff --git a/appsettings.Development.json b/appsettings.Development.json index 36b3e68..11096b0 100644 --- a/appsettings.Development.json +++ b/appsettings.Development.json @@ -15,7 +15,7 @@ "ConnectionStrings": { "MongoConnection": "mongodb://admin:adminVM123@127.0.0.1:27017", "RecruitConnection": "server=127.0.0.1;user=root;password=P@ssw0rd;port=3308;database=bma_recruit;Convert Zero Datetime=True;Allow User Variables=true;Pooling=True;", - "EHRConnection": "server=127.0.0.1;user=root;password=P@ssw0rd;port=3308;database=bma_ehr;Convert Zero Datetime=True;Allow User Variables=true;Pooling=True;", + "EHRConnection": "server=192.168.1.9;user=root;password=adminVM123;port=3306;database=bma_ehr_demo;Convert Zero Datetime=True;Allow User Variables=true;Pooling=True;", "ExamConnection": "server=127.0.0.1;user=root;password=P@ssw0rd;port=3308;database=bma_ehr_exam;Convert Zero Datetime=True;Allow User Variables=true;Pooling=True;" }, "Jwt": {