/// <summary>
 /// 根据任务id和猪栏id号查找任务猪栏的
 /// </summary>
 /// <param name="taskId">任务id号</param>
 /// <param name="pigstyId"></param>
 /// <returns></returns>
 public task_pigsty GetTaskPigstyId(long taskId, long pigstyId)
 {
     var taskPigstyService = new TaskPigstyService();
     List<task_pigsty> taskPigsties =
         taskPigstyService.FindByTaskId(taskId).Where(m => m.PigstyId == pigstyId).ToList();
     if (taskPigsties.Count > 0) return taskPigsties[0];
     return null;
 }
 /// <summary>
 ///     返回所选猪栏的容量总数
 /// </summary>
 /// <param name="taskId">任务id号</param>
 /// <param name="pigHouseId">猪舍id号</param>
 /// <returns></returns>
 public int? GetPigstyCapacitySum(long taskId, long pigHouseId)
 {
     var taskPigsty = new TaskPigstyService();
     List<task_pigsty> taskPigsties = taskPigsty.FindByTaskId(taskId);
     return
         taskPigsties.Where(feedTaskPigsty => feedTaskPigsty.pigsty.PigHouseId.Equals(pigHouseId)).Aggregate
             <task_pigsty, int?>(0, (current, feedTaskPigsty) => current + feedTaskPigsty.pigsty.Capacity);
 }
 /// <summary>
 ///     获取以,隔开的猪栏编号的字符串
 /// </summary>
 /// <param name="taskId">任务id号</param>
 /// <param name="pigHouseId">猪舍id号</param>
 /// <returns></returns>
 public string GetPigstyNums(long taskId, long pigHouseId)
 {
     var taskPigsty = new TaskPigstyService();
     List<task_pigsty> taskPigsties = taskPigsty.FindByTaskId(taskId);
     string pigstyNums =
         taskPigsties.Where(feedTaskPigsty => feedTaskPigsty.pigsty.PigHouseId.Equals(pigHouseId)).Aggregate("",
                                                                                                             (
                                                                                                                 current,
                                                                                                                 feedTaskPigsty)
                                                                                                             =>
                                                                                                             current +
                                                                                                             (feedTaskPigsty
                                                                                                                  .
                                                                                                                  pigsty
                                                                                                                  .
                                                                                                                  Number +
                                                                                                              ","));
     pigstyNums = pigstyNums.Substring(0, pigstyNums.Length - 1);
     return pigstyNums;
 }
Esempio n. 4
0
        public FodderTakeModel GetFodderDetail(FodderTakeModel model)
        {
            //初始化
            var newFodderDetails = new List<FodderDetail>();
            //var newFodderDetail=new FodderDetail();
            //newFodderDetails.Add(newFodderDetail);
            model.TaskDetail = newFodderDetails;

            var pigstyService = new PigstyService();
            var tasktypeService = new TaskTypeService();
            var taskEmployeeService = new TaskEmployeeService();
            var taskpigstyservice = new TaskPigstyService();
            var feedTaskQualityService = new FeedTaskQualityService();
            var taskIntervalCycleService = new TaskIntervalCycleService();
            int taskflag = 0;
            long employeeTaskId = 0;
            var taskService = new TaskService();
            List<task_employee> alltask = taskEmployeeService.FindByEmployeeId(model.ActualEmployeeId);
            //根据任务id找到任务类型,若是当天的喂饲任务,记录taskid
            foreach (task_employee task in alltask)
            {
                long tasktypeid = taskService.Find(task.TaskId).TaskTypeId;
                string tasktype = tasktypeService.Find(tasktypeid).Name;
                if (tasktype == "喂饲")
                {
                    List<task_interval_cycle> taskInterval = taskIntervalCycleService.FindByTaskId(task.TaskId);
                    foreach (task_interval_cycle taskinterval in taskInterval)
                    {
                        for (int i = 0; i < 1000; i++)
                        {
                            //根据任务的循环时间匹配是否有当天的任务
                            if (
                                taskinterval.FirstExecuteDate.AddDays(Convert.ToDouble(taskinterval.CycleDays*i))
                                            .
                                             ToShortDateString() == DateTime.Now.ToShortDateString())
                            {
                                taskflag = 1; //标志
                                employeeTaskId = task.TaskId;
                                break;
                            }
                        }
                    }
                }
            }
            if (taskflag == 1)
            {
                List<task_pigsty> taskPisties = taskpigstyservice.FindByTaskId(employeeTaskId);

                //遍历该任务的所有的猪栏,并将其对应的饲料添加到model.TaskDetail中
                int i;
                foreach (task_pigsty taskPigsty in taskPisties)
                {
                    List<feed_task_quality> taskQuality = feedTaskQualityService.FindByFeedTaskPigstyId(taskPigsty.Id);
                    if (model.TaskDetail.Count == 0)
                    {
                        var fodderDetail = new FodderDetail
                                               {
                                                   FodderTypeName = taskQuality[0].fodder_type.Name,
                                                   //Quality = taskQuality[0].Quality * pigstyService.GetPignumbers(Convert.ToInt64(taskPigsty.PigstyId)),
                                                   //UnitName = taskQuality[0].unit.Name,
                                                   FodderTypeId = taskQuality[0].FodderTypeId,
                                                   //UnitId = taskQuality[0].UnitId
                                               };
                        model.TaskDetail.Add(fodderDetail);
                    }
                    else
                    {
                        int knt = 0; //判断该猪栏的饲料是否跟
                        for (i = 0; i < model.TaskDetail.Count; i++)
                        {
                            if (model.TaskDetail[i].FodderTypeName == taskQuality[0].fodder_type.Name)
                            {
                                //model.TaskDetail[i].Quality = taskQuality[0].Quality*
                                //                              pigstyService.GetPignumbers(
                                //                                  Convert.ToInt64(taskPigsty.PigstyId)) +
                                //                              model.TaskDetail[i].Quality;
                                knt = 1;
                            }
                        }
                        if (knt == 0)
                        {
                            var fodderDetail = new FodderDetail
                                                   {
                                                       FodderTypeName = taskQuality[0].fodder_type.Name,
                                                       //Quality = taskQuality[0].Quality * pigstyService.GetPignumbers(Convert.ToInt64(taskPigsty.PigstyId)),
                                                       //UnitName = taskQuality[0].unit.Name,
                                                       FodderTypeId = taskQuality[0].FodderTypeId,
                                                       //UnitId = taskQuality[0].UnitId
                                                   };
                            model.TaskDetail.Add(fodderDetail);
                        }
                    }
                }
                model.TaskNumber = taskService.Find(employeeTaskId).TaskNumber;
                //任务的全部人员
                List<task_employee> allemployees = taskEmployeeService.FindByTaskId(employeeTaskId);
                string reAllEmployeeName = "";
                for (i = 0; i < allemployees.Count - 1; i++)
                {
                    reAllEmployeeName = reAllEmployeeName + allemployees[i].employee.Name + ",";
                }
                reAllEmployeeName = reAllEmployeeName + allemployees[i].employee.Name;
                model.TaskEmployeeName = reAllEmployeeName;
            }
            return model;
        }