private bool CheckDuiplicate(MrpExWorkHour mrpExWorkHour)
        {
            if (mrpExWorkHour.WindowTime < mrpExWorkHour.StartTime)
            {
                SaveErrorMessage(string.Format(Resources.EXT.ControllerLan.Con_EndTimeNeedToBeGreaterStartToTime, mrpExWorkHour.StartTime, mrpExWorkHour.WindowTime));
                return true;
            }
            //check 同一生产线是否有重叠
            string hql = @" from MrpExWorkHour as u where u.Flow = ? and StartTime>? and WindowTime<? ";
            var list = this.genericMgr.FindAll<MrpExWorkHour>(hql,
                new object[] { mrpExWorkHour.Flow, mrpExWorkHour.StartTime.AddDays(-7), mrpExWorkHour.WindowTime.AddDays(7) })
                ?? new List<MrpExWorkHour>();
            bool isDuiplicate = false;
            foreach (var wh in list)
            {
                if (wh.Id == mrpExWorkHour.Id)
                {
                    continue;
                }
                if (mrpExWorkHour.StartTime < wh.WindowTime && mrpExWorkHour.StartTime >= wh.StartTime)
                {
                    SaveErrorMessage(Resources.SYS.ErrorMessage.Errors_Existing_Code, mrpExWorkHour.Flow);
                    isDuiplicate = true;
                    SaveErrorMessage(string.Format(Resources.EXT.ControllerLan.Con_StartTimeAlreadyIncluded, wh.Id, wh.StartTime, wh.WindowTime));
                    break;
                }
                if (mrpExWorkHour.WindowTime <= wh.WindowTime && mrpExWorkHour.WindowTime > wh.StartTime)
                {
                    isDuiplicate = true;
                    SaveErrorMessage(string.Format(Resources.EXT.ControllerLan.Con_FinishTimeAlreadyIncluded, wh.Id, wh.StartTime, wh.WindowTime));
                    break;
                }

                if (mrpExWorkHour.StartTime <= wh.StartTime && mrpExWorkHour.WindowTime >= wh.WindowTime)
                {
                    isDuiplicate = true;
                    SaveErrorMessage(string.Format(Resources.EXT.ControllerLan.Con_IdStartToTimeAndEndTimeContainCurrentTime, wh.Id, wh.StartTime, wh.WindowTime));
                    break;
                }

            }
            //todo 校验给时间段是否生产了此断面
            return isDuiplicate;
        }
 public ActionResult Edit(MrpExWorkHour mrpExWorkHour)
 {
     if (ModelState.IsValid)
     {
         bool isDuiplicate = CheckDuiplicate(mrpExWorkHour);
         if (!isDuiplicate)
         {
             this.genericMgr.UpdateWithTrim(mrpExWorkHour);
             SaveSuccessMessage(Resources.MRP.MrpExWorkHour.MrpExWorkHour_Updated);
         }
     }
     return View(mrpExWorkHour);
 }
        public ActionResult New(MrpExWorkHour mrpExWorkHour)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    bool isDuiplicate = CheckDuiplicate(mrpExWorkHour);

                    if (!isDuiplicate)
                    {
                        mrpExWorkHour.ItemDescription = itemMgr.GetCacheItem(mrpExWorkHour.Item).Description;
                        this.genericMgr.CreateWithTrim(mrpExWorkHour);
                        SaveSuccessMessage(Resources.MRP.MrpExWorkHour.MrpExWorkHour_Added);
                        return RedirectToAction("Edit/" + mrpExWorkHour.Id);
                    }
                }
                catch (Exception ex)
                {
                    SaveErrorMessage(Resources.EXT.ControllerLan.Con_NewAddedUnsuccessfully_1, ex.Message);
                }
            }

            return View(mrpExWorkHour);
        }