/// <summary> /// 插入产犊记录 /// </summary> /// <param name="c"></param> /// <returns></returns> public static int InsertCalvingRecord(Calving c) { int birthType = 0, inParityCount = 0; switch (c.BirthType) { case BirthType.Normal: birthType = 0; break; case BirthType.Miscarry: birthType = 2; break; case BirthType.PrematureBirth: birthType = 1; break; default: break; } if (c.InParityCount) { inParityCount = 1; } return(calvingDAL.InsertCalvingRecord(c.EarNum, c.Birthday, birthType, c.Difficulty, c.PositionOfFetus, c.FatherSememNum, c.OperatorID, c.Comment, c.NumberOfMale, c.NumberOfFemale, inParityCount)); }
public JsonResult InsertCalving() { Calving c = new Calving(); string[] birthDate = Request.Form["Birthday"].Split('-'); string[] birthTime = Request.Form["BirthTime"].Split(':'); c.Birthday = new DateTime(Convert.ToInt32(birthDate[0]), Convert.ToInt32(birthDate[1]), Convert.ToInt32(birthDate[2]), Convert.ToInt32(birthTime[0]), Convert.ToInt32(birthTime[1]), Convert.ToInt32(birthTime[2])); c.EarNum = CowBLL.ConvertDislayEarNumToEarNum(Request.Form["EarNum"], UserBLL.Instance.CurrentUser.Pasture.ID); c.BirthType = (BirthType)Convert.ToInt32(Request.Form["BirthType"]); c.Difficulty = Request.Form["Difficulty"]; c.PositionOfFetus = Request.Form["PositionOfFetus"]; c.OperatorName = Request.Form["OperatorName"]; c.NumberOfMale = Convert.ToInt32(Request.Form["NumberOfMale"]); c.NumberOfFemale = Convert.ToInt32(Request.Form["NumberOfFemale"]); c.Comment = Request.Form["Comment"]; int result = bllCalving.InsertCalving(c); //产生产后任务 TaskBLL tBLL = new TaskBLL(); tBLL.CreateAfterBornTasks(c); //如有正常母犊,重定向到犊牛入群 return(Json(new { result = result }, JsonRequestBehavior.AllowGet)); }
public static string GetCowMilkType(int earNum) { string milkType; Calving cal = GetLatestCalving(earNum); DryMilk dry = GetLatestDryMilk(earNum); if (cal == null) { //未产过犊 milkType = "非经产牛"; } else { if (dry == null) { milkType = "泌乳牛"; } else { if (cal.Birthday.CompareTo(dry.DryDate) < 0) { //干奶在产犊后 milkType = "干奶牛"; } else { //干奶在产犊前,是上一轮干奶 milkType = "泌乳牛"; } } } return(milkType); }
/// <summary> /// 最近产犊日期,非经产牛返回出生日期 /// </summary> public DateTime GetLatestCalvingDate() { DateTime t = DateTime.MinValue; Calving cal = GetLatestCalving(this.earNum); if (cal != null) { t = cal.Birthday; } else { t = this.BirthDate; } return(t); }
/// <summary> /// 获取产犊头胎记录 /// </summary> /// <param name="earNum">牛耳号</param> /// <returns>产犊记录,未产过犊则返回null</returns> public static Calving GetFirstCalving(int earNum) { Calving cal = new Calving(); List <Calving> calvingList = GetCowCalvingRecords(earNum); if (calvingList.Count == 0) { //未产过犊 return(null); } else { cal = calvingList[calvingList.Count - 1]; return(cal); } }
/// <summary> /// 获取最新产犊记录,没有返回null /// </summary> /// <param name="earNum">牛耳号</param> /// <returns>产犊记录,未产过犊则返回null</returns> public static Calving GetLatestCalving(int earNum) { Calving cal = new Calving(); List <Calving> calvingList = GetCowCalvingRecords(earNum); if (calvingList.Count == 0) { //未产过犊 return(null); } else { //该list已经是按产犊时间倒序。 cal = calvingList[0]; return(cal); } }
public List <Insemination> GetInseminationListOfCurrentBreedPeriod() { InseminationBLL bllInsem = new InseminationBLL(); DateTime latestCalTime = new DateTime(1900, 1, 1); Calving cal = GetLatestCalving(this.earNum); if (cal != null) { latestCalTime = cal.Birthday; } else { latestCalTime = this.BirthDate; } List <Insemination> list = bllInsem.GetInseminationList(this.earNum, latestCalTime); return(list); }
/// <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> /// <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> /// 获取单个牛(经产牛)的泌乳天数 /// </summary> /// <param name="earNum">牛耳号</param> /// <returns>泌乳天数,非泌乳牛,返回0;泌乳牛,产犊到当天;干奶牛,到停奶日。</returns> public static int GetCowDaysInMilk(int earNum) { int dayInMilk = 0; //非泌乳牛,返回0; //泌乳牛,产犊到当天;干奶牛,到停奶日; Calving cal = GetLatestCalving(earNum); DryMilk dry = GetLatestDryMilk(earNum); if (cal == null) { //未产过犊 dayInMilk = 0; } else { TimeSpan span = new TimeSpan(); if (dry == null) { //没有干奶,从产犊到现在 span = DateTime.Now.Date.Subtract(cal.Birthday.Date); dayInMilk = Convert.ToInt32(span.TotalDays); } else { if (cal.Birthday.CompareTo(dry.DryDate) < 0) { //干奶在产犊后 span = dry.DryDate.Date.Subtract(cal.Birthday.Date); dayInMilk = Convert.ToInt32(span.TotalDays); } else { //干奶在产犊前,是上一轮干奶 span = DateTime.Now.Date.Subtract(dry.DryDate.Date); dayInMilk = Convert.ToInt32(span.TotalDays); } } } return(dayInMilk); }
/// <summary> /// 出入产犊记录,包含全部信息。 /// </summary> /// <param name="c"></param> /// <returns></returns> public int InsertCalving(Calving c) { return(calvingDAL.InsertCalvingRecord(c.EarNum, c.Birthday, Convert.ToInt32(c.BirthType), c.Difficulty, c.PositionOfFetus, c.FatherSememNum, c.OperatorID, c.Comment, c.NumberOfMale, c.NumberOfFemale, (c.InParityCount?1:0))); }
/// <summary> /// 处理产犊记录行 /// </summary> /// <param name="calvingRow">数据行</param> /// <returns>产犊记录</returns> public static Calving WrapCalvingItem(DataRow calvingRow) { Calving myCalving = new Calving(); if (calvingRow != null) { myCalving.EarNum = Convert.ToInt32(calvingRow["EarNum"]); //cal.ChildEarNum = Convert.ToInt32(calvingRow["ChildEarNum"]); myCalving.Birthday = Convert.ToDateTime(calvingRow["Birthday"]); myCalving.FatherSememNum = (calvingRow["FatherSemenNum"]).ToString(); myCalving.OperatorID = Convert.ToInt32(calvingRow["OperatorID"]); myCalving.OperatorName = calvingRow["OperatorName"].ToString(); int bType = Convert.ToInt32(calvingRow["BirthType"]); switch (bType) { case 0: myCalving.BirthType = BirthType.Normal; break; case 1: myCalving.BirthType = BirthType.PrematureBirth; break; case 2: myCalving.BirthType = BirthType.Miscarry; break; default: break; } myCalving.NumberOfMale = calvingRow["NumberOfMale"] == DBNull.Value ? 0 : Convert.ToInt32(calvingRow["NumberOfMale"]); myCalving.NumberOfFemale = calvingRow["NumberOfFemale"] == DBNull.Value ? 0 : Convert.ToInt32(calvingRow["NumberOfFemale"]); if (calvingRow["Difficulty"] != DBNull.Value) { myCalving.Difficulty = calvingRow["Difficulty"].ToString(); } else { myCalving.Difficulty = String.Empty; } if (calvingRow["PositionOfFetus"] != DBNull.Value) { myCalving.PositionOfFetus = calvingRow["PositionOfFetus"].ToString(); } else { myCalving.PositionOfFetus = String.Empty; } int inCount = Convert.ToInt32(calvingRow["InParityCount"]); switch (inCount) { case 0: myCalving.InParityCount = false; break; case 1: myCalving.InParityCount = true; break; default: break; } if (calvingRow["Comment"] != DBNull.Value) { myCalving.Comment = calvingRow["Comment"].ToString(); } else { myCalving.Comment = String.Empty; } } return(myCalving); }