/// <summary> /// 产前7天任务 /// </summary> public void CompleteDay7ToBorn(DairyTask task, int cowHouseId, int cowGroupId) { // 更新任务记录,标记完成 UpdateTask(task); // 产生调群任务,进产房 DairyTask groupingTask = new DairyTask(); groupingTask.TaskType = TaskType.GroupingTask; DateTime time = DateTime.Now; groupingTask.ArrivalTime = time; groupingTask.InputTime = time; groupingTask.EarNum = task.EarNum; groupingTask.DeadLine = time.AddDays(1.0); AddTask(groupingTask); // 取回这条任务 DairyTask groupingTaskCopy = GetUnfinishedTasks(UserBLL.Instance.CurrentUser.Pasture.ID).Find(p => p.ArrivalTime == time && p.TaskType == TaskType.GroupingTask); // 关联调群记录,任务单找到如何调群 GroupingRecord groupingRecord = new GroupingRecord(); groupingRecord.EarNum = groupingTaskCopy.EarNum; groupingRecord.TaskID = groupingTaskCopy.ID; CowBLL cowBLL = new CowBLL(); Cow myCow = cowBLL.GetCowInfo(groupingTaskCopy.EarNum); groupingRecord.OriginalGroupID = myCow.GroupID; groupingRecord.OriginalHouseID = myCow.HouseID; groupingRecord.TargetGroupID = cowGroupId; groupingRecord.TargetHouseID = cowHouseId; GroupingRecordBLL gBLL = new GroupingRecordBLL(); gBLL.InsertGroupingRecord(groupingRecord); }
public CowInfo(int earNum) { CowBLL cb = new CowBLL(); this.earNum = earNum; myCow = cb.GetCowInfo(earNum); this.calvingList = CowInfo.GetCowCalvingRecords(earNum); this.dryMilkList = CowInfo.GetDryMilkRecords(earNum); this.parity = this.calvingList.Count; }
/// <summary> /// 在产犊界面调用本方法 /// 产生产后三任务 /// </summary> /// <param name="calving"></param> public void CreateAfterBornTasks(Calving calving) { // 分配兽医,饲养员 CowGroupBLL g = new CowGroupBLL(); CowBLL c = new CowBLL(); Cow cc = c.GetCowInfo(calving.EarNum); CowGroup gg = g.GetCowGroupList(cc.FarmCode).Find(p => p.ID == cc.GroupID); // 产犊界面,输入产犊信息,调用本方法产生3个产后任务和犊牛饲喂任务 DairyTask t1 = new DairyTask(); t1.PastureID = gg.PastureID; t1.EarNum = calving.EarNum; t1.ArrivalTime = calving.Birthday.AddDays(3.0); t1.DeadLine = t1.ArrivalTime.AddDays(1.0); t1.OperatorID = gg.DoctorID; t1.TaskType = TaskType.Day3AfterBornTask; t1.InputTime = DateTime.Now; this.AddTask(t1); DairyTask t2 = new DairyTask(); t2.PastureID = gg.PastureID; t2.EarNum = calving.EarNum; t2.ArrivalTime = calving.Birthday.AddDays(10.0); t2.DeadLine = t2.ArrivalTime.AddDays(1.0); t2.OperatorID = gg.DoctorID; t2.TaskType = TaskType.Day10AfterBornTask; t2.InputTime = DateTime.Now; this.AddTask(t2); DairyTask t3 = new DairyTask(); t3.PastureID = gg.PastureID; t3.EarNum = calving.EarNum; t3.ArrivalTime = calving.Birthday.AddDays(15.0); t3.DeadLine = t3.ArrivalTime.AddDays(1.0); t3.OperatorID = gg.DoctorID; t3.TaskType = TaskType.Day15AfterBornTask; t3.InputTime = DateTime.Now; this.AddTask(t3); return; }
/// <summary> /// 分群任务 /// </summary> public void CompleteGrouping(DairyTask task) { //各种事件触发产生分群要求,产生任务单 //饲养员按要求操作,回填完成时间 task.Status = DairyTaskStatus.Completed; task.CompleteTime = DateTime.Now; task.InputTime = DateTime.Now; UpdateTask(task); //更新牛的牛群号,牛舍号 CowBLL cowBLL = new CowBLL(); Cow myCow = cowBLL.GetCowInfo(task.EarNum); GroupingRecordBLL gBLL = new GroupingRecordBLL(); GroupingRecord record = gBLL.GetGroupingRecordByTaskID(task.ID); myCow.GroupID = record.TargetGroupID; myCow.HouseID = record.TargetHouseID; cowBLL.UpdateCowGroupAndHouse(myCow.EarNum, myCow.GroupID, myCow.HouseID); }
/// <summary> /// 取牧场某牛的饲养员、配种员或兽医的责任人ID /// </summary> /// <param name="pastureID">牧场ID</param> /// <param name="earNum">耳号</param> /// <param name="roleID">角色ID</param> /// <returns></returns> public int AssignTask(int pastureID, int earNum, int roleID) { int userID; CowGroupBLL g = new CowGroupBLL(); CowBLL c = new CowBLL(); Cow cc = c.GetCowInfo(earNum); CowGroup cowGroup = g.GetCowGroupList(pastureID).Find(p => p.ID == cc.GroupID); if (cowGroup != null && cowGroup.InsemOperatorID != 0) { userID = cowGroup.InsemOperatorID; } else { //牛群未分配,则分配给场长 userID = UserBLL.Instance.GetUsers(UserBLL.Instance.CurrentUser.Pasture.ID, Role.FARM_ADMIN_ID)[0].ID; } return(userID); }
/// <summary> /// 取本轮配种记录列表 /// </summary> /// <param name="earNum"></param> /// <returns></returns> public static List <Insemination> GetInseminationListOfCurrentBreedPeriod(int earNum) { InseminationBLL bllInsem = new InseminationBLL(); DateTime latestCalTime = new DateTime(1900, 1, 1); Calving cal = GetLatestCalving(earNum); if (cal != null) { latestCalTime = cal.Birthday; } else { CowBLL cb = new CowBLL(); Cow myCow = cb.GetCowInfo(earNum); latestCalTime = myCow.BirthDate; } List <Insemination> list = bllInsem.GetInseminationList(earNum, latestCalTime); return(list); }
/// <summary> /// 产后10天任务 /// </summary> public void CompleteDay10AfterBorn(DairyTask task, int cowHouseId, int cowGroupId) { //此任务单在,产犊界面/事件中产生,或者流产早产;流产等会取消之前的未完成产前任务单 //更新任务记录,标记完成 task.Status = DairyTaskStatus.Completed; task.CompleteTime = DateTime.Now; UpdateTask(task); //牛调群至,初产牛群或高产牛群 DairyTask groupingTask = new DairyTask(); groupingTask.TaskType = TaskType.GroupingTask; DateTime time = DateTime.Now; groupingTask.ArrivalTime = time; groupingTask.EarNum = task.EarNum; groupingTask.DeadLine = time.AddDays(1.0); AddTask(groupingTask); //取回这条任务 DairyTask groupingTaskCopy = GetUnfinishedTasks(UserBLL.Instance.CurrentUser.Pasture.ID).Find(p => p.ArrivalTime == time && p.TaskType == TaskType.GroupingTask); //关联调群记录,任务单找到如何调群 GroupingRecord groupingRecord = new GroupingRecord(); groupingRecord.EarNum = groupingTaskCopy.EarNum; groupingRecord.TaskID = groupingTaskCopy.ID; CowBLL cowBLL = new CowBLL(); Cow myCow = cowBLL.GetCowInfo(groupingTaskCopy.EarNum); groupingRecord.OriginalGroupID = myCow.GroupID; groupingRecord.OriginalHouseID = myCow.HouseID; groupingRecord.TargetGroupID = cowGroupId; groupingRecord.TargetHouseID = cowHouseId; GroupingRecordBLL gBLL = new GroupingRecordBLL(); gBLL.InsertGroupingRecord(groupingRecord); }