예제 #1
0
        /// <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));
        }
예제 #2
0
        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));
        }
예제 #3
0
        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);
        }
예제 #4
0
        /// <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);
        }
예제 #5
0
        /// <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);
            }
        }
예제 #6
0
        /// <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);
            }
        }
예제 #7
0
        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);
        }
예제 #8
0
        /// <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;
        }
예제 #9
0
        /// <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);
        }
예제 #10
0
        /// <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);
        }
예제 #11
0
 /// <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)));
 }
예제 #12
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);
        }