Commit 622ed4f0 authored by 黄奎's avatar 黄奎

页面修改

parent 0f74a71e
......@@ -15,5 +15,10 @@ namespace Edu.Model.ViewModel.Duty
/// 页面修改
/// </summary>
public List<string> FileList { get; set; }
/// <summary>
/// 值班计划编号【查询使用】
/// </summary>
public string QPlanIds { get; set; }
}
}
......@@ -76,7 +76,7 @@ namespace Edu.Module.Duty
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public bool SetDutyItemModel(RB_Duty_Item_ViewModel model)
public bool SetDutyItemModule(RB_Duty_Item_ViewModel model)
{
if (model.Id == 0)
{
......@@ -97,6 +97,17 @@ namespace Edu.Module.Duty
}
}
/// <summary>
/// 根据编号获取值班事项信息
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
public RB_Duty_Item_ViewModel GetDutyItemModule(int Id)
{
var model = dutyItemRepository.GetEntity<RB_Duty_Item_ViewModel>(Id);
return model;
}
#endregion
......
......@@ -78,34 +78,9 @@ namespace Edu.Module.Duty
{
foreach (var subItem in item.PlanDetails)
{
var startTime = Convert.ToDateTime(Common.ConvertHelper.FormatDate(item?.Date) + " " + subItem?.StartTime);
var endTime = Convert.ToDateTime(Common.ConvertHelper.FormatDate(item?.Date) + " " + subItem?.EndTime);
if (DateTime.Now < startTime)
{
subItem.DutyStatus = DutyStatusEnum.NoStart;
}
else if (startTime <= DateTime.Now && DateTime.Now <= endTime)
{
subItem.DutyStatus = DutyStatusEnum.DutyIng;
}
else
{
subItem.DutyStatus = DutyStatusEnum.DutyFinished;
}
}
if (item.PlanDetails.Where(qitem => qitem.DutyStatus == DutyStatusEnum.NoStart).Count() == item.PlanDetails.Count)
{
item.DutyStatus = DutyStatusEnum.NoStart;
}
else if (item.PlanDetails.Where(qitem => qitem.DutyStatus == DutyStatusEnum.DutyFinished).Count() == item.PlanDetails.Count)
{
item.DutyStatus = DutyStatusEnum.DutyFinished;
}
else
{
item.DutyStatus = DutyStatusEnum.DutyIng;
subItem.DutyStatus = CalcDutyPlanStatusModule(item.Date, subItem?.StartTime, subItem?.EndTime);
}
item.DutyStatus = CalcDutyStatusModule(item.PlanDetails);
}
}
}
......@@ -130,9 +105,11 @@ namespace Edu.Module.Duty
string shiftIds = "";
List<RB_Duty_PlanDetails_ViewModel> planDetails = new List<RB_Duty_PlanDetails_ViewModel>();
List<RB_Duty_Item_ViewModel> dutyItemList = new List<RB_Duty_Item_ViewModel>();
List<RB_Duty_Content_ViewModel> dutyContentList = new List<RB_Duty_Content_ViewModel>();
if (!string.IsNullOrEmpty(ids))
{
planDetails = GetDutyPlanDetailsListModule(new RB_Duty_PlanDetails_ViewModel() { QPlanIds = ids }, IsQueryDutyMan: true);
dutyContentList= duty_ContentRepository.GetDutyContentListRepository(new RB_Duty_Content_ViewModel() { QPlanIds = ids,PlanType=1 });
}
if (planDetails != null && planDetails.Count > 0)
{
......@@ -146,21 +123,85 @@ namespace Edu.Module.Duty
Shifts = shiftIds
});
}
foreach (var item in list)
{
item.PlanDetails = planDetails?.Where(qitem => qitem.PlanId == item.Id)?.ToList() ?? new List<RB_Duty_PlanDetails_ViewModel>();
if (item.PlanDetails != null && item.PlanDetails.Count > 0)
{
foreach (var subItem in item.PlanDetails)
{
subItem.DutyStatus = CalcDutyPlanStatusModule(item.Date, subItem.StartTime, subItem.EndTime);
if (subItem.DutyStatus == DutyStatusEnum.DutyFinished)
{
subItem.DutyItemList = new List<RB_Duty_Item_ViewModel>();
foreach (var dItem in dutyContentList.Where(qitem => qitem.PlanId == item.Id && qitem.PlanShift == subItem.Shift))
{
subItem.DutyItemList.Add(new RB_Duty_Item_ViewModel
{
ItemName = dutyItemList.Where(qitem => qitem.Id == dItem.ItemId)?.FirstOrDefault()?.ItemName ?? ""
});
}
}
else
{
subItem.DutyItemList = dutyItemList.Where(qitem => qitem.ItemSchools.Contains(item.School_Id.ToString()) && qitem.Shifts.Contains(subItem.Shift.ToString()))?.ToList() ?? new List<RB_Duty_Item_ViewModel>();
}
}
}
}
}
return list;
}
/// <summary>
/// 计算班次值班是否完成
/// </summary>
/// <param name="planDate"></param>
/// <param name="startTime"></param>
/// <param name="endTime"></param>
/// <returns></returns>
public DutyStatusEnum CalcDutyPlanStatusModule(DateTime planDate,string startTime,string endTime)
{
DutyStatusEnum dutyStatus = DutyStatusEnum.NoStart;
var dutyStartTime = Convert.ToDateTime(Common.ConvertHelper.FormatDate(planDate) + " " + startTime);
var dutyEndTime = Convert.ToDateTime(Common.ConvertHelper.FormatDate(planDate) + " " + endTime);
if (DateTime.Now > dutyEndTime)
{
dutyStatus = Common.Enum.Duty.DutyStatusEnum.DutyFinished;
}
else if (DateTime.Now >= dutyStartTime && DateTime.Now <= dutyEndTime)
{
dutyStatus = Common.Enum.Duty.DutyStatusEnum.DutyIng;
}
else
{
dutyStatus = Common.Enum.Duty.DutyStatusEnum.NoStart;
}
return dutyStatus;
}
/// <summary>
/// 计算当天值班是否完成
/// </summary>
/// <returns></returns>
public DutyStatusEnum CalcDutyStatusModule(List<RB_Duty_PlanDetails_ViewModel> PlanDetails)
{
DutyStatusEnum dutyStatus = DutyStatusEnum.NoStart;
if (PlanDetails.Where(qitem => qitem.DutyStatus == DutyStatusEnum.NoStart).Count() == PlanDetails.Count)
{
dutyStatus = DutyStatusEnum.NoStart;
}
else if (PlanDetails.Where(qitem => qitem.DutyStatus == DutyStatusEnum.DutyFinished).Count() == PlanDetails.Count)
{
dutyStatus = DutyStatusEnum.DutyFinished;
}
else
{
dutyStatus = DutyStatusEnum.DutyIng;
}
return dutyStatus;
}
/// <summary>
/// 获取值班班次详情列表
......@@ -412,6 +453,7 @@ namespace Edu.Module.Duty
}
return flag;
}
/// <summary>
/// 用户值班
/// </summary>
......@@ -436,19 +478,8 @@ namespace Edu.Module.Duty
var nextModel = new RB_Duty_PlanDetails_ViewModel();
if (model.PlanDetails != null && model.PlanDetails.Count > 0)
{
//当前值班人员索引
int currentIndex = 0;
var currentDayNow = Convert.ToDateTime(Common.ConvertHelper.FormatDate(model.Date) + " " + DateTime.Now.ToString("HH:mm:ss"));
for (var i = 0; i < model.PlanDetails.Count; i++)
{
var sStartTime = Convert.ToDateTime(Common.ConvertHelper.FormatDate(model.Date) + " " + model.PlanDetails[i].StartTime);
var sEndTime = Convert.ToDateTime(Common.ConvertHelper.FormatDate(model.Date) + " " + model.PlanDetails[i].EndTime);
if (currentDayNow >= sStartTime && currentDayNow <= sEndTime && model.PlanDetails[i].DutyMan == user.Id)
{
currentIndex = i;
}
}
//查找当前人员索引
int currentIndex = CalcCurrentDutyManIndexModule(model.Date, model.PlanDetails, user.Id);
//上一个班次索引
int previousIndex = currentIndex - 1;
//下一个班次索引
......@@ -467,22 +498,7 @@ namespace Edu.Module.Duty
nextModel = model.PlanDetails[nextIndex];
}
}
//值班状态
DutyStatusEnum dutyStatusEnum = DutyStatusEnum.NoStart;
var startTime = Convert.ToDateTime(Common.ConvertHelper.FormatDate(model?.Date) + " " + currentModel?.StartTime);
var endTime = Convert.ToDateTime(Common.ConvertHelper.FormatDate(model?.Date) + " " + currentModel?.EndTime);
if (DateTime.Now < startTime)
{
dutyStatusEnum = DutyStatusEnum.NoStart;
}
else if (startTime <= DateTime.Now && DateTime.Now <= endTime)
{
dutyStatusEnum = DutyStatusEnum.DutyIng;
}
else
{
dutyStatusEnum = DutyStatusEnum.DutyFinished;
}
if (!isQueryWork)
{
result.Add("Id", model?.Id);
......@@ -501,7 +517,12 @@ namespace Edu.Module.Duty
}
else
{
var PlanList = currentModel?.DutyItemList ?? new List<RB_Duty_Item_ViewModel>();
var dutyItemList = duty_ItemRepository.GetDutyItemListRepository(new RB_Duty_Item_ViewModel()
{
ItemSchools = model.School_Id.ToString(),
Shifts = currentModel.Shift.ToString(),
});
var PlanList = dutyItemList ?? new List<RB_Duty_Item_ViewModel>();
//获取所有的值班内容
var contentList = duty_ContentRepository.GetDutyContentListRepository(new RB_Duty_Content_ViewModel() { PlanId = model.Id });
foreach (var item in contentList)
......@@ -519,8 +540,29 @@ namespace Edu.Module.Duty
}
}
List<object> pList = new List<object>();
var currentPlanContetList = contentList.Where(qitem => qitem.PlanShift == Shift && qitem.PlanType == 1)?.ToList();
if (currentModel.DutyStatus == DutyStatusEnum.DutyFinished)
{
foreach (var item in currentPlanContetList)
{
var c_itemModel = dutyItemList?.Where(qitem => qitem.Id == item.ItemId)?.FirstOrDefault();
if (c_itemModel != null)
{
var pObj = new
{
Id = item?.Id ?? 0,
ItemId = item.ItemId,
ItemName = c_itemModel?.ItemName ?? "",
ItemType = c_itemModel?.ItemType ?? ItemTypeEnum.FillIn,
IsChecked = item?.WorkIsFinish ?? 0,
WorkContent = item?.WorkContent ?? "",
};
pList.Add(pObj);
}
}
}
else
{
foreach (var item in PlanList)
{
var c_workModel = currentPlanContetList?.Where(qitem => qitem.ItemId == item.Id)?.FirstOrDefault();
......@@ -535,6 +577,9 @@ namespace Edu.Module.Duty
};
pList.Add(pObj);
}
}
result.Add("WorkList", pList);
//突发事项列表
result.Add("EmergenciesList", contentList?.Where(qitem => qitem.PlanType == 3)?.ToList() ?? new List<RB_Duty_Content_ViewModel>());
......@@ -542,12 +587,37 @@ namespace Edu.Module.Duty
result.Add("HandoverList", contentList?.Where(qitem => qitem.PlanType == 2)?.ToList() ?? new List<RB_Duty_Content_ViewModel>());
result.Add("ReciveMan", nextModel?.DutyManName ?? "");
result.Add("GiveMan", previousModel?.DutyManName ?? "");
result.Add("DutyStatus", (int)dutyStatusEnum);
result.Add("DutyStatusStr", Common.Plugin.EnumHelper.ToName(dutyStatusEnum));
}
result.Add("DutyStatus", currentModel?.DutyStatus);
result.Add("DutyStatusStr", currentModel?.DutyStatusStr);
return result;
}
/// <summary>
/// 计算当前值班人员索引
/// </summary>
/// <param name="planDate">值班日期</param>
/// <param name="PlanDetails">值班班次列表</param>
/// <param name="dutyManId">值班人</param>
/// <returns></returns>
public int CalcCurrentDutyManIndexModule(DateTime planDate, List<RB_Duty_PlanDetails_ViewModel> PlanDetails,int dutyManId)
{
//当前值班人员索引
int currentIndex = 0;
var currentDayNow = Convert.ToDateTime(Common.ConvertHelper.FormatDate(planDate) + " " + DateTime.Now.ToString("HH:mm:ss"));
for (var i = 0; i < PlanDetails.Count; i++)
{
var sStartTime = Convert.ToDateTime(Common.ConvertHelper.FormatDate(planDate) + " " + PlanDetails[i].StartTime);
var sEndTime = Convert.ToDateTime(Common.ConvertHelper.FormatDate(planDate) + " " + PlanDetails[i].EndTime);
if (currentDayNow >= sStartTime && currentDayNow <= sEndTime && PlanDetails[i].DutyMan == dutyManId)
{
currentIndex = i;
}
}
return currentIndex;
}
/// <summary>
/// 获取值班详情
/// </summary>
......
......@@ -39,10 +39,18 @@ WHERE 1=1
{
builder.AppendFormat(@" AND A.{0}={1} ", nameof(RB_Duty_Content_ViewModel.PlanId), query.PlanId);
}
if (!string.IsNullOrEmpty(query.QPlanIds))
{
builder.AppendFormat(@" AND A.{0} IN({1}) ", nameof(RB_Duty_Content_ViewModel.PlanId), query.QPlanIds);
}
if (query.PlanShift > 0)
{
builder.AppendFormat(@" AND A.{0}={1} ", nameof(RB_Duty_Content_ViewModel.PlanShift), query.PlanShift);
}
if (query.PlanType > 0)
{
builder.AppendFormat(@" AND A.{0}={1} ", nameof(RB_Duty_Content_ViewModel.PlanType), query.PlanType);
}
}
return Get<RB_Duty_Content_ViewModel>(builder.ToString()).ToList();
}
......
......@@ -128,6 +128,14 @@ WHERE 1=1 AND A.`Status`=0
{
builder.AppendFormat(@" AND A.{0}={1} ", nameof(RB_Duty_Plan_ViewModel.Id), query.Id);
}
if (!string.IsNullOrEmpty(query.QStartDate))
{
builder.AppendFormat(@" AND A.{0}>='{1}' ", nameof(RB_Duty_Plan_ViewModel.Date), query.QStartDate);
}
if (!string.IsNullOrEmpty(query.QEndDate))
{
builder.AppendFormat(@" AND A.{0}<='{1} 23:59:59' ", nameof(RB_Duty_Plan_ViewModel.Date), query.QEndDate);
}
}
builder.AppendFormat(" GROUP BY A.Id,A.Date,C.SName,A.CreateBy,A.School_Id ");
builder.AppendFormat(" ORDER BY A.Date ASC ");
......
......@@ -229,14 +229,12 @@ namespace Edu.WebApi.Controllers.Duty
return ApiResult.Success(data: model);
}
/// <summary>
/// 获取班次列表
/// 新增修改值班事项
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetSetDutyItemModel()
public ApiResult SetDutyItem()
{
var query = new RB_Duty_Item_ViewModel()
{
......@@ -251,10 +249,6 @@ namespace Edu.WebApi.Controllers.Duty
{
return ApiResult.Failed("请输入值班事项名称");
}
if (string.IsNullOrWhiteSpace(query.Shifts))
{
return ApiResult.Failed("请选择班次");
}
if (!query.ItemType.HasValue || (int)query.ItemType.Value <= 0)
{
return ApiResult.Failed("请选择值班事项类型");
......@@ -263,6 +257,10 @@ namespace Edu.WebApi.Controllers.Duty
{
return ApiResult.Failed("请选择值班事项对应的学校");
}
if (string.IsNullOrWhiteSpace(query.Shifts))
{
return ApiResult.Failed("请选择班次");
}
if (query.Id == 0)
{
query.CreateBy = base.UserInfo.Id;
......@@ -270,12 +268,46 @@ namespace Edu.WebApi.Controllers.Duty
}
query.UpdateBy = base.UserInfo.Id;
query.UpdateTime = System.DateTime.Now;
bool retult = dutyModule.SetDutyItemModule(query);
return retult ? ApiResult.Success("") : ApiResult.Failed("");
}
bool retult = dutyModule.SetDutyItemModel(query);
return retult ? ApiResult.Success("新增/修改值班事项成功") : ApiResult.Failed("新增/修改值班事项失败");
/// <summary>
/// 根据编号获取值班事项
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetDutyItem()
{
var Id = base.ParmJObj.GetInt("Id", 0);
var model = dutyModule.GetDutyItemModule(Id);
var obj = new object();
if (model != null && model.Id > 0)
{
List<string> SchoolList = new List<string>();
List<string> ShiftList = new List<string>();
if (!string.IsNullOrEmpty(model?.ItemSchools))
{
SchoolList = Common.ConvertHelper.StringToFileList(model?.ItemSchools);
}
if (!string.IsNullOrEmpty(model?.Shifts))
{
ShiftList = Common.ConvertHelper.StringToFileList(model?.Shifts);
}
obj = new
{
model.Id,
model?.ItemName,
ItemType = (model?.ItemType ?? 0),
model?.ItemSchools,
SchoolList,
model?.Shifts,
ShiftList,
};
}
return ApiResult.Success(data: obj);
}
/// <summary>
......
......@@ -97,6 +97,8 @@ namespace Edu.WebApi.Controllers.Duty
var query = new RB_Duty_Plan_ViewModel()
{
School_Id = base.ParmJObj.GetInt("School_Id"),
QStartDate=base.ParmJObj.GetStringValue("StartDate"),
QEndDate=base.ParmJObj.GetStringValue("EndDate")
};
query.QDutyMan = base.UserInfo.Id.ToString();
query.Group_Id = base.UserInfo.Group_Id;
......@@ -118,17 +120,7 @@ namespace Edu.WebApi.Controllers.Duty
if (item.PlanDetails != null && item.PlanDetails.Count > 0)
{
//当前值班人员索引
int currentIndex = 0;
var currentDayNow = Convert.ToDateTime(Common.ConvertHelper.FormatDate(item.Date) + " " + DateTime.Now.ToString("HH:mm:ss"));
for (var i=0;i<item.PlanDetails.Count;i++)
{
var sStartTime = Convert.ToDateTime(Common.ConvertHelper.FormatDate(item.Date) + " " + item.PlanDetails[i].StartTime);
var sEndTime = Convert.ToDateTime(Common.ConvertHelper.FormatDate(item.Date) + " " + item.PlanDetails[i].EndTime);
if (currentDayNow >= sStartTime && currentDayNow <= sEndTime && item.PlanDetails[i].DutyMan==base.UserInfo.Id)
{
currentIndex = i;
}
}
int currentIndex = dutyPlanModule.CalcCurrentDutyManIndexModule(item.Date,item.PlanDetails,base.UserInfo.Id);
//上一个班次索引
int previousIndex = currentIndex - 1;
//下一个班次索引
......@@ -147,21 +139,6 @@ namespace Edu.WebApi.Controllers.Duty
nextModel = item.PlanDetails[nextIndex];
}
}
var dutyStartTime = Convert.ToDateTime(Common.ConvertHelper.FormatDate(item.Date) + " " + currentModel.StartTime);
var dutyEndTime = Convert.ToDateTime(Common.ConvertHelper.FormatDate(item.Date) + " " + currentModel.EndTime);
if (DateTime.Now > dutyEndTime)
{
item.DutyStatus = Common.Enum.Duty.DutyStatusEnum.DutyFinished;
}
else if (DateTime.Now >= dutyStartTime && DateTime.Now <= dutyEndTime)
{
item.DutyStatus = Common.Enum.Duty.DutyStatusEnum.DutyIng;
}
else
{
item.DutyStatus = Common.Enum.Duty.DutyStatusEnum.NoStart;
}
result.Add(new
{
item.Id,
......@@ -175,8 +152,8 @@ namespace Edu.WebApi.Controllers.Duty
ReciveMan = nextModel?.DutyManName ?? "",
GiveMan = previousModel?.DutyManName ?? "",
item.CreateByName,
item.DutyStatus,
item.DutyStatusStr,
currentModel.DutyStatus,
currentModel.DutyStatusStr,
});
}
pageModel.Count = rowsCount;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment