예제 #1
0
 /// <summary>
 /// 犊牛饲喂任务
 /// </summary>
 public void CompleteCalf(DairyTask task)
 {
     task.Status       = DairyTaskStatus.Completed;
     task.CompleteTime = DateTime.Now;
     task.InputTime    = DateTime.Now;
     UpdateTask(task);
 }
예제 #2
0
        public ActionResult SaveTask(string id)
        {
            try
            {
                Quarantine quarantine       = new Quarantine();
                int        PastureID        = UserBLL.Instance.CurrentUser.Pasture.ID;
                string     QuarantineType   = Request.Form["quarantineType"];
                string     QuarantineDate   = Request.Form["quarantineDate"];
                string     QuarantineMethod = Request.Form["quarantineMethod"];
                string     DoctorID         = Request.Form["doctorID"];
                string     Result           = Request.Form["result"];
                string     EarNum           = Request.Form["DisplayEarNum"];

                quarantine.PastureID        = PastureID;
                quarantine.QuarantineType   = QuarantineType;
                quarantine.QuarantineDate   = Convert.ToDateTime(QuarantineDate);
                quarantine.QuarantineMethod = QuarantineMethod;
                quarantine.DoctorID         = Convert.ToInt32(DoctorID);
                quarantine.Result           = Convert.ToInt32(Result);
                quarantine.EarNum           = CowBLL.ConvertDislayEarNumToEarNum(EarNum, PastureID);

                //增加检疫记录
                bllTask.AddQuarantineRecord(quarantine);

                //更新检疫记录
                DairyTask task = bllTask.GetTaskByID(Convert.ToInt32(id));//To-do please get taskID
                bllTask.CompleteQuarantine(task);

                return(View("~/Views/Task/Index.cshtml"));
            }
            catch (Exception)
            {
                return(View("~/Views/Task/TaskError.cshtml"));
            }
        }
        public ActionResult SaveTask(string id)
        {
            try
            {
                Immune immune = new Immune();

                int    PastureID  = UserBLL.Instance.CurrentUser.Pasture.ID;
                string ImmuneDate = Request.Form["immuneDate"];
                string Vaccine    = Request.Form["immuneType"];
                string EarNum     = Request.Form["DisplayEarNum"];
                string DoctorID   = Request.Form["doctorID"];

                immune.PastureID  = Convert.ToInt32(PastureID);
                immune.ImmuneDate = DateTime.Parse(ImmuneDate);
                immune.Vaccine    = Vaccine;
                immune.EarNum     = CowBLL.ConvertDislayEarNumToEarNum(EarNum, PastureID);
                immune.DoctorID   = Convert.ToInt32(DoctorID);

                //增加一头的免疫记录
                bllTask.AddImmuneRecord(immune);

                //完成免疫任务
                DairyTask task = bllTask.GetTaskByID(Convert.ToInt32(id));//To-do please get taskID
                //task.CompleteTime = DateTime.Now;//fill task data, for this CompleteTime,or use Datetime.Now as default

                bllTask.CompleteImmune(task);
                return(View("~/Views/Task/Index.cshtml"));
            }
            catch (Exception e)
            {
                return(View("~/Views/Task/TaskError.cshtml"));
            }
        }
예제 #4
0
        /// <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 ActionResult SaveTask(string id)
        {
            try
            {
                string startDate      = Request.Form["start"];
                string endDate        = Request.Form["end"];
                string earNum         = Request.Form["DisplayEarNum"];
                string operatorName   = Request.Form["operatorName"];
                string pregnantStatus = Request.Form["pregnantStatus"];

                ReInspection i = new ReInspection();
                i.OperateDate     = DateTime.Parse(endDate);
                i.ReInspectResult = Convert.ToInt32(pregnantStatus);
                i.Operator        = Convert.ToInt32(operatorName);
                i.EarNum          = CowBLL.ConvertDislayEarNumToEarNum(earNum, UserBLL.Instance.CurrentUser.Pasture.ID);

                DairyTask task = bllTask.GetTaskByID(Convert.ToInt32(id));

                // 完成复检任务,同时增加复检信息
                task.CompleteTime = i.OperateDate;
                task.Status       = DairyTaskStatus.Completed;
                task.OperatorID   = i.Operator;
                bllTask.CompleteReInspection(task, i);

                return(View("~/Views/Task/Index.cshtml"));
            }
            catch (Exception ex)
            {
                return(View("~/Views/Task/TaskError.cshtml"));
            }
        }
예제 #6
0
 /// <summary>
 /// 产后3天任务
 /// </summary>
 public void CompleteDay3AfterBorn(DairyTask task, int cowHouseId, int cowGroupId)
 {
     // 此任务单在,产犊界面/事件中产生,或者流产早产;流产等会取消之前的未完成产前任务单
     // 更新任务记录,标记完成
     task.Status       = DairyTaskStatus.Completed;
     task.CompleteTime = DateTime.Now;
     UpdateTask(task);
 }
예제 #7
0
 /// <summary>
 /// 完成检疫任务
 /// </summary>
 public void CompleteQuarantine(DairyTask task)
 {
     //更新任务记录,标记完成
     task.Status       = DairyTaskStatus.Completed;
     task.CompleteTime = DateTime.Now;
     task.InputTime    = DateTime.Now;
     UpdateTask(task);
 }
예제 #8
0
 /// <summary>
 /// 产后15天任务单
 /// </summary>
 public void CompleteDay15AfterBorn(DairyTask task)
 {
     //此任务单在,产犊界面/事件中产生,或者流产早产;流产等会取消之前的未完成产前任务单
     //更新任务记录,标记完成
     task.Status       = DairyTaskStatus.Completed;
     task.CompleteTime = DateTime.Now;
     task.InputTime    = DateTime.Now;
     UpdateTask(task);
 }
예제 #9
0
 /// <summary>
 /// 完成免疫任务
 /// </summary>
 public void CompleteImmune(DairyTask task)
 {
     //更新任务记录,标记完成
     //return dalMedical.CompleteImmune();
     task.Status       = DairyTaskStatus.Completed;
     task.CompleteTime = DateTime.Now;
     task.InputTime    = DateTime.Now;
     UpdateTask(task);
 }
예제 #10
0
        /// <summary>
        /// 更新任务
        /// </summary>
        /// <param name="myTask">DairyTask</param>
        public bool UpdateTask(DairyTask myTask)
        {
            bool    isSuccessful = false;
            TaskDAL dal          = new TaskDAL();
            int     i            = dal.UpdateTask(myTask);

            if (i == 1)
            {
                isSuccessful = true;
            }
            return(isSuccessful);
        }
        public JsonResult LoadTask(string taskID)
        {
            DairyTask task     = bllTask.GetTaskByID(Convert.ToInt32(taskID));
            var       taskData = new
            {
                startTime = task.ArrivalTime.ToString("yyyy-MM-dd"),
                earNum    = CowBLL.ConvertEarNumToDisplayEarNum(task.EarNum),
                op        = task.OperatorID
            };

            return(Json(taskData, JsonRequestBehavior.AllowGet));
        }
예제 #12
0
        public JsonResult LoadTask(string taskID)
        {
            TaskBLL   bll           = new TaskBLL();
            DairyTask v             = bll.GetTaskByID(Convert.ToInt32(taskID));
            string    displayEarNum = CowBLL.ConvertEarNumToDisplayEarNum(v.EarNum);

            return(Json(new
            {
                EarNum = v.EarNum,
                DisplayEarNum = displayEarNum,
                ArrivalTime = v.ArrivalTime.ToString("yyyy-MM-dd"),
                Operator = v.OperatorID
            }, JsonRequestBehavior.AllowGet));
        }
예제 #13
0
        //以下为在各个任务单产生,回填活动,所需要的接口
        /// <summary>
        /// 创建一件任务
        /// </summary>
        /// <param name="myTask">DairyTask</param>
        public bool AddTask(DairyTask myTask)
        {
            bool isSuccessful = false;

            TaskDAL dal = new TaskDAL();
            int     i   = dal.InsertTask(myTask);

            if (i > 0)
            {
                myTask.ID    = i;
                isSuccessful = true;
            }

            return(isSuccessful);
        }
