123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756 |
- using System;
- using System.Linq;
- using System.Threading.Tasks;
- using FMSAdmin.Data;
- using FMSAdmin.Models;
- using FMSAdmin.Entities;
- using FMSApp.Services;
- using Microsoft.AspNetCore.Mvc;
- using Microsoft.Extensions.Logging;
- using Microsoft.AspNetCore.Authorization;
- using FMSAdmin.Helpers;
- using System.Data;
- using System.IO;
- using OfficeOpenXml;
- using System.Text;
- using System.Collections.Generic;
- using Newtonsoft.Json;
- using Newtonsoft.Json.Linq;
- namespace FMSApp.Controllers {
- [Authorize]
- [ApiController]
- [ApiVersion("1")]
- [Route("api/app/[controller]")]
- public class MonthlyReportController : Controller {
- private readonly ILogger<MonthlyReportController> _logger;
- private readonly FMSContext _context;
- private readonly MonthlyReportService _service;
- private readonly FMSAdmin.Services.SiteWeatherInfoService _siteWeatherInfoService;
- private readonly StorageHelper _storage;
- public enum WorkTypeId {
- PeriodicInspection = 1,
- ForensicExamination = 2,
- CivilComplaint = 3,
- SiAlarm = 4,
- Occasional = 5,
- Construct = 6,
- ForensicEducation = 7,
- }
- public enum WorkProgressId {
- WorkStatusPending = 3,
- WorkStatusInProgress = 4,
- WorkStatusComplete = 5,
- WorkStatusApproved = 6,
- WorkStatusDeferred = 7,
- }
- public enum AdjustmentTypeId {
- Regular = 0,
- Loss = 1,
- Return = 2
- }
- public MonthlyReportController(
- ILogger<MonthlyReportController> logger,
- FMSContext context,
- MonthlyReportService service,
- FMSAdmin.Services.SiteWeatherInfoService siteWeatherInfoService,
- StorageHelper storage
- ) {
- _logger = logger;
- _context = context;
- _service = service;
- _siteWeatherInfoService = siteWeatherInfoService;
- _storage = storage;
- }
- /// <summary>
- /// 목록
- /// </summary>
- [HttpGet]
- public IActionResult List([FromQuery] PagingRequest req, [FromQuery] string siteId, bool businessAuth) {
- var query = _FilterAndSort(req);
- query = BusinessFieldHelper.Apply<FmsMonthlyReport>(_context, User, businessAuth, query);
- query = query.Where(x => x.SiteId == Util.ToInt(siteId));
- var list = query.Select(x => new {
- x.SiteId,
- x.AddDate,
- x.BusinessFieldId,
- x.Name,
- x.Contents,
- x.RegisterUserId,
- RegisterUserName = _context.CmUser.FirstOrDefault(user => user.UserId == x.RegisterUserId).Name,
- x.ApproveDate,
- x.RegisterDate,
- x.ApproverUserId,
- ApproverUserName = _context.CmUser.FirstOrDefault(user => user.UserId == x.ApproverUserId).Name,
- });
- var paging = PagingList.Pagination(list, req.page, req.limit);
- return Ok(paging);
- }
- [HttpGet("[action]")]
- public IActionResult Get([FromQuery] string siteId, [FromQuery] DateTime addDate, [FromQuery] string businessFieldId) {
- var query = _service.GetAll();
- var item = query.Where(
- x => x.SiteId == Util.ToInt(siteId)
- && x.AddDate.Year == addDate.Date.Year
- && x.AddDate.Month == addDate.Date.Month
- && x.BusinessFieldId == Util.ToInt(businessFieldId)
- ).Select(x => new {
- x.SiteId,
- AddDate = x.AddDate.ToString("yyyy-MM"),
- x.BusinessFieldId,
- x.Name,
- x.Contents,
- x.SiteInfoDatas,
- x.FacilityStandards,
- x.RentalStandards,
- ParkingManagement = new {
- FileId = x.ParkingManagement.FileId,
- Path = _storage.getFilePath(x.ParkingManagement),
- Name = x.ParkingManagement.Name
- },
- RentalManagement = new {
- FileId = x.RentalManagement.FileId,
- Path = _storage.getFilePath(x.RentalManagement),
- Name = x.RentalManagement.Name
- },
- MonthlyPriorityWork = new {
- FileId = x.MonthlyPriorityWork.FileId,
- Path = _storage.getFilePath(x.MonthlyPriorityWork),
- Name = x.MonthlyPriorityWork.Name
- },
- ImprovementReport = new {
- FileId = x.ImprovementReport.FileId,
- Path = _storage.getFilePath(x.ImprovementReport),
- Name = x.ImprovementReport.Name
- },
- NextMonthPriorityWork = new {
- FileId = x.NextMonthPriorityWork.FileId,
- Path = _storage.getFilePath(x.NextMonthPriorityWork),
- Name = x.NextMonthPriorityWork.Name
- },
- Cost = new {
- FileId = x.Cost.FileId,
- Path = _storage.getFilePath(x.Cost),
- Name = x.Cost.Name
- },
- SurroundingStatus = new {
- FileId = x.SurroundingStatus.FileId,
- Path = _storage.getFilePath(x.SurroundingStatus),
- Name = x.SurroundingStatus.Name
- },
- x.HumanCountStatus,
- x.ManagementOfficeContact,
- x.RelatedInstitutionsContact,
- x.UserChangeStatus,
- x.TenantContact,
- x.RegisterUserId,
- x.RegisterDate,
- x.ApproveDate,
- x.ApproverUserId,
- ApproverUserName = _context.CmUser.FirstOrDefault(user => user.UserId == x.ApproverUserId).Name,
- x.ApproverUserId2,
- ApproverUserName2 = _context.CmUser.FirstOrDefault(user => user.UserId == x.ApproverUserId2).Name,
- x.ApproverUserId3,
- ApproverUserName3 = _context.CmUser.FirstOrDefault(user => user.UserId == x.ApproverUserId3).Name,
- x.ApproverUserId4,
- ApproverUserName4 = _context.CmUser.FirstOrDefault(user => user.UserId == x.ApproverUserId4).Name,
- x.ApproverUserId5,
- ApproverUserName5 = _context.CmUser.FirstOrDefault(user => user.UserId == x.ApproverUserId5).Name,
- x.FacilityTime,
- x.FacilityTimeGraph,
- x.EnergyUsage,
- x.EnergyUsageGraph,
- x.EnergyCost,
- x.EnergyCharge,
- x.EnergyChargeGraph,
- x.EnergyAnalysis,
- }).FirstOrDefault();
- var organizationChartStatus =
- _context.CmOrganizationChartStatus.Where(
- x => x.SiteId == Util.ToInt(siteId)
- && x.Year == addDate.Date.Year
- && x.Month == addDate.Date.Month
- ).Select(x => new {
- x.CmFile.FileId,
- Path = _storage.getFilePath(x.CmFile),
- x.CmFile.Name
- }).FirstOrDefault();
- var rentalStatus =
- _context.CmRentalStatus.Where(
- x => x.SiteId == Util.ToInt(siteId)
- && x.Year == addDate.Date.Year
- && x.Month == addDate.Date.Month
- ).Select(x => new {
- x.CmFile.FileId,
- Path = _storage.getFilePath(x.CmFile),
- x.CmFile.Name
- }).FirstOrDefault();
- _logger.LogInformation("========================== 법정검사 =======================");
- DataTable legalExamination = _service.GetLegalExamination(Util.ToInt(siteId), addDate);
- var layoutStatus =
- _context.CmLayout.Where(
- x => x.SiteId == Util.ToInt(siteId)
- && x.Year == addDate.Date.Year
- && x.Month == addDate.Date.Month
- ).Select(x => new {
- x.CmFile.FileId,
- Path = _storage.getFilePath(x.CmFile),
- x.CmFile.Name
- }).FirstOrDefault();
- return Ok(new {
- report = item,
- OrganizationChartStatus = organizationChartStatus,
- RentalStatus = rentalStatus,
- LayoutStatus = layoutStatus,
- LegalExamination = legalExamination,
- });
- }
- [AllowAnonymous]
- [HttpGet("[action]")]
- public string GetJson(string siteId, DateTime? addDate, string tabName, string year, string month) {
- _logger.LogInformation(tabName);
- var query = _service.GetAll();
- if (addDate == null) {
- if (string.IsNullOrEmpty(year) || string.IsNullOrEmpty(month)) {
- throw new Exception("날짜가 입력되지 않았습니다.");
- }
- }
- // Date or year,month
- int currentYear = addDate != null ? addDate.Value.Year : Util.ToInt(year);
- int currentMonth = addDate != null ? addDate.Value.Month : Util.ToInt(month);
- DateTime currentDate = addDate != null ? addDate.Value : new DateTime(currentYear, currentMonth, 1);
- var item = query.Where(
- x => x.SiteId == Util.ToInt(siteId)
- && x.AddDate.Year == currentYear
- && x.AddDate.Month == currentMonth
- ).Select(x => new {
- CmSite = new {
- x.Name
- },
- AddDate = x.AddDate.ToString("yyyy-MM"),
- x.Name,
- x.Contents,
- x.SiteInfoDatas,
- x.FacilityStandards,
- x.RentalStandards,
- x.HumanCountStatus,
- x.UserChangeStatus,
- x.ManagementOfficeContact,
- x.RelatedInstitutionsContact,
- x.TenantContact,
- x.ParkingManagement,
- x.RentalManagement,
- x.MonthlyPriorityWork,
- x.ImprovementReport,
- x.NextMonthPriorityWork,
- x.Cost,
- x.SurroundingStatus,
- x.FacilityTime,
- x.FacilityTimeGraph,
- x.EnergyUsage,
- x.EnergyUsageGraph,
- x.EnergyCost,
- x.EnergyCharge,
- x.EnergyChargeGraph,
- x.EnergyAnalysis,
- x.ApproveDate,
- x.ApproveDate2,
- x.ApproveDate3,
- x.ApproverUserId,
- x.ApproverUserId2,
- x.ApproverUserId3
- }).FirstOrDefault();
- string approve = "";
- if (item != null) {
- approve += "[" + getApproverInfo(item.ApproverUserId, item.ApproveDate);
- approve += getApproverInfo(item.ApproverUserId2, item.ApproveDate2);
- approve += getApproverInfo(item.ApproverUserId3, item.ApproveDate3);
- approve += "]";
- }
- string json = "";
- if (item != null) {
- if (tabName == "Building") {
- json = $@"
- {{
- Building : {{
- SiteInfo: {item.SiteInfoDatas},
- FacilityStandards: {item.FacilityStandards},
- RentalStandards: {item.RentalStandards},
- Approver : {approve}
- }}
- }}";
- } else if (tabName == "UserInfo") {
- var OrganizationChartStatus = _context.CmOrganizationChartStatus.Where(x =>
- x.SiteId == Util.ToInt(siteId) &&
- x.Year == currentYear &&
- x.Month == currentMonth).Select(x => x.CmFile).SingleOrDefault();
- json = $@"
- {{
- UserInfo : {{
- OrganizationChartStatus: {JsonConvert.SerializeObject(_storage.GetPdfImages(OrganizationChartStatus))},
- HumanCountStatus : {item.HumanCountStatus},
- ManagementOfficeContact: {item.ManagementOfficeContact},
- RelatedInstitutionsContact : {item.RelatedInstitutionsContact},
- UserChangeStatus: {item.UserChangeStatus},
- Approver : {approve}
- }}
- }}";
- } else if (tabName == "TenantInfo") {
- var RentalStatus = _context.CmRentalStatus.Where(x =>
- x.SiteId == Util.ToInt(siteId) &&
- x.Year == currentYear &&
- x.Month == currentMonth).Select(x => x.CmFile).SingleOrDefault();
- json = $@"
- {{
- Images :{JsonConvert.SerializeObject(_storage.GetPdfImages(RentalStatus))},
- Approver : {approve}
- }}";
- } else if (tabName == "TenantInfoFloor") {
- var LayoutStatus = _context.CmLayout.Where(x =>
- x.SiteId == Util.ToInt(siteId) &&
- x.Year == currentYear &&
- x.Month == currentMonth).Select(x => x.CmFile).SingleOrDefault();
- json = $@"
- {{
- TenantInfoFloor : {{
- LayoutStatus: {JsonConvert.SerializeObject(_storage.GetPdfImages(LayoutStatus))},
- TenantContact : {item.TenantContact},
- Approver : {approve}
- }}
- }}";
- } else if (tabName == "ParkingManagement") {
- json = $@"
- {{
- Images : {JsonConvert.SerializeObject(_storage.GetPdfImages(item.ParkingManagement))},
- Approver : {approve}
- }}";
- } else if (tabName == "RentalManagement") {
- json = $@"
- {{
- Images : {JsonConvert.SerializeObject(_storage.GetPdfImages(item.RentalManagement))},
- Approver : {approve}
- }}";
- } else if (tabName == "LegalExamination") {
- DataTable legalExamination = _service.GetLegalExamination(Util.ToInt(siteId), currentDate);
- json = $@"
- {{
- Images : {JsonConvert.SerializeObject(legalExamination)},
- Approver : {approve}
- }}";
- } else if (tabName == "MonthlyPriorityWork") {
- json = $@"
- {{
- Images :{JsonConvert.SerializeObject(_storage.GetPdfImages(item.MonthlyPriorityWork))},
- Approver : {approve}
- }}";
- } else if (tabName == "ImprovementReport") {
- json = $@"
- {{
- Images : {JsonConvert.SerializeObject(_storage.GetPdfImages(item.ImprovementReport))},
- Approver : {approve}
- }}";
- } else if (tabName == "NextMonthPriorityWork") {
- json = $@"
- {{
- Images : {JsonConvert.SerializeObject(_storage.GetPdfImages(item.NextMonthPriorityWork))},
- Approver : {approve}
- }}";
- } else if (tabName == "Cost") {
- json = $@"
- {{
- Images : {JsonConvert.SerializeObject(_storage.GetPdfImages(item.Cost))},
- Approver : {approve}
- }}";
- } else if (tabName == "SurroundingStatus") {
- json = $@"
- {{
- Images : {JsonConvert.SerializeObject(_storage.GetPdfImages(item.SurroundingStatus))},
- Approver : {approve}
- }}";
- } else if (tabName == "FacilityTime") {
- json = $@"
- {{
- FacilityTime : {{
- FacilityTime: {item.FacilityTime},
- FacilityTimeGraph: {item.FacilityTimeGraph},
- Approver : {approve}
- }}
- }}";
- } else if (tabName == "EnergyUsageElect") {
- string energyUsage = "", energyUsageGraph = "", energyCost = "";
- JArray jarr1 = JArray.Parse(item.EnergyUsage);
- foreach (var val in jarr1) {
- if (val["FuelTypeId"].ToString() == "1") {
- energyUsage += (energyUsage != "" ? "," : "") + val.ToString(Newtonsoft.Json.Formatting.None);
- }
- }
- JArray jarr2 = JArray.Parse(item.EnergyUsageGraph);
- foreach (var val in jarr2) {
- if (val["FuelTypeId"].ToString() == "1") {
- energyUsageGraph += (energyUsageGraph != "" ? "," : "") + val.ToString(Newtonsoft.Json.Formatting.None);
- }
- }
- JArray jarr3 = JArray.Parse(item.EnergyCost);
- foreach (var val in jarr3) {
- if (val["FuelTypeId"].ToString() == "1") {
- energyCost += (energyCost != "" ? "," : "") + val.ToString(Newtonsoft.Json.Formatting.None);
- }
- }
- json = $@"
- {{
- EnergyUsageElect : {{
- EnergyUsage: [{energyUsage}],
- EnergyUsageGraph: [{energyUsageGraph}],
- EnergyCost: [{energyCost}],
- Approver : {approve}
- }}
- }}";
- } else if (tabName == "EnergyUsageGasWater") {
- string energyUsage = "", energyUsageGraph = "", energyCost = "";
- JArray jarr1 = JArray.Parse(item.EnergyUsage);
- foreach (var val in jarr1) {
- if (val["FuelTypeId"].ToString() != "1") {
- energyUsage += (energyUsage != "" ? "," : "") + val.ToString(Newtonsoft.Json.Formatting.None);
- }
- }
- JArray jarr2 = JArray.Parse(item.EnergyUsageGraph);
- foreach (var val in jarr2) {
- if (val["FuelTypeId"].ToString() != "1") {
- energyUsageGraph += (energyUsageGraph != "" ? "," : "") + val.ToString(Newtonsoft.Json.Formatting.None);
- }
- }
- JArray jarr3 = JArray.Parse(item.EnergyCost);
- foreach (var val in jarr3) {
- if (val["FuelTypeId"].ToString() != "1") {
- energyCost += (energyCost != "" ? "," : "") + val.ToString(Newtonsoft.Json.Formatting.None);
- }
- }
- json = $@"
- {{
- EnergyUsageGasWater : {{
- EnergyUsage: [{energyUsage}],
- EnergyUsageGraph: [{energyUsageGraph}],
- EnergyCost: [{energyCost}],
- Approver : {approve}
- }}
- }}";
- } else if (tabName == "EnergyChargeElect") {
- string energyCharge = "", energyChargeGraph = "", energyAnalysis = "";
- JArray jarr1 = JArray.Parse(item.EnergyCharge);
- foreach (var val in jarr1) {
- if (val["FuelTypeId"].ToString() == "1") {
- energyCharge += (energyCharge != "" ? "," : "") + val.ToString(Newtonsoft.Json.Formatting.None);
- }
- }
- JArray jarr2 = JArray.Parse(item.EnergyChargeGraph);
- foreach (var val in jarr2) {
- if (val["FuelTypeId"].ToString() == "1") {
- energyChargeGraph += (energyChargeGraph != "" ? "," : "") + val.ToString(Newtonsoft.Json.Formatting.None);
- }
- }
- JArray jarr3 = JArray.Parse(item.EnergyAnalysis);
- foreach (var val in jarr3) {
- if (val["FuelTypeId"].ToString() == "1") {
- energyAnalysis += (energyAnalysis != "" ? "," : "") + val.ToString(Newtonsoft.Json.Formatting.None);
- }
- }
- json = $@"
- {{
- EnergyChargeElect : {{
- EnergyCharge: [{energyCharge}],
- EnergyChargeGraph: [{energyChargeGraph}],
- EnergyAnalysis: [{energyAnalysis}],
- Approver : {approve}
- }}
- }}";
- } else if (tabName == "EnergyChargeGasWater") {
- string energyCharge = "", energyChargeGraph = "", energyAnalysis = "";
- JArray jarr1 = JArray.Parse(item.EnergyCharge);
- foreach (var val in jarr1) {
- if (val["FuelTypeId"].ToString() != "1") {
- energyCharge += (energyCharge != "" ? "," : "") + val.ToString(Newtonsoft.Json.Formatting.None);
- }
- }
- JArray jarr2 = JArray.Parse(item.EnergyChargeGraph);
- foreach (var val in jarr2) {
- if (val["FuelTypeId"].ToString() != "1") {
- energyChargeGraph += (energyChargeGraph != "" ? "," : "") + val.ToString(Newtonsoft.Json.Formatting.None);
- }
- }
- JArray jarr3 = JArray.Parse(item.EnergyAnalysis);
- foreach (var val in jarr3) {
- if (val["FuelTypeId"].ToString() != "1") {
- energyAnalysis += (energyAnalysis != "" ? "," : "") + val.ToString(Newtonsoft.Json.Formatting.None);
- }
- }
- json = $@"
- {{
- EnergyChargeGasWater : {{
- EnergyCharge: [{energyCharge}],
- EnergyChargeGraph: [{energyChargeGraph}],
- EnergyAnalysis: [{energyAnalysis}],
- Approver : {approve}
- }}
- }}";
- }
- } else {
- json = "{}";
- if (tabName == "TenantInfo") {
- json = "{ Images :[], Approver : [] }";
- } else if (tabName == "ParkingManagement") {
- json = "{ Images :[], Approver : [] }";
- } else if (tabName == "RentalManagement") {
- json = "{ Images :[], Approver : [] }";
- } else if (tabName == "MonthlyPriorityWork") {
- json = "{ Images :[], Approver : [] }";
- } else if (tabName == "ImprovementReport") {
- json = "{ Images :[], Approver : [] }";
- } else if (tabName == "NextMonthPriorityWork") {
- json = "{ Images :[], Approver : [] }";
- } else if (tabName == "Cost") {
- json = "{ Images :[], Approver : [] }";
- } else if (tabName == "SurroundingStatus") {
- json = "{ Images :[], Approver : [] }";
- }
- }
- return json;
- }
- public string getApproverInfo(string id, DateTime? date) {
- if (!Util.IsNullOrEmpty(id)) {
- var userInfo = _context.CmUser.Where(x => x.UserId == id).Select(x => new {
- GroupNm = x.CmUserGroup.Name,
- Date = date.Value.ToString("yyyy-MM-dd"),
- image = x.CmFile1 != null ? _storage.GetFullUrl(x.CmFile1.Path) + _storage.getFilePath(x.CmFile1) : ""
- }).SingleOrDefault();
- return JsonConvert.SerializeObject(userInfo) + ",";
- } else return "";
- }
- private static string AreaParse(String areaVal) {
- string returnVal = "";
- float val;
- if (!Util.IsNullOrEmpty(areaVal) && float.TryParse(areaVal, out val)) {
- returnVal = val.ToString("#,##0.00") + "㎡ (" + (val / 3.3058).ToString("#,##0.00") + "평)";
- }
- return returnVal;
- }
- [HttpGet("[action]")]
- public IActionResult GetCurrentInfo([FromQuery] string siteId, [FromQuery] DateTime addDate, [FromQuery] string businessFieldId) {
- var today = addDate.Date;
- _logger.LogInformation("========================== 기본사항! =======================");
- var siteInfo = _context.CmSite.Where(
- x => x.SiteId == Util.ToInt(siteId)
- ).Select(x => new {
- x.SiteId,
- x.Name,
- x.PhoneNo,
- x.AddressZip1,
- x.CompletionDate,
- Address1 = x.Address1 + x.Adderss2,
- x.BuildingSize,
- GrossArea = AreaParse(x.GrossArea),
- BuildingArea = AreaParse(x.BuildingArea),
- x.FloorAreaRatio,
- x.BuildingCoverageRatio,
- x.MainUse,
- x.Standard,
- x.Url,
- ImageFile = _storage.ParseFile(x.ImageFile),
- x.DesignSupervision,
- x.ConstructionCompany,
- x.ConstructionPeriod,
- x.Structure,
- x.LobbyFloor,
- x.OfficeFloor,
- x.ToiletFloor,
- x.EVHall,
- x.ParkingLot,
- x.ParkingFacilities,
- x.OuterWall,
- LandArea = AreaParse(x.LandArea),
- LandscapingArea = AreaParse(x.LandscapingArea),
- x.BuildingFloors,
- x.BuildingHeight,
- x.ConversionRate,
- x.AuditoriumFacilities
- }).FirstOrDefault();
- _logger.LogInformation("========================== 조직도현황! =======================");
- var organizationChartStatus = _context.CmOrganizationChartStatus.Where(
- x => x.SiteId == Util.ToInt(siteId) &&
- x.Year == addDate.Year &&
- x.Month == addDate.Month
- ).Select(x => new {
- FileId = x.FileId,
- Path = _storage.getFilePath(x.CmFile),
- Name = x.CmFile.Name
- }).FirstOrDefault();
- _logger.LogInformation("========================== 입주사현황(임대현황)! =======================");
- var rentalStatus = _context.CmRentalStatus.Where(
- x => x.SiteId == Util.ToInt(siteId) &&
- x.Year == addDate.Year &&
- x.Month == addDate.Month
- ).Select(x => new {
- FileId = x.FileId,
- Path = _storage.getFilePath(x.CmFile),
- Name = x.CmFile.Name
- }).FirstOrDefault();
- _logger.LogInformation("========================== 층별사용현황(레이아웃)! =======================");
- var layoutStatus = _context.CmLayout.Where(
- x => x.SiteId == Util.ToInt(siteId) &&
- x.Year == addDate.Year &&
- x.Month == addDate.Month
- ).Select(x => new {
- FileId = x.FileId,
- Path = _storage.getFilePath(x.CmFile),
- Name = x.CmFile.Name
- }).FirstOrDefault();
- _logger.LogInformation("========================== 기온및설비관리(설비가동현황) =======================");
- DataTable facilityTime = _service.GetFacilityTime(Util.ToInt(siteId), today);
- //그래프
- DataTable facilityTimeGraph = _service.GetFacilityTimeGraph(Util.ToInt(siteId), today);
- _logger.LogInformation("========================== 에너지사용량(전기/가스/수도) =======================");
- // 에너지사용량 - 사용량
- DataTable energyUsage = _service.GetEnergyData(Util.ToInt(siteId), today, 1, false);
- // 에너지사용량 - 사용량 그래프
- DataTable energyUsageGraph = _service.GetEnergyData(Util.ToInt(siteId), today, 1, true);
- // 에너지사용량 - 단가변동
- DataTable energyCost = _service.GetEnergyData(Util.ToInt(siteId), today, 2, false);
- _logger.LogInformation("========================== 에너지요금분석(전기/가스/수도) =======================");
- // 에너지요금분석 - 요금분석
- DataTable energyCharge = _service.GetEnergyData(Util.ToInt(siteId), today, 3, false);
- // 에너지요금분석 - 요금분석 그래프
- DataTable energyChargeGraph = _service.GetEnergyData(Util.ToInt(siteId), today, 3, true);
- // 에너지요금분석 - 증감사유
- var energyAnalysis = _context.FmsEnergyAnalysis.Where(x => x.SiteId == Util.ToInt(siteId) && x.Year == addDate.Year && x.Month == addDate.Month)
- .Select(x => new {
- x.FuelTypeId,
- x.PriceTypeId,
- x.Content
- }).ToList();
- _logger.LogInformation("========================== 법정검사 =======================");
- DataTable legalExamination = _service.GetLegalExamination(Util.ToInt(siteId), addDate);
- _logger.LogInformation("========================== 지난달 월간보고서 데이터! =======================");
- var lastMonthDatas = _context.FmsMonthlyReport.Where(
- x => x.SiteId == Util.ToInt(siteId) &&
- x.AddDate.Year == addDate.AddMonths(-1).Year &&
- x.AddDate.Month == addDate.AddMonths(-1).Month
- ).Select(x => new {
- x.FacilityStandards,
- x.RentalStandards,
- x.HumanCountStatus,
- x.ManagementOfficeContact,
- x.RelatedInstitutionsContact,
- x.UserChangeStatus,
- x.TenantContact,
- }).FirstOrDefault();
- return Ok(new {
- SiteInfo = siteInfo,
- OrganizationChartStatus = organizationChartStatus,
- LastMonthDatas = lastMonthDatas,
- RentalStatus = rentalStatus,
- LayoutStatus = layoutStatus,
- FacilityTime = facilityTime,
- FacilityTimeGraph = facilityTimeGraph,
- LegalExamination = legalExamination,
- EnergyUsage = energyUsage,
- EnergyUsageGraph = energyUsageGraph,
- EnergyCost = energyCost,
- EnergyCharge = energyCharge,
- EnergyChargeGraph = energyChargeGraph,
- EnergyAnalysis = energyAnalysis,
- });
- }
- /// <summary>
- /// 저장
- /// </summary>
- /// <param name="data"></param>
- /// <returns></returns>
- [HttpPost("[action]")]
- public IActionResult Save([FromBody] FmsMonthlyReport data, [FromQuery] bool isCreate) {
- _logger.LogInformation($"Save isCreate({isCreate})");
- //_logger.LogInformation(data.Dump());
- if (ModelState.IsValid) {
- _service.Save(data, isCreate);
- } else {
- return BadRequest(ModelState);
- }
- return Ok();
- }
- [HttpPost("[action]")]
- public IActionResult Approve([FromQuery] string siteId, [FromQuery] string approverUserId, [FromQuery] DateTime addDate, [FromQuery] string businessFieldId) {
- _service.Approve(Util.ToInt(siteId), approverUserId, addDate, Util.ToInt(businessFieldId));
- return Ok();
- }
- // 검색 & 정렬 공통
- private IQueryable<FmsMonthlyReport> _FilterAndSort(PagingRequest req) {
- var query = _service.GetAll();
- // 기본 Entity 검색
- query = query.Filter(req.conditions);
- // 기본 Entity 정렬
- query = query.Sort(req.sort);
- return query;
- }
- [HttpDelete("[action]")]
- public IActionResult Delete([FromQuery] string siteId, [FromQuery] DateTime addDate, [FromQuery] string businessFieldId) {
- _service.Delete(Util.ToInt(siteId), addDate, Util.ToInt(businessFieldId));
- return Ok();
- }
- }
- }
|