|  |  | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         /// <summary> | 
 |  |  |         /// æ ¹æ®ä»»å¡ç¶ææ¥è¯¢ä»»å¡ | 
 |  |  |         /// </summary> | 
 |  |  |         /// <param name="deviceNo">设å¤ç¼å·</param> | 
 |  |  |         /// <param name="currentAddress">å½åå°å</param> | 
 |  |  |         /// <returns></returns> | 
 |  |  |         public Dt_Task QueryTaskState() | 
 |  |  |         { | 
 |  |  |             return BaseDal.QueryFirst(x => x.TaskState== (int)TaskInStatusEnum.InNew ); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         /// <summary> | 
 |  |  |         /// æ ¹æ®è®¾å¤ç¼å·ãå½åå°åæ¥è¯¢è¾éçº¿æªæ§è¡çä»»å¡ | 
 |  |  |         /// </summary> | 
 |  |  |         /// <param name="deviceNo">设å¤ç¼å·</param> | 
 |  |  | 
 |  |  |                     //ä¼å
è¿åæ§è¡å°ä¸åçä»»å¡ç»§ç»æ§è¡ | 
 |  |  |                     return task; | 
 |  |  |                 } | 
 |  |  |                 else { | 
 |  |  |                     //æ¥è¯¢å¤©è½¦ç§»å¨ä»»å¡ | 
 |  |  |                     task = BaseDal.QueryFirst(v => v.TaskType == (int)TaskMoveEnum.Mowe && v.TaskState == (int)TaskMoveStatusEnum.OutNewMove); | 
 |  |  |                     if (task!=null) | 
 |  |  |                     { | 
 |  |  |                         return task; | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |                 //æ¥è¯¢å½å任塿± ä¸æ¯å¦åå¨ç¶æä¸ºéæ°å»ºç | 
 |  |  |                 task= BaseDal.QueryFirst(v => v.TaskState != (int)TaskInStatusEnum.InNew || v.TaskState != (int)TaskOutStatusEnum.OutNew); | 
 |  |  |                 if (task != null) | 
 |  |  |                 //task= BaseDal.QueryFirst(v => v.TaskState != (int)TaskInStatusEnum.InNew || v.TaskState != (int)TaskOutStatusEnum.OutNew); | 
 |  |  |                 //if (task != null) | 
 |  |  |                 //{ | 
 |  |  |                 //    throw new Exception($"å½å任塿± ä¸å卿§è¡ä¸çä»»å¡,ä»»å¡å·:ã{task.TaskNum}ã"); | 
 |  |  |                 //} | 
 |  |  |                 if (task.TaskState!= (int)TaskMoveStatusEnum.OutNewMove) | 
 |  |  |                 { | 
 |  |  |                     throw new Exception($"å½å任塿± ä¸å卿§è¡ä¸çä»»å¡,ä»»å¡å·:ã{task.TaskNum}ã"); | 
 |  |  |                 } | 
 |  |  |                 if (workTpe.Equals("In")) | 
 |  |  |                 { | 
 |  |  |                     task = BaseDal.QueryData(v=>v.TaskType==(int)TaskInboundTypeEnum.Inbound && v.TaskState==(int)TaskInStatusEnum.InNew).OrderByDescending(v=>v.Grade) .OrderBy(v=>v.CreateDate).First(); | 
 |  |  |                 } | 
 |  |  |                 else if (workTpe.Equals("Out")) | 
 |  |  |                 { | 
 |  |  |                     task = BaseDal.QueryData(v => v.TaskType == (int)TaskOutboundTypeEnum.Outbound && v.TaskState == (int)TaskOutStatusEnum.OutNew).OrderBy(v => v.CreateDate).First(); | 
 |  |  |                     if (workTpe.Equals("In")) | 
 |  |  |                     { | 
 |  |  |                         task = BaseDal.QueryData(v => v.TaskType == (int)TaskInboundTypeEnum.Inbound && v.TaskState == (int)TaskInStatusEnum.InNew).OrderByDescending(v => v.Grade).OrderBy(v => v.CreateDate).First(); | 
 |  |  |                     } | 
 |  |  |                     else if (workTpe.Equals("Out")) | 
 |  |  |                     { | 
 |  |  |                         task = BaseDal.QueryData(v => (v.TaskType == (int)TaskOutboundTypeEnum.Outbound || v.TaskType == (int)TaskOutboundTypeEnum.OutInventory) && v.TaskState == (int)TaskOutStatusEnum.OutNew).OrderBy(v => v.CreateDate).First(); | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |             catch (Exception) | 
 |  |  | 
 |  |  |         /// <returns>è¿åä»»å¡å®ä½å¯¹è±¡ï¼å¯è½ä¸ºnull</returns> | 
 |  |  |         public Dt_Task QueryTakNnmTask(int taskNum) | 
 |  |  |         { | 
 |  |  |             return BaseDal.QueryFirst(v=>v.TaskNum== taskNum); | 
 |  |  |             return BaseDal.QueryFirst(v=>v.TaskId== taskNum); | 
 |  |  |         } | 
 |  |  |         /// <summary> | 
 |  |  |         /// ä¿®æ¹å¤©è½¦ä»»å¡ç¶æï¼å°å
¥åºåè´§æ§è¡ä¸ä¿®æ¹ä¸ºå
¥åºåè´§å®æ | 
 |  |  | 
 |  |  |                 { | 
 |  |  |                     task.TaskState = (int)TaskInStatusEnum.Line_InGrabExecuting; | 
 |  |  |                 } | 
 |  |  |                 else if (status == 2 && task.TaskType == (int)TaskOutboundTypeEnum.Outbound) | 
 |  |  |                 else if (status == 2 && (task.TaskType == (int)TaskOutboundTypeEnum.Outbound || task.TaskType == (int)TaskOutboundTypeEnum.OutInventory)) | 
 |  |  |                 { | 
 |  |  |                     task.TaskState = (int)TaskOutStatusEnum.Line_OutGrabExecuting; | 
 |  |  |                 } | 
 |  |  | 
 |  |  |                 { | 
 |  |  |                     task.TaskState = (int)TaskInStatusEnum.Line_InDownExecuting; | 
 |  |  |                 } | 
 |  |  |                 else if (status == 3 && task.TaskType == (int)TaskOutboundTypeEnum.Outbound) | 
 |  |  |                 else if (status == 3 && task.TaskType == (int)TaskOutboundTypeEnum.Outbound || task.TaskType == (int)TaskOutboundTypeEnum.OutInventory) | 
 |  |  |                 { | 
 |  |  |                     task.TaskState = (int)TaskOutStatusEnum.Line_OutWownExecuting; | 
 |  |  |                 } | 
 |  |  |                 else if(status == 4 && task.TaskType == (int)TaskMoveEnum.Mowe) | 
 |  |  |                 { | 
 |  |  |                     task.TaskState = (int)TaskMoveStatusEnum.Line_OutMove; | 
 |  |  |                 } | 
 |  |  |                 task.ModifyDate = DateTime.Now; | 
 |  |  |                 BaseDal.UpdateData(task); | 
 |  |  | 
 |  |  |             WebResponseContent content = new WebResponseContent(); | 
 |  |  |             try | 
 |  |  |             { | 
 |  |  |                 var nawtask = BaseDal.QueryFirst(v=>v.TaskNum== taskNum); | 
 |  |  |                 var nawtask = BaseDal.QueryFirst(v=>v.TaskId== taskNum); | 
 |  |  |                 if (nawtask == null) | 
 |  |  |                 { | 
 |  |  |                     throw new Exception(string.Format("天车æ¾è´§å®æä»»å¡æªæ¥è¯¢å°ä»»å¡å·{0}", taskNum)); | 
 |  |  | 
 |  |  |                     Dt_StockInfo stock = new Dt_StockInfo(); | 
 |  |  |                     stock.LocationCode = nawtask.TargetAddress; | 
 |  |  |                     stock.Weight = (decimal)weight; | 
 |  |  |                     stock.StockStatus = (int)stockEnum.Lock; | 
 |  |  |                     stock.StockStatus = (int)stockEnum.Free; | 
 |  |  |                     stock.BatchNo = batck.InBatch; | 
 |  |  |                     if (nawtask.Remark== (int)MateTypeEnum.ZiChan) | 
 |  |  |                     { | 
 |  |  | 
 |  |  |                     { | 
 |  |  |                         stock.Remark = (int)MateTypeEnum.WaiGou; | 
 |  |  |                     } | 
 |  |  |                     Dt_StockInfo stockTow = new Dt_StockInfo(); | 
 |  |  |                     stockTow.LocationCode = nawtask.NextAddress; | 
 |  |  |                     stockTow.Weight = (decimal)weight; | 
 |  |  |                     stockTow.StockStatus = (int)stockEnum.Free; | 
 |  |  |                     stockTow.BatchNo = batck.InBatch; | 
 |  |  |                     if (nawtask.Remark == (int)MateTypeEnum.ZiChan) | 
 |  |  |                     { | 
 |  |  |                         stockTow.Remark = (int)MateTypeEnum.ZiChan; | 
 |  |  |                     } | 
 |  |  |                     else | 
 |  |  |                     { | 
 |  |  |                         stockTow.Remark = (int)MateTypeEnum.WaiGou; | 
 |  |  |                     } | 
 |  |  |                     //ä¿®æ¹è´§ä½ä¿¡æ¯ | 
 |  |  |                     var location = _locationRepository.QueryFirst(v=>v.LocationCode==nawtask.TargetAddress); | 
 |  |  |                     location.LocationStatus = (int)LocationStatusEnum.InStock; | 
 |  |  |                     //ä¿®æ¹è´§ä½ä¿¡æ¯ | 
 |  |  |                     var locationtow = _locationRepository.QueryFirst(v => v.LocationCode == nawtask.NextAddress); | 
 |  |  |                     locationtow.LocationStatus = (int)LocationStatusEnum.InStock; | 
 |  |  |                     //å¤çä»»å¡ä¿¡æ¯ | 
 |  |  |                     Dt_Task_hty taskhty = new Dt_Task_hty(); | 
 |  |  |                     taskhty.TaskNum = nawtask.TaskNum; | 
 |  |  | 
 |  |  |                     taskhty.Grade = nawtask.Grade; | 
 |  |  |                     taskhty.Dispatchertime = nawtask.Dispatchertime; | 
 |  |  |                     taskhty.Remark = nawtask.Remark; | 
 |  |  |                     taskhty.PalletCode = nawtask.PalletCode; | 
 |  |  |                     taskhty.NextAddress = nawtask.NextAddress; | 
 |  |  |                     taskhty.CurrentAddress = nawtask.CurrentAddress; | 
 |  |  |                     //å¼å§æ°æ®åºäºå¡ | 
 |  |  |                     _unitOfWorkManage.BeginTran(); | 
 |  |  |                     _stockRepository.AddData(stock); | 
 |  |  |                     _stockRepository.AddData(stockTow); | 
 |  |  |                     _locationRepository.UpdateData(location); | 
 |  |  |                     _locationRepository.UpdateData(locationtow); | 
 |  |  |                     _taskhtyRepository.AddData(taskhty); | 
 |  |  |                     BaseDal.DeleteData(nawtask); | 
 |  |  |                     //æäº¤äºå¡ | 
 |  |  | 
 |  |  |                 else if (nawtask.TaskType == (int)TaskOutboundTypeEnum.Outbound) | 
 |  |  |                 { | 
 |  |  |                     //æ¥æ¾åºå | 
 |  |  |                     var stock = _stockRepository.QueryFirst(v=>v.LocationCode== nawtask.TargetAddress); | 
 |  |  |                     var stock = _stockRepository.QueryFirst(v=>v.LocationCode== nawtask.SourceAddress); | 
 |  |  |                     if (stock == null)  | 
 |  |  |                     { | 
 |  |  |                         throw new Exception($"æªæ¾å°åºåä¿¡æ¯è´§ä½å·:ã{nawtask.TargetAddress}ã"); | 
 |  |  |                     } | 
 |  |  |                     var Towstock = _stockRepository.QueryFirst(v => v.LocationCode == nawtask.NextAddress); | 
 |  |  |                     //ä¿®æ¹è´§ä½ç¶æ | 
 |  |  |                     var location = _locationRepository.QueryFirst(v => v.LocationCode == nawtask.TargetAddress); | 
 |  |  |                     var location = _locationRepository.QueryFirst(v => v.LocationCode == nawtask.SourceAddress); | 
 |  |  |                     location.LocationStatus = (int)LocationStatusEnum.Free; | 
 |  |  |                     //ä¿®æ¹è´§ä½ç¶æ | 
 |  |  |                     var locationTow = _locationRepository.QueryFirst(v => v.LocationCode == nawtask.NextAddress); | 
 |  |  |                     locationTow.LocationStatus = (int)LocationStatusEnum.Free; | 
 |  |  |                     //åå¤åå²ä»»å¡æ°æ® | 
 |  |  |                     Dt_Task_hty taskhty = new Dt_Task_hty(); | 
 |  |  |                     taskhty.TaskNum = nawtask.TaskNum; | 
 |  |  |                     taskhty.Roadway = nawtask.Roadway; | 
 |  |  |                     taskhty.TaskType = nawtask.TaskType; | 
 |  |  |                     taskhty.TaskState = (int)TaskInStatusEnum.Line_InFinish; | 
 |  |  |                     taskhty.TaskState = (int)TaskOutStatusEnum.OutFinish; | 
 |  |  |                     taskhty.SourceAddress = nawtask.SourceAddress; | 
 |  |  |                     taskhty.TargetAddress = nawtask.TargetAddress; | 
 |  |  |                     taskhty.ExceptionMessage = nawtask.ExceptionMessage; | 
 |  |  |                     taskhty.Grade = nawtask.Grade; | 
 |  |  |                     taskhty.Dispatchertime = nawtask.Dispatchertime; | 
 |  |  |                     taskhty.Remark = nawtask.Remark; | 
 |  |  |                     taskhty.PalletCode = nawtask.PalletCode; | 
 |  |  |                     taskhty.NextAddress = nawtask.NextAddress; | 
 |  |  |                     taskhty.CurrentAddress = nawtask.CurrentAddress; | 
 |  |  |                     //å¼å§æ°æ®åºäºå¡ | 
 |  |  |                     _unitOfWorkManage.BeginTran(); | 
 |  |  |                     _stockRepository.DeleteData(stock); | 
 |  |  |                     _stockRepository.DeleteData(Towstock); | 
 |  |  |                     _locationRepository.UpdateData(location); | 
 |  |  |                     _locationRepository.UpdateData(locationTow); | 
 |  |  |                     _taskhtyRepository.AddData(taskhty); | 
 |  |  |                     BaseDal.DeleteData(nawtask); | 
 |  |  |                     //æäº¤äºå¡ | 
 |  |  |                     _unitOfWorkManage.CommitTran(); | 
 |  |  |                 } | 
 |  |  |                 else if (nawtask.TaskType == (int)TaskOutboundTypeEnum.OutInventory || nawtask.TaskType == (int)TaskMoveEnum.Mowe) | 
 |  |  |                 { | 
 |  |  |                     //å¤çä»»å¡ä¿¡æ¯ | 
 |  |  |                     Dt_Task_hty taskhty = new Dt_Task_hty(); | 
 |  |  |                     taskhty.TaskNum = nawtask.TaskNum; | 
 |  |  |                     taskhty.Roadway = nawtask.Roadway; | 
 |  |  |                     taskhty.TaskType = nawtask.TaskType; | 
 |  |  |                     taskhty.TaskState = (int)TaskOutStatusEnum.OutFinish; | 
 |  |  |                     taskhty.SourceAddress = nawtask.SourceAddress; | 
 |  |  |                     taskhty.TargetAddress = nawtask.TargetAddress; | 
 |  |  |                     taskhty.ExceptionMessage = nawtask.ExceptionMessage; | 
 |  |  |                     taskhty.Grade = nawtask.Grade; | 
 |  |  |                     taskhty.Dispatchertime = nawtask.Dispatchertime; | 
 |  |  |                     taskhty.Remark = nawtask.Remark; | 
 |  |  |                     taskhty.PalletCode = nawtask.PalletCode; | 
 |  |  |                     taskhty.NextAddress = nawtask.NextAddress; | 
 |  |  |                     taskhty.CurrentAddress = nawtask.CurrentAddress; | 
 |  |  |                     //å¼å§æ°æ®åºäºå¡ | 
 |  |  |                     _unitOfWorkManage.BeginTran(); | 
 |  |  |                     _taskhtyRepository.AddData(taskhty); | 
 |  |  |                     BaseDal.DeleteData(nawtask); | 
 |  |  |                     //æäº¤äºå¡ |