예제 #14
0
 public ActionResult SaveTask()
 {
     try
     {
         TaskBLL   bll = new TaskBLL();
         DairyTask v   = bll.GetTaskByID(Convert.ToInt32(Request.Form["id"]));
         v.ArrivalTime  = DateTime.Parse(Request.Form["start"]);
         v.CompleteTime = DateTime.Parse(Request.Form["end"]);
         v.OperatorID   = Convert.ToInt32(Request.Form["operatorName"]);
         bll.CompleteGrouping(v);
         return(View("~/Views/Task/Index.cshtml"));
     }
     catch (Exception)
     {
         return(View("~/Views/Task/TaskError.cshtml"));
     }
 }
예제 #15
0
        /// <summary>
        /// 妊检复检任务
        /// </summary>
        public void CompleteReInspection(DairyTask task, ReInspection reInspection)
        {
            // 添加复检记录
            ReInspectionBLL rBLL = new ReInspectionBLL();

            reInspection.InseminationID = this.taskDAL.GetInseminationID(reInspection.EarNum);
            rBLL.InsertReInspection(reInspection);

            //更新任务记录,标记完成
            task.Status = DairyTaskStatus.Completed;
            //task.CompleteTime = DateTime.Now;
            task.InputTime = DateTime.Now;

            UpdateTask(task);

            CowBLL cowBLL = new CowBLL();

            if (reInspection.ReInspectResult == 1)
            {
                //复检+
                //生成产前21天任务单
                DairyTask day21ToBornTask = new DairyTask();
                day21ToBornTask.EarNum    = task.EarNum;
                day21ToBornTask.PastureID = task.PastureID;
                //分配兽医

                day21ToBornTask.OperatorID = AssignTask(task.PastureID, task.EarNum, Role.FARM_DOCTOR_ID);

                day21ToBornTask.Status = DairyTaskStatus.Initial;
                float normalCalvingDays = DairyParameterBLL.GetCurrentParameterDictionary(UserBLL.Instance.CurrentUser.Pasture.ID)[FarmInfo.PN_NORMALCALVINGDAYS];
                float reInspectionDays  = DairyParameterBLL.GetCurrentParameterDictionary(UserBLL.Instance.CurrentUser.Pasture.ID)[FarmInfo.PN_DAYSOFREINSEPECTION];
                day21ToBornTask.ArrivalTime = task.ArrivalTime.AddDays(-reInspectionDays + normalCalvingDays - 14);//NormalCalvingDays是进产房天数
                day21ToBornTask.DeadLine    = day21ToBornTask.ArrivalTime.AddDays(1.0);
                day21ToBornTask.TaskType    = TaskType.Day21ToBornTask;
                day21ToBornTask.InputTime   = DateTime.Now;
                AddTask(day21ToBornTask);
                // 更新牛繁殖状态
                cowBLL.UpdateCowBreedStatus(task.EarNum, "复检+");
            }
            else
            {
                //更新牛繁殖状态
                cowBLL.UpdateCowBreedStatus(task.EarNum, "复检-");
            }
        }
예제 #16
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;
        }
        public ActionResult SaveTask(string id)
        {
            try
            {
                string displayEarNum = Request.Form["DisplayEarNum"];
                string startDate     = Request.Form["start"];
                string endDate       = Request.Form["end"];
                string operatorID    = Request.Form["operatorName"]; //@德华 怀疑有错
                string knownWay      = Request.Form["knownWay"];
                string semenNum      = Request.Form["semNum"];
                string semenCount    = Request.Form["semCount"];
                string desc          = Request.Form["description"];

                Insemination i = new Insemination();
                i.EstrusDate      = DateTime.Parse(startDate);
                i.OperateDate     = DateTime.Parse(endDate);
                i.EarNum          = CowBLL.ConvertDislayEarNumToEarNum(displayEarNum, UserBLL.Instance.CurrentUser.Pasture.ID);
                i.operatorID      = Convert.ToInt32(operatorID);
                i.EstrusFindType  = Convert.ToInt32(knownWay);
                i.SemenNum        = semenNum;
                i.InseminationNum = Convert.ToInt32(semenCount);
                i.Description     = desc;

                DairyTask task = new DairyTask();
                task.TaskType     = TaskType.InseminationTask;
                task.EarNum       = CowBLL.ConvertDislayEarNumToEarNum(displayEarNum, UserBLL.Instance.CurrentUser.Pasture.ID);
                task.ArrivalTime  = DateTime.Parse(startDate);
                task.CompleteTime = DateTime.Parse(endDate);
                task.DeadLine     = DateTime.Parse(endDate);
                task.RoleID       = UserBLL.Instance.CurrentUser.Role.ID;
                task.PastureID    = UserBLL.Instance.CurrentUser.Pasture.ID;
                task.OperatorID   = Convert.ToInt32(operatorID);

                bllTask.CompleteInsemination(task, i);

                return(View("~/Views/Task/Index.cshtml"));
            }
            catch (Exception)
            {
                return(View("~/Views/Task/TaskError.cshtml"));
            }
        }
