diff --git a/api_v1/Appointment.Entity/Appointment.Entity.xml b/api_v1/Appointment.Entity/Appointment.Entity.xml index ba877d9..c9f302f 100644 --- a/api_v1/Appointment.Entity/Appointment.Entity.xml +++ b/api_v1/Appointment.Entity/Appointment.Entity.xml @@ -2694,7 +2694,7 @@ - 使用状态:R-预定 + 使用状态:R-预定的确定单:M-自己预定的确定单:T-暂定单 @@ -2712,6 +2712,21 @@ 状态:第1场,第2场,第3场 状态 + + + 场次状态:R-其他人预定单;M-我的预定单;I-占用; + + + + + 暂订单数量 + + + + + 暂订单主键列表 + + 存储过程返回数据 diff --git a/api_v1/Appointment.Entity/Response/MeetingRes.cs b/api_v1/Appointment.Entity/Response/MeetingRes.cs index ef45cb3..f16a4e6 100644 --- a/api_v1/Appointment.Entity/Response/MeetingRes.cs +++ b/api_v1/Appointment.Entity/Response/MeetingRes.cs @@ -20,7 +20,7 @@ namespace Appointment.Entity public string Descript { get; set; } /// - /// 使用状态:R-预定 + /// 使用状态:R-预定的确定单:M-自己预定的确定单:T-暂定单 /// public List DayStatus { get; set; } @@ -40,5 +40,25 @@ namespace Appointment.Entity /// 状态:第1场,第2场,第3场 状态 /// public string[] Status { get; set; } + + public List MeetingNums { get; set; } + } + + public class MeetingNum + { + /// + /// 场次状态:R-其他人预定单;M-我的预定单;I-占用; + /// + public string Group { get; set; } + + /// + /// 暂订单数量 + /// + public int Num { get; set; } + + /// + /// 暂订单主键列表 + /// + public List SummaryList { get; set; } } } diff --git a/api_v1/Appointment.Repository/ApptRepo.cs b/api_v1/Appointment.Repository/ApptRepo.cs index cc90ad3..589921b 100644 --- a/api_v1/Appointment.Repository/ApptRepo.cs +++ b/api_v1/Appointment.Repository/ApptRepo.cs @@ -53,18 +53,28 @@ namespace Appointment.Repository MeetingName = c.Descript1, Code = c.Code, Stime = i.Stime.Value, - Sta = i.Sta, + Sta = i.Sta == "O" ? "I" : i.Sta, Sfield = i.Sfield, Resby = i.Resby }) - .ToList(); + .ToList().Replace(); List reList = new List(); - var resCode = Db.Queryable() - .Where(t => t.Sort == "A" && t.Sta == "T").OrderBy(t => t.Code, OrderByType.Asc).ToList(); + .Where(t => t.Sort == "A" && t.Sta == "T").OrderBy(t => t.Code, OrderByType.Asc).ToList().Replace(); if (resCode == null || resCode.Count == 0) return ApiResult>.Success(string.Empty); int days = (req.EndDay - req.StartDay).Days; + + /* 封装暂订单数量 */ + var zy = Db.Queryable().Where(t => t.ApplyOA == 1 && t.StartDay >= req.StartDay.AddMonths(-2) && t.EndDay <= req.EndDay.AddMonths(2)) + .Select(t => t.Guid).ToList(); + var meets = Db.Queryable((m, s) => new JoinQueryInfos( + JoinType.Left, m.ApptId == s.Id)) + .Where((m, s) => s.ApptTypeId == 2 && s.ApptType != 4 && m.MeetingTime >= req.StartDay && m.MeetingTime <= req.EndDay && !zy.Contains(s.Guid)).ToList(); + //var inSumGuid = Db.Queryable().Where(t => meets.Select(t => t.ApptId).Contains(t.Id)).Select(t => t.Guid).ToList(); + //var _inSumGuid = Db.Queryable().Where(t => t.ApplyOA == 1 && inSumGuid.Contains(t.Guid)).ToList(); + //meets= meets.Where(t=> !_inSumGuid.Contains(t.gui)) + foreach (var item in resCode) { DateTime curDay = req.StartDay; @@ -79,20 +89,37 @@ namespace Appointment.Repository string[] st = new string[] { "", "", "" }; for (int j = 0; j < 3; j++) { + var meetingNum = new MeetingNum(); int sField = j + 1; var model = ls.Where(t => t.Stime == curDay && t.Sfield == sField && t.Code == item.Code).FirstOrDefault(); + if (model != null) { if (model.Resby == loginUserRes.Info.UserAccount) { + meetingNum.Group = "M"; st[j] = "M"; } else { st[j] = model.Sta; + meetingNum.Group = model.Sta; + } + + + } + if (meets != null) + { + var m = meets.Where(t => t.MeetingTime == meetingStatus.Day && t.MeetingCode == item.Code && t.Groups.Contains(sField.ToString())) + .Select(t => t.ApptId.Value).ToList(); + meetingNum.Num = m.Count(); + if (meetingNum.Num > 0) + { + meetingNum.SummaryList = m; } } - + if (meetingStatus.MeetingNums == null) meetingStatus.MeetingNums = new List(); + meetingStatus.MeetingNums.Add(meetingNum); } meetingStatus.Status = st; meetingRes.DayStatus.Add(meetingStatus);