public ActionResult AllTaskImport(AllTaskImportModel model, int pageIndex = 1)
 {
     if (Request.IsAjaxRequest())
     {
         const int pageSize = 3;
         AllTaskImportModel = new AllTaskImportModel();
         PagedList<TaskImportModel> infoPagerList = AllTaskImportModel.GetTaskImportPagedList(pageIndex, pageSize);
         ViewData["Task"] = _listService.GetTaskNameExceptAddPigList();
         AllTaskImportModel.TaskImportModels = infoPagerList;
         return PartialView("UCJqAllTaskImport", AllTaskImportModel);
     }
     //根据所选择的任务类型导入到不同的表中
     try
     {
         string returnstring = _allTaskImportModelService.ImportByCertainTask(model);
         if (returnstring != "")
             Response.Write("<script language='JavaScript'>alert('" + returnstring +
                            ".');history.go(0);</script>");
     }
     catch (Exception e)
     {
         Response.Write("<script language='JavaScript'>alert('" + e + ".');history.go(0);</script>");
     }
     ViewData["Task"] = _listService.GetTaskNameList();
     return View(model);
 }
        public ActionResult AllTaskImport(int pageIndex = 1)
        {
            if (Session["CheckFeed"] == null || !(bool) Session["CheckDataImport"])
            {
                Response.Write("<script>history.go(0);</script>");
                return View("Error");
            }
            //删除0字节的文件
            var strFiles = new DirectoryInfo(@"c:\pigrecorder");
            if (strFiles.Exists)
            {
                foreach (FileInfo strFile in strFiles.GetFiles())
                {
                    if (strFile.Length == 0)
                    {
                        System.IO.File.Delete(strFile.FullName);
                    }
                }
            }
            const int pageSize = 25;
            AllTaskImportModel = new AllTaskImportModel();
            PagedList<TaskImportModel> infoPagerList = AllTaskImportModel.GetTaskImportPagedList(pageIndex, pageSize);
            ViewData["Task"] = _listService.GetTaskNameExceptAddPigList();
            AllTaskImportModel.TaskImportModels = infoPagerList;
            if (Request.IsAjaxRequest())
            {
                return PartialView("UCJqAllTaskImport", AllTaskImportModel);
            }

            return View(AllTaskImportModel);
        }
 public string ImportByCertainTask(AllTaskImportModel model)
 {
     string returnstring = "";
     foreach (TaskImportModel taskImportModel in model.TaskImportModels)
     {
         if (taskImportModel.Checked && taskImportModel.ImportStatus == false)
         {
             if (taskImportModel.TaskType.Contains("喂饲"))
             {
                 returnstring = _taskImportModelService.FeedDataImport(taskImportModel, model.Memo);
             }
             if (taskImportModel.TaskType.Contains("防疫"))
             {
                 returnstring = _taskImportModelService.PreventionDataImport(taskImportModel, model.Memo);
             }
             if (taskImportModel.TaskType.Contains("转栏"))
             {
                 returnstring = _taskImportModelService.TransferDataImport(taskImportModel, model.Memo);
             }
             if (taskImportModel.TaskType.Contains("巡查"))
             {
                 returnstring = _taskImportModelService.InspectDataImport(taskImportModel, model.Memo);
             }
             if (taskImportModel.TaskType.Contains("治疗"))
             {
                 returnstring = _taskImportModelService.CureDataImport(taskImportModel, model.Memo);
             }
             if (taskImportModel.TaskType.Contains("销售"))
             {
                 returnstring = _taskImportModelService.SaleDataImport(taskImportModel, model.Memo);
             }
             if (taskImportModel.TaskType.Contains("淘汰"))
             {
                 returnstring = _taskImportModelService.EliminateDataImport(taskImportModel, model.Memo);
             }
             if (taskImportModel.TaskType.Contains("死亡"))
             {
                 returnstring = _taskImportModelService.DieDataImport(taskImportModel, model.Memo);
             }
             //若导入成功,将该成功导入的人的姓名和时间写入c:\pigrecorder\Import\Imported.txt
             //并将ImportStatus设置成true
             if (returnstring == "")
             {
                 taskImportModel.ImportStatus = true;
                 //剪切已导入的信息到import目录下
                 CutFileAndSaveData(taskImportModel);
             }
         }
     }
     return returnstring;
 }
 public ActionResult RawsDetail()
 {
     long modelId = 0;
     if (!Directory.Exists(@"c:\pigrecorder"))
     {
         // 如果目录不在,则创建
         Directory.CreateDirectory(@"c:\pigrecorder");
     }
     _taskImportModels = new List<TaskImportModel>();
     string[] strFiles = Directory.GetFiles(@"c:\pigrecorder");
     foreach (string strFile in strFiles)
     {
         //返回单个文件的无重复记录的List<DataModel>
         List<TaskImportModel> rTaskImportModels = new AllTaskImportModel().GetFilearray(strFile);
         //将returndatamodel中的所有DataModel添加到IdataModel中
         foreach (TaskImportModel dTaskImportModel in rTaskImportModels)
         {
             dTaskImportModel.ModelId = modelId;
             _taskImportModels.Add(dTaskImportModel);
             modelId++;
         }
     }
     AllTaskImportModel _allTaskImportModel = new AllTaskImportModel();
     _allTaskImportModel.TaskImportModels = _taskImportModels;
     return View(_allTaskImportModel);
 }
        public List<BatchAddPigsModel> BatchAddPigs()
        {
            _batchAddPigsModels = new List<BatchAddPigsModel>();
            _allTaskImportModel = new AllTaskImportModel();
            TaskImportModel dtaskImportModel = null;
            //若存在c:\pigrecorderd这个目录
            if (Directory.Exists(@"c:\pigrecorder"))
            {
                _taskImportModels = new List<TaskImportModel>();
                string[] strFiles = Directory.GetFiles(@"c:\pigrecorder");
                foreach (
                    TaskImportModel rTaskImportModel in
                        strFiles.Select(strFile => _allTaskImportModel.GetFilearray(strFile))
                                .SelectMany(rTaskImportModels => rTaskImportModels))
                {
                    _taskImportModels.Add(rTaskImportModel);
                }
                _allTaskImportModel.TaskImportModels = _taskImportModels;
                //首先先从文件中找到有添加生猪任务的人员,然后在根据他用pda所采集的信息中是否有母猪来判断这个任务是不是添加生猪任务的信息
                foreach (TaskImportModel taskImportModel in _taskImportModels)
                {
                    int taskflag = 0; //标志,判断当天是否有添加生猪的任务
                    BatchAddPigsModel batchAddPigsModel = null;
                    List<PigsModel> pigs = null;
                    long employeeId = _employeeService.FindByNumber(taskImportModel.EmployeeNumber).Id;
                    List<task_employee> taskEmployee = _taskEmployeeService.FindByEmployeeId(employeeId);
                    if (taskEmployee != null)
                    {
                        //在所有的任务里判断在这一天是否有添加生猪任务
                        TaskImportModel model = taskImportModel;
                        foreach (task_employee taskemployee in from taskemployee in taskEmployee
                                                               let taskTypeId =
                                                                   _taskService.Find(taskemployee.TaskId).TaskTypeId
                                                               where _taskTypeService.Find(taskTypeId).Name == "添加生猪"
                                                               let startTime =
                                                                   _taskService.Find(taskemployee.TaskId).StartTime
                                                               where
                                                                   startTime.ToShortDateString() ==
                                                                   model.StartTime.ToShortDateString()
                                                               select taskemployee)
                        {
                            taskflag = 1;
                            taskImportModel.TaskNumber = _taskService.Find(taskemployee.TaskId).TaskNumber;
                        }
                    }
                    //这个工作人员今天有添加生猪的任务,还要对其所采集的数据判断,这份数据是否属于添加生猪的数据
                    if (taskflag != 1) continue;
                    int addPigFlag = 1; //判断是否是添加生猪的任务
                    foreach (RawDataDetail detail in
                            taskImportModel.RawDataDetails.Where(
                                detail => _pigService.FindByRfid(detail.Rfid) == null &&
                                          _pigstyService.FindByRfid(detail.Rfid) == null &&
                                          _pigHouseService.FindByRfid(detail.Rfid) == null &&
                                          _employeeService.FindByRfid(detail.Rfid) == null))
                    {
                        addPigFlag = 0;
                    }
                    //采集数据中有母猪的RFID而且有未识别的RFID,说明该任务是添加生猪的任务
                    if (addPigFlag != 0) continue;
                    dtaskImportModel = taskImportModel;
                    foreach (RawDataDetail detail in taskImportModel.RawDataDetails)
                    {
                        //找到猪栏的rfid
                        if (detail.PigstyId != 0 && detail.PigId == 0)
                        {
                            batchAddPigsModel = new BatchAddPigsModel
                                                    {
                                                        EmployeeName = taskImportModel.EmployeeName,
                                                        TaskId =
                                                            _taskService.FindByTaskNumber(
                                                                taskImportModel.TaskNumber).Id,
                                                        PigstyId = detail.PigstyId,
                                                        PigstyNumber = detail.PigstyNumber,
                                                        PigHouseId = detail.PigHouseId,
                                                        PigHouseName = detail.PigHouseName,
                                                        PigHouseNumber = detail.PigHouseNumber
                                                    };

                            _batchAddPigsModels.Add(batchAddPigsModel);

                            pigs = new List<PigsModel>();
                            batchAddPigsModel.Pigs = pigs;
                        }
                        else if (detail.PigId != 0)
                        {
                            //找到母猪的rfid
                            if (_pigService.Find(detail.PigId).pig_type.Name == "母猪")
                            {
                                if (batchAddPigsModel != null)
                                {
                                    batchAddPigsModel.FemaleParentId = detail.PigId;
                                    batchAddPigsModel.FemaleParentNumber = detail.PigNumber;
                                }
                            }
                        }
                        //找到生猪的rfid
                        if (detail.PigId != 0 || detail.PigHouseId != 0 || detail.PigstyId != 0 || detail.Rfid == null)
                            continue;
                        var addPig = new PigsModel {Birthday = detail.Time.AddDays(-20)};
                        if (batchAddPigsModel != null)
                        {
                            addPig.PigNumber = detail.Rfid;
                            addPig.FemaleParentId = batchAddPigsModel.FemaleParentId;
                            addPig.PigTypeId = _pigTypeService.FindByName("仔猪").Id;
                            addPig.FemaleParentNumber = batchAddPigsModel.FemaleParentNumber;
                        }
                        addPig.Rfid = detail.Rfid;
                        if (pigs == null) continue;
                        pigs.Add(addPig);
                        batchAddPigsModel.Pigs = pigs;
                    }
                }
            }
            else
            {
                Directory.CreateDirectory(@"c:\pigrecorder");
            }

            //删除猪栏下的猪都导入的BatchAddPigsModel
            List<BatchAddPigsModel> rBatchAddPigsModels =
                _batchAddPigsModels.Where(t => t != null && t.Pigs.Count != 0).ToList();
            //如果这个任务下没有生猪可以导入,则将该任务从原始数据剪切到import目录下
            if (rBatchAddPigsModels.Count == 0 && dtaskImportModel != null)
            {
                _allTaskImportModel.CutFileAndSaveData(dtaskImportModel);
            }
            return rBatchAddPigsModels;
        }