예제 #18
0
        /// <summary>
        /// 点击[繁殖-发情配种],增加发情/配种任务
        /// </summary>
        public void CompleteInsemination(DairyTask task, Insemination insemination)
        {
            CowInfo cow = new CowInfo(insemination.EarNum);

            // 添加任务记录,添加即已完成 Todo
            task.Status    = DairyTaskStatus.Completed;
            task.InputTime = DateTime.Now;
            taskDAL.InsertTask(task);

            // 删除无效的妊检任务单
            RemovePreviousInspectionTasks(insemination.EarNum, true);
            RemovePreviousInspectionTasks(insemination.EarNum, false);

            // 产生新妊检任务单
            DairyTask initialInspectionTask = new DairyTask();

            initialInspectionTask.TaskType    = TaskType.InitialInspectionTask;
            initialInspectionTask.Status      = DairyTaskStatus.Initial;
            initialInspectionTask.ArrivalTime = task.CompleteTime.AddDays(DairyParameterBLL.GetCurrentParameterDictionary(cow.FarmCode)[FarmInfo.PN_DAYSOFINITIALINSPECTION]);

            // 3 days to complete task
            initialInspectionTask.DeadLine = initialInspectionTask.ArrivalTime.AddDays(3.0);
            initialInspectionTask.EarNum   = insemination.EarNum;

            // 分配配种员
            initialInspectionTask.OperatorID = AssignTask(task.PastureID, task.EarNum, Role.FARM_INSEMINATOR_ID);

            initialInspectionTask.RoleID    = task.RoleID;
            initialInspectionTask.PastureID = task.PastureID;
            initialInspectionTask.InputTime = DateTime.Now;
            taskDAL.InsertTask(initialInspectionTask);

            // 添加配种记录
            InseminationBLL insemBLL = new InseminationBLL();

            insemBLL.InsertInseminationInfo(insemination);

            // 更新牛繁殖状态
            CowBLL cowBLL = new CowBLL();

            cowBLL.UpdateCowBreedStatus(insemination.EarNum, "已配未检");
        }
예제 #19
0
 public ActionResult SaveTask()
 {
     try
     {
         TaskBLL   bll = new TaskBLL();
         DairyTask v   = bll.GetTaskByID(Convert.ToInt32(Request.Form["id"]));
         v.ArrivalTime  = DateTime.Parse(Request.Form["start"]);
         v.CompleteTime = DateTime.Parse(Request.Form["end"]);
         v.OperatorID   = Convert.ToInt32(Request.Form["operatorName"]);
         int house = Convert.ToInt32(Request.Form["house"]);
         int group = Convert.ToInt32(Request.Form["group"]);
         v.Status = DairyTaskStatus.Completed;
         bll.CompleteDay7ToBorn(v, house, group);
         return(View("~/Views/Task/Index.cshtml"));
     }
     catch (Exception ex)
     {
         return(View("~/Views/Task/TaskError.cshtml"));
     }
 }
        public JsonResult LoadTask(string taskID)
        {
            TaskBLL   bllTask = new TaskBLL();
            DairyTask task    = bllTask.GetTaskByID(Convert.ToInt32(taskID));

            //获得对应牛群的兽医
            Cow      cow      = bllCow.GetCowInfo(task.EarNum);
            CowGroup cowGroup = bllCowGroup.GetCowGroupInfo(cow.GroupID);
            int      doctorID = cowGroup.DoctorID;
            User     user     = bllUser.GetDefaultDoctor(doctorID);

            var taskData = new
            {
                doctor   = user.Role.Name,
                doctorID = doctorID,
                earNum   = CowBLL.ConvertEarNumToDisplayEarNum(task.EarNum)
            };

            return(Json(taskData, JsonRequestBehavior.AllowGet));
        }
예제 #21
0
        /// <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);
        }
예제 #22
0
        /// <summary>
        /// 妊检初检任务
        /// </summary>
        public void CompleteInitialInspection(DairyTask task, InitialInspection initialInspetion)
        {
            //添加初检记录
            InitialInspectionBLL iBLL = new InitialInspectionBLL();

            initialInspetion.InseminationID = this.taskDAL.GetInseminationID(initialInspetion.EarNum);
            iBLL.InsertInitialInspection(initialInspetion);

            // 更新初检任务记录
            UpdateTask(task);

            CowBLL cowBLL = new CowBLL();

            if (initialInspetion.InspectResult == 1)
            {
                //初检+
                //生成新复检任务单
                DairyTask reinspectionTask = new DairyTask();
                reinspectionTask.EarNum    = task.EarNum;
                reinspectionTask.PastureID = task.PastureID;
                //分配配种员
                reinspectionTask.OperatorID = task.OperatorID;//复检和初检同一人

                reinspectionTask.Status = DairyTaskStatus.Initial;
                float initialInspectionDays = DairyParameterBLL.GetCurrentParameterDictionary(UserBLL.Instance.CurrentUser.Pasture.ID)[FarmInfo.PN_DAYSOFINITIALINSPECTION];
                float reInspectionDays      = DairyParameterBLL.GetCurrentParameterDictionary(UserBLL.Instance.CurrentUser.Pasture.ID)[FarmInfo.PN_DAYSOFREINSEPECTION];
                reinspectionTask.ArrivalTime = task.ArrivalTime.AddDays(reInspectionDays - initialInspectionDays);
                reinspectionTask.DeadLine    = reinspectionTask.ArrivalTime.AddDays(3.0);
                reinspectionTask.TaskType    = TaskType.ReInspectionTask;
                reinspectionTask.InputTime   = DateTime.Now;
                AddTask(reinspectionTask);
                //更新牛繁殖状态
                cowBLL.UpdateCowBreedStatus(task.EarNum, "初检+");
            }
            else
            {
                //更新牛繁殖状态
                cowBLL.UpdateCowBreedStatus(task.EarNum, "初检-");
            }
        }
예제 #23
0
        /// <summary>
        /// 插入转群任务
        /// </summary>
        /// <returns></returns>
        public JsonResult InsertChangeGroupTask()
        {
            bool    bResult    = false;
            int     earNum     = CowBLL.ConvertDislayEarNumToEarNum(Request["DisplayEarNum"].ToString(), UserBLL.Instance.CurrentUser.Pasture.ID);
            int     pastureID  = UserBLL.Instance.CurrentUser.Pasture.ID;
            TaskBLL bllTask    = new TaskBLL();
            int     operatorID = bllTask.AssignTask(pastureID, earNum, Role.FARM_FEEDER_ID);

            if (earNum != 0)
            {
                DairyTask t = new DairyTask
                {
                    EarNum      = earNum,
                    TaskType    = TaskType.GroupingTask,
                    Status      = DairyTaskStatus.Initial,
                    PastureID   = pastureID,
                    OperatorID  = operatorID,
                    ArrivalTime = DateTime.Now, //转群当天要做
                    InputTime   = DateTime.Now,
                    DeadLine    = DateTime.Now.AddDays(15)
                };

                bResult = bllTask.AddTask(t);

                GroupingRecord gRecord = new GroupingRecord
                {
                    TaskID          = t.ID,
                    EarNum          = t.EarNum,
                    TargetGroupID   = Convert.ToInt32(Request["TargetGroupID"]),
                    TargetHouseID   = Convert.ToInt32(Request["TargetHouseID"]),
                    OriginalGroupID = Convert.ToInt32(Request["OriginalGroupID"]),
                    OriginalHouseID = Convert.ToInt32(Request["OriginalHouseID"])
                };

                GroupingRecordBLL bllGroupingRecord = new GroupingRecordBLL();
                bllGroupingRecord.InsertGroupingRecord(gRecord);
            }

            return(Json(bResult, JsonRequestBehavior.AllowGet));
        }
예제 #24
0
        /// <summary>
        /// 产前21天任务
        /// </summary>
        public void CompleteDay21ToBorn(DairyTask task)
        {
            // 更新任务记录,标记完成
            UpdateTask(task);

            // 生成产前7天任务单
            DairyTask day7ToBornTask = new DairyTask();

            day7ToBornTask.EarNum    = task.EarNum;
            day7ToBornTask.PastureID = task.PastureID;
            // 分配兽医
            day7ToBornTask.OperatorID = task.OperatorID;//兽医不变

            day7ToBornTask.Status = DairyTaskStatus.Initial;
            float initialInspectionDays = DairyParameterBLL.GetCurrentParameterDictionary(UserBLL.Instance.CurrentUser.Pasture.ID)[FarmInfo.PN_DAYSOFINITIALINSPECTION];
            float reInspectionDays      = DairyParameterBLL.GetCurrentParameterDictionary(UserBLL.Instance.CurrentUser.Pasture.ID)[FarmInfo.PN_DAYSOFREINSEPECTION];

            day7ToBornTask.ArrivalTime = task.ArrivalTime.AddDays(14.0);
            day7ToBornTask.DeadLine    = day7ToBornTask.ArrivalTime.AddDays(3.0);
            day7ToBornTask.TaskType    = TaskType.Day7ToBornTask;
            day7ToBornTask.InputTime   = DateTime.Now;
            AddTask(day7ToBornTask);
        }
예제 #25
0
        /// <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);
        }
예제 #26
0
        /// <summary>
        /// 更新任务
        /// </summary>
        /// <param name="myTask"></param>
        /// <returns></returns>
        public int UpdateTask(DairyTask myTask)
        {
            StringBuilder sqlString = new StringBuilder();
            int           taskStatus;

            switch (myTask.Status)
            {
            case DairyTaskStatus.Initial:
                taskStatus = 0;
                break;

            case DairyTaskStatus.Completed:
                taskStatus = 1;
                break;

            default:
                taskStatus = 999;    //unknow status
                break;
            }
            sqlString.Append(@"Update [Task] SET");

            if (myTask.CompleteTime != null)
            {
                sqlString.Append(" [FinishedTime] = '" + myTask.CompleteTime + "',");
            }
            if (myTask.InputTime != null)
            {
                sqlString.Append("[InputTime] = '" + myTask.InputTime + "',");
            }
            sqlString.Append(" [Status] = " + taskStatus);
            sqlString.Append(" WHERE [ID] = " + myTask.ID);



            return(dataProvider1mutong.ExecuteNonQuery(sqlString.ToString(), CommandType.Text));
        }
예제 #27
0
        /// <summary>
        /// Insert task
        /// </summary>
        /// <param name="myTask"></param>
        /// <returns></returns>
        public int InsertTask(DairyTask myTask)
        {
            StringBuilder sqlString = new StringBuilder();
            int           typeValue;
            int           taskStatus;

            switch (myTask.Status)
            {
            case DairyTaskStatus.Initial:
                taskStatus = 0;
                break;

            case DairyTaskStatus.Completed:
                taskStatus = 1;
                break;

            default:
                taskStatus = 999;    //unknow status
                break;
            }
            switch (myTask.TaskType)
            {
            case TaskType.InseminationTask:
                //建立即完成,配种
                typeValue = 0;
                break;

            case TaskType.InitialInspectionTask:
                //配种后产生
                typeValue = 1;
                break;

            case TaskType.ReInspectionTask:
                typeValue = 2;
                break;

            case TaskType.Day21ToBornTask:
                typeValue = 3;
                break;

            case TaskType.Day7ToBornTask:
                typeValue = 4;
                break;

            case TaskType.Day3AfterBornTask:
                typeValue = 5;
                break;

            case TaskType.Day10AfterBornTask:
                typeValue = 6;
                break;

            case TaskType.Day15AfterBornTask:
                typeValue = 7;
                break;

            case TaskType.ImmuneTask:
                myTask.EarNum = 0;    //牛耳号无意义
                typeValue     = 8;
                break;

            case TaskType.QuarantineTask:
                myTask.EarNum = 0;    //牛耳号无意义
                typeValue     = 9;
                break;

            case TaskType.GroupingTask:
                typeValue = 10;
                break;

            case TaskType.CalfTask:
                typeValue = 11;
                break;

            default:
                typeValue = 999;     //unknow task
                break;
            }
            if (myTask.TaskType == TaskType.InseminationTask)
            {
                sqlString.Append(@"insert into [Task] 
                          (TaskType,OperatorID,EarNum,ArrivalTime,DeadLine,FinishedTime,[Status],InputTime,RoleID,PastureID) 
                                                    values (
                                    '" + typeValue + "',"
                                 + myTask.OperatorID + ",'"
                                 + myTask.EarNum + "','"
                                 + myTask.ArrivalTime + "','"
                                 + myTask.DeadLine + "','"
                                 + myTask.CompleteTime + "',"
                                 + taskStatus + ",'"
                                 + myTask.InputTime + "',"
                                 + myTask.RoleID + ","
                                 + myTask.PastureID + "); select @@identity;");
            }
            else
            {
                sqlString.Append(@"insert into [Task] 
                          (TaskType,OperatorID,EarNum,ArrivalTime,DeadLine,[Status],InputTime,RoleID,PastureID) 
                                                    values (
                                    '" + typeValue + "',"
                                 + myTask.OperatorID + ",'"
                                 + myTask.EarNum + "','"
                                 + myTask.ArrivalTime + "','"
                                 + myTask.DeadLine + "',"
                                 + taskStatus + ",'"
                                 + myTask.InputTime + "',"
                                 + myTask.RoleID + ","
                                 + myTask.PastureID + "); select @@identity;");
            }


            object taskId = dataProvider1mutong.ExecuteScalar(sqlString.ToString(), CommandType.Text);

            return(Convert.ToInt32(taskId));
        }
예제 #28
0
        public JsonResult InGroup()
        {
            Cow myCow = new Cow();

            myCow.DisplayEarNum = Request.Form["displayEarNum"].ToString();
            myCow.Gender        = Request.Form["sex"].ToString();
            myCow.BirthDate     = Convert.ToDateTime(Request.Form["birthDate"]);
            myCow.Color         = Request.Form["color"].ToString();
            myCow.GroupID       = Convert.ToInt32(Request.Form["group"]);
            myCow.HouseID       = Convert.ToInt32(Request.Form["house"]);
            myCow.FarmCode      = UserBLL.Instance.CurrentUser.Pasture.ID;
            myCow.FatherID      = Request.Form["fatherSemen"].ToString();
            myCow.MotherID      = Request.Form["motherDisplayEarNum"].ToString();
            myCow.IsIll         = false;
            myCow.IsStray       = false;
            myCow.Status        = Request.Form["breedStatus"].ToString();
            //----------------------Modify By LJW-------------------//
            if (Request.Form["PedometerID"] != null && Request.Form["PedometerID"].ToString() != "")
            {
                myCow.Pedometer = Convert.ToInt32(Request.Form["PedometerID"]);
            }
            //----------------------Modify By LJW-------------------//
            CowBLL cowBLL = new CowBLL();

            //插入牛基本信息
            cowBLL.InsertCow(myCow);


            //取回牛,主要取得ID
            Cow newCow = cowBLL.GetCowInfo(myCow.FarmCode, myCow.DisplayEarNum);

            //如为产后小犊牛,生成犊牛饲喂单(10天之内,最好3天之内)
            double days = DateTime.Now.Date.Subtract(myCow.BirthDate).TotalDays;

            if (days <= 10.0)
            {
                TaskBLL   tBLL = new TaskBLL();
                DairyTask t    = new DairyTask();
                t.ArrivalTime = DateTime.Now;
                t.DeadLine    = DateTime.Now.AddDays(45.0);
                t.Status      = DairyTaskStatus.Initial;
                t.TaskType    = TaskType.CalfTask;
                t.EarNum      = newCow.EarNum;
                tBLL.AddTask(t);
            }

            if (newCow.Status.Equals("已配未检") || newCow.Status.Equals("初检+") || newCow.Status.Equals("复检+"))
            {
                InseminationBLL insemBLL = new InseminationBLL();
                DateTime        t        = Convert.ToDateTime(Request.Form["inseminationDate"]);
                insemBLL.InsertFakeInsemination(newCow.EarNum, t);
            }
            int parity = Convert.ToInt32(Request.Form["parityNumber"]);

            if (parity > 0)
            {
                DateTime   t          = Convert.ToDateTime(Request.Form["calvingDate"]);
                CalvingBLL calvingBLL = new CalvingBLL();
                //插入假产犊记录
                calvingBLL.InsertFakeCalvings(newCow.EarNum, t, parity);
            }

            return(Json(new { Result = 1 }));
        }
예제 #29
0
        /// <summary>
        /// 封装任务项
        /// </summary>
        /// <param name="row">数据行</param>
        /// <returns>任务</returns>
        public DairyTask WrapTaskItem(DataRow row)
        {
            DairyTask t = new DairyTask();

            if (row != null)
            {
                t.ID          = Convert.ToInt32(row["ID"]);
                t.ArrivalTime = Convert.ToDateTime(row["StartTime"]);
                t.DeadLine    = Convert.ToDateTime(row["DeadLine"]);
                switch (Convert.ToInt32(row["TaskStatus"]))
                {
                case 0:
                    t.Status = DairyTaskStatus.Initial;
                    break;

                case 1:
                    t.Status = DairyTaskStatus.Completed;
                    break;

                default:
                    break;
                }

                int taskTypeNum = Convert.ToInt32(row["TaskType"]);
                switch (taskTypeNum)
                {
                case 0:
                    t.TaskType = TaskType.InseminationTask;
                    break;

                case 1:
                    t.TaskType = TaskType.InitialInspectionTask;
                    break;

                case 2:
                    t.TaskType = TaskType.ReInspectionTask;
                    break;

                case 3:
                    t.TaskType = TaskType.Day21ToBornTask;
                    break;

                case 4:
                    t.TaskType = TaskType.Day7ToBornTask;
                    break;

                case 5:
                    t.TaskType = TaskType.Day3AfterBornTask;
                    break;

                case 6:
                    t.TaskType = TaskType.Day10AfterBornTask;
                    break;

                case 7:
                    t.TaskType = TaskType.Day15AfterBornTask;
                    break;

                case 8:
                    t.TaskType = TaskType.ImmuneTask;
                    break;

                case 9:
                    t.TaskType = TaskType.QuarantineTask;
                    break;

                case 10:
                    t.TaskType = TaskType.GroupingTask;
                    break;

                case 11:
                    t.TaskType = TaskType.CalfTask;
                    break;

                default:
                    break;
                }
                if (row["RoleID"] != DBNull.Value)
                {
                    t.RoleID = Convert.ToInt32(row["RoleID"]);
                }
                if (row["OperatorID"] != DBNull.Value)
                {
                    t.OperatorID = Convert.ToInt32(row["OperatorID"]);
                }
                if (row["FinishedTime"] != DBNull.Value)
                {
                    t.CompleteTime = Convert.ToDateTime(row["FinishedTime"]);
                }
                if (row["InputTime"] != DBNull.Value)
                {
                    t.InputTime = Convert.ToDateTime(row["InputTime"]);
                }
                if (row["EarNum"] != DBNull.Value)
                {
                    t.EarNum        = Convert.ToInt32(row["EarNum"]);
                    t.DisplayEarNum = CowBLL.ConvertEarNumToDisplayEarNum(t.EarNum);
                }
                if (row["PastureID"] != DBNull.Value)
                {
                    t.PastureID = Convert.ToInt32(row["PastureID"]);
                }
            }
            return(t);
        }