using APT.BaseData.Domain.Entities.FM; using APT.BaseData.Domain.Entities; using APT.BaseData.Domain.Enums.PF; using APT.BaseData.Domain.Enums; using APT.BaseData.Services.Services.FM; using APT.Infrastructure.Core; using APT.MS.Domain.Entities.SC.PT; using APT.MS.Domain.Enums; using APT.Utility; using Microsoft.AspNetCore.Mvc; using System.Collections.Generic; using System.Linq; using System; using APT.BaseData.Domain.IServices.FM; using APT.BaseData.Domain.IServices; using APT.BaseData.Services.DomainServices; using APT.MS.Domain.Entities.HM; using APT.MS.Domain.Entities.BS; using NPOI.SS.Formula.Functions; namespace APT.SC.WebApi.Controllers.Api.PTController { /// /// 年度监测汇总 /// [Route("api/PT/PTAnnualMonotorSummary")] public partial class AnnualMonotorSummaryController : AuthorizeApiController { IFMNotificationTaskService NotificationTaskService { get; set; } /// /// FOPreOperSch /// /// public AnnualMonotorSummaryController(IFMNotificationTaskService notificationTaskService) { NotificationTaskService = notificationTaskService; } /// /// 已阅 /// /// /// [HttpPost, Route("IdentityUpdate")] public JsonActionResult IdentityUpdate([FromBody] T_PT_ANNUAL_MONOTOR_SUMMARY entity) { return SafeExecute(() => { var summary = this.GetEntity(entity.ID); var loginUserId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID; var notices = GetEntities(t => t.SOURCE_FORMCODE == "PT036_SHOWPRINT" && t.SOURCE_DATA_ID == entity.ID && t.NOTICE_STATUS == (int)FMNoticeStatusEnum.未处理 && t.USER_ID != loginUserId, new BaseFilter(entity.ORG_ID)).ToList(); if (notices.Count() == 0) { summary.STATUS = PFStandardStatus.Archived; } T_FM_NOTIFICATION_TASK task = null; if (entity.TaskID != Guid.Empty) { task = NotificationTaskService.GetTaskFinishModel(entity.TaskID); } UnifiedCommit(() => { if (summary != null) this.UpdateEntityNoCommit(summary); if (task != null) this.UpdateEntityNoCommit(task); }); return true; }); } /// /// 获取 /// /// /// [HttpPost, Route("GetEdit")] public JsonActionResult GetEdit([FromBody] KeywordFilter filter) { return SafeExecute(() => { //var id = filter.FilterGroup.Rules.FirstOrDefault(t => t.Field == "ID").Value.ToString(); //if (string.IsNullOrEmpty(id)) // this.ThrowError("030017"); //var result = this.GetEntity(id); var result = this.GetEntity(null, filter, null); var detailIds = result.Nav_Details.Select(i => i.ID).Distinct(); var newFilter = new BaseFilter(result.ORG_ID); var userIds = result.Nav_Details.Select(i => i.USER_ID).ToList(); newFilter.SelectField = new List { "NAME","Nav_Person.Nav_Post" }; var userList = this.GetEntities(i => userIds.Contains(i.ID) && i.ENABLE_STATUS == 0, newFilter); var departmenrIds = result.Nav_Details.Select(i => i.DEPARTMENT_ID).ToList(); newFilter.SelectField = new List { "NAME", "DEPARTMENT_TYPE" }; var departList = this.GetEntities(i => departmenrIds.Contains(i.ID), newFilter); newFilter.SelectField = new List { "MONOTOR_SUMMARY_DETAIL_ID", "ROW_NO", "QUARTER_TYPE", "NAME", "SCORE", "METHOD", "CONTENT", "MEASURES", "RESULT_SCORE" }; var detailContens = this.GetEntities(i => detailIds.Contains(i.MONOTOR_SUMMARY_DETAIL_ID), newFilter); foreach (var c in result.Nav_Details) { c.Nav_User = userList.FirstOrDefault(i => i.ID == c.USER_ID); c.Nav_Department = departList.FirstOrDefault(i => i.ID == c.DEPARTMENT_ID); c.Nav_Contents = detailContens.Where(i => i.MONOTOR_SUMMARY_DETAIL_ID == c.ID).ToList(); } result.Nav_Details = result.Nav_Details.OrderBy(t => t.USER_ID).ToList(); return result; }); } } }