| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483 | 
							- using System;
 
- using System.Collections.Generic;
 
- using System.Linq;
 
- using System.Text;
 
- using SqlSugar;
 
- using WCS.Data;
 
- using WCS.Data.Models;
 
- using WCS.Data.Utils;
 
- using WCS.PLC;
 
- namespace WCS.Workflow
 
- {
 
-     public class WCS_ExtendedBLL : IWCS
 
-     {
 
-         public static readonly string Conv_1124 = "1124";
 
-         public static readonly string Conv_1092 = "1092";//4#车间
 
-         public static readonly string Conv_1099 = "1099";//5#车间
 
-         public static readonly string Conv_1504 = "1504";//6#车间
 
-         public static readonly string Conv_1518 = "1518";//7#车间
 
-         public static readonly string Conv_1112 = "1112";
 
-         public static readonly string Conv_1115 = "1115";
 
-         public static readonly string Conv_1107 = "1107";
 
-         public static readonly string Conv_1110 = "1110";
 
-         public static readonly string Conv_1114 = "1114";
 
-         public static readonly string Conv_1109 = "1109";
 
-         public static readonly string Conv_1102 = "1102";
 
-         public static readonly string Conv_1105 = "1105";
 
-         public static readonly string Conv_1104 = "1104";
 
-         public static readonly string Conv_1094 = "1094";
 
-         public static readonly string Conv_1098 = "1098";
 
-         public static readonly string Conv_1097 = "1097";
 
-         public readonly string Conv_1155 = "1155";
 
-         public readonly string Conv_1156 = "1156";
 
-         public readonly string Conv_1157 = "1157";
 
-         public readonly string Conv_1158 = "1158";
 
-         public readonly string conveyorplc = "conveyor02";
 
-         public readonly string pvc_6_Back = "Pvc_6_Back";
 
-         public readonly string pvc_7_Back = "Pvc_7_Back";
 
-         public void CoatingRoomTrafficControl(string equNo, string rgvUpPosNo = "", string barcode = "")
 
-         {
 
-             if (equNo.Contains("rgv"))
 
-             {
 
-                 if (rgvUpPosNo == Conv_1092)//4号车间
 
-                 {
 
-                     CheckUpTask_4_5(rgvUpPosNo, Conv_1097, Conv_1094, Conv_1098, equNo, "4");
 
-                 }
 
-                 else if (rgvUpPosNo == Conv_1099)//5号车间
 
-                 {
 
-                     CheckUpTask_4_5(rgvUpPosNo, Conv_1104, Conv_1102, Conv_1105, equNo, "5");
 
-                 }
 
-                 else if (rgvUpPosNo == Conv_1504)//6号车间
 
-                 {
 
-                     CheckUpTask_6_7(rgvUpPosNo, Conv_1107, Conv_1109, Conv_1110, equNo, "6", pvc_6_Back);
 
-                 }
 
-                 else if (rgvUpPosNo == Conv_1518)//7号车间
 
-                 {
 
-                     CheckUpTask_6_7(rgvUpPosNo, Conv_1112, Conv_1114, Conv_1115, equNo, "7", pvc_7_Back);
 
-                 }
 
-                 else if (rgvUpPosNo == Conv_1155 || rgvUpPosNo == Conv_1156 || rgvUpPosNo == Conv_1157 || rgvUpPosNo == Conv_1158)//三楼包装出口
 
-                 {
 
-                     var conv = ConveyorHelper.GetConveyorSignal(conveyorplc, rgvUpPosNo);
 
-                     if (conv.DB521_Tasknum > 0 || conv.CvDB51_PH_Status || conv.DB521_Request)
 
-                     {
 
-                         throw new Exception(string.Format("三楼包装区RGV[{0}]出口[{1}]存在托盘(任务号,光电信号,请求信号),不能出库到该位置。", equNo, rgvUpPosNo));
 
-                     }
 
-                     if (SugarBase.DB.Queryable<WCS_TASK>().Any(v => v.TASK_POSIDFROM == rgvUpPosNo && v.TASK_POSIDCUR == rgvUpPosNo))
 
-                     {
 
-                         throw new Exception(string.Format("三楼包装区RGV[{0}]出口[{1}]存在入库任务,不能出库到该位置。", equNo, rgvUpPosNo));
 
-                     }
 
-                 }
 
-             }
 
-             else
 
-             {
 
-                 CheckIsExistOutTask(equNo, barcode);
 
-             }
 
-         }
 
-         private void CheckUpTask_4_5(string upPosConvNo, string agvConvPosNo, string scanningConvNo, string cachePosNo, string rgvNo, string workshopNo)
 
-         {
 
-             //判断出口是否存在入库的任务
 
-             if (SugarBase.DB.Queryable<WCS_TASK>().Any(v => v.TASK_COMTYPE == 1 && v.TASK_POSIDNEXT == upPosConvNo))
 
-             {
 
-                 throw new Exception(string.Format("车间[{0}]下料位置[{1}]存在入库任务,RGV[{2}]无法执行到该位置的出库任务", workshopNo, upPosConvNo, rgvNo));
 
-             }
 
-             var conv = ConveyorHelper.GetConveyorSignal(conveyorplc, upPosConvNo);
 
-             //判断下料点是否存在入库任务请求,光电和任务
 
-             if (conv.DB521_Request || conv.CvDB51_PH_Status || conv.DB521_Tasknum > 0)
 
-             {
 
-                 throw new Exception(string.Format("车间[{0}]下料位置[{1}]存在电控信号(请求,光电,任务号),RGV[{2}]无法执行到该位置的出库任务", workshopNo, upPosConvNo, rgvNo));
 
-             }
 
-             var conv_scann = ConveyorHelper.GetConveyorSignal(conveyorplc, scanningConvNo);
 
-             //判断扫描位置是否存在光电信号
 
-             if (conv_scann.CvDB51_PH_Status || conv_scann.DB521_Request || conv_scann.DB521_Tasknum > 0)
 
-             {
 
-                 throw new Exception(string.Format("车间[{0}]扫码位置[{1}]存在电控信号(请求,光电,任务号),RGV[{2}]无法执行出库任务", workshopNo, scanningConvNo, rgvNo));
 
-             }
 
-             //判断是否存在原膜托盘的出库任务
 
-             var taskSet = SugarBase.DB.Queryable<WCS_TASK>().Where(v => v.TASK_COMTYPE == 2 && (v.TASK_POSIDNEXT == agvConvPosNo || v.TASK_POSIDNEXT == cachePosNo || v.TASK_POSIDNEXT == upPosConvNo)).ToList();
 
-             if (taskSet.Count >= 2 && taskSet.Any(v => v.TASK_BOXBARCODE.Substring(0, 3) == "TPC"))
 
-             {
 
-                 string[] orderArr = new string[] { agvConvPosNo, scanningConvNo, cachePosNo, upPosConvNo };
 
-                 taskSet = taskSet.OrderByDescending(e =>
 
-                 {
 
-                     var index = 0;
 
-                     index = Array.IndexOf(orderArr, e.TASK_POSIDCUR);
 
-                     if (index != -1) { return index; }
 
-                     else { return int.MaxValue; }
 
-                 }).ToList();
 
-                 //检测从二个开始任务列表中是否存在TPC托盘
 
-                 for (int i = 1; i < taskSet.Count; i++)
 
-                 {
 
-                     if (taskSet[i].TASK_BOXBARCODE.Substring(0, 3) == "TPC")
 
-                     {
 
-                         throw new Exception(string.Format("到车间[{0}]出口[{1}]存在多个任务并且有原膜托盘任务,RGV[{2}]无法执行出库任务", workshopNo, agvConvPosNo, rgvNo));
 
-                     }
 
-                 }
 
-             }
 
-             string Pvc_ = "Pvc_" + workshopNo;
 
-             //判断是否存在AGV的入库任务
 
-             if (SugarBase.DB.Queryable<WCS_TASK>().Any(v => v.TASK_COMTYPE == 1 && v.TASK_POSIDFROM.Contains(Pvc_) && (v.TASK_WKSTATUS == (int)WkStatus.任务已下发AGV || v.TASK_WKSTATUS == (int)WkStatus.AGV任务完成)))
 
-             {
 
-                 if (taskSet.Count >= 1)
 
-                 {
 
-                     throw new Exception(string.Format("车间[{0}]出口[{1}]存在AGV入库任务,RGV[{2}]无法执行出库任务", workshopNo, agvConvPosNo, rgvNo));
 
-                 }
 
-             }
 
-             //判断是否存在异常退回的任务
 
-             if (SugarBase.DB.Queryable<WCS_TASK>().Any(v => v.TASK_COMTYPE == 6 && v.TASK_POSIDTO == agvConvPosNo))
 
-             {
 
-                 throw new Exception(string.Format("车间[{0}]出口[{1}]存在入库任务,RGV[{2}]无法执行出库任务", workshopNo, agvConvPosNo, rgvNo));
 
-             }
 
-         }
 
-         /// <summary>
 
-         /// 检测出库位置状态
 
-         /// </summary>
 
-         /// <param name="upPosConvNo">RGV下料点</param>
 
-         /// <param name="requestagvPos">agv对接工位</param>
 
-         /// <param name="requestManualPos">扫描位置</param>
 
-         /// <param name="onMatManualPos">出库缓存位置或入库位置</param>
 
-         /// <returns></returns>
 
-         private void CheckUpTask_6_7(string upPosConvNo, string requestagvPos, string scanningRequestPos, string onMatManualPos, string rgvNo, string workshopNo,string conv_back)
 
-         {
 
-             string plc_name = "conveyor02";
 
-             //查询Agv对接口输送线信息
 
-             var conv_agv = ConveyorHelper.GetConveyorSignal(plc_name, requestagvPos);
 
-             if (conv_agv.DB521_Request || conv_agv.DB521_Goodsend == Convert.ToInt32(upPosConvNo))
 
-             {
 
-                 throw new Exception(string.Format("车间[{0}]出口[{1}]存在电控信号(请求,目标地址为RGV下料位置),RGV[{2}]无法执行到下料位置[{3}]的出库任务", workshopNo,requestagvPos, rgvNo, upPosConvNo));
 
-             }
 
-             //查询扫码位置
 
-             var conv_scanning = ConveyorHelper.GetConveyorSignal(plc_name, scanningRequestPos);
 
-             if (conv_scanning.DB521_Request || conv_scanning.DB521_Goodsend == Convert.ToInt32(upPosConvNo))
 
-             {
 
-                 throw new Exception(string.Format("车间[{0}]扫码入口[{1}]存在电控信号(请求,目标地址为RGV下料位置),RGV[{2}]无法执行到下料位置[{3}]的出库任务", workshopNo, scanningRequestPos, rgvNo, upPosConvNo));
 
-             }
 
-             //判断出口是否存在入库的任务
 
-             if (SugarBase.DB.Queryable<WCS_TASK>().Any(v => v.TASK_COMTYPE == 1 && (v.TASK_POSIDFROM == requestagvPos || v.TASK_POSIDFROM == scanningRequestPos || v.TASK_POSIDFROM == conv_back) && (v.TASK_WKSTATUS <= 1 || v.TASK_POSIDNEXT == upPosConvNo)))
 
-             {
 
-                 throw new Exception(string.Format("车间[{0}]出口[{1}]扫码入口[{2}]存在入库任务,RGV[{3}]无法执行到下料位置[{4}]的出库任务", workshopNo, requestagvPos, scanningRequestPos, rgvNo, upPosConvNo));
 
-             }
 
-             //判断是否存在原膜托盘的出库任务
 
-             var taskSet = SugarBase.DB.Queryable<WCS_TASK>().Where(v => v.TASK_COMTYPE == 2 && (v.TASK_POSIDNEXT == requestagvPos || v.TASK_POSIDNEXT == onMatManualPos || v.TASK_POSIDNEXT == upPosConvNo)).ToList();
 
-             if (taskSet.Count >= 2 && taskSet.Any(v => v.TASK_BOXBARCODE.Substring(0, 3) == "TPC"))
 
-             {
 
-                 //var task_dtl = SugarBase.DB.Queryable<WCS_TASK_DTL>().Where(v => taskSet.Any(t => t.TASK_NO == v.TASKNO)).OrderBy(v => v.EXECUTEDATE).First();
 
-                 //if (taskSet.First(v => v.TASK_NO == task_dtl.TASKNO).TASK_BOXBARCODE.Substring(0, 3) == "TPC")
 
-                 //{
 
-                 //    return false;
 
-                 //}
 
-                 if (taskSet.Any(v => v.TASK_POSIDNEXT == onMatManualPos))
 
-                 {
 
-                     throw new Exception(string.Format("车间[{0}]缓存位置[{1}]存在出库任务,RGV[{2}]无法执行到下料位置[{3}]的出库任务", workshopNo, onMatManualPos, rgvNo, upPosConvNo));
 
-                 }
 
-             }
 
-             if (taskSet.Count == 1)
 
-             {
 
-                 //查询人工上熟化架位置是否存在任务
 
-                 var conv_Manual = ConveyorHelper.GetConveyorSignal(plc_name, onMatManualPos);
 
-                 if (conv_Manual.DB521_Tasknum > 0 && conv_Manual.DB521_Tasknum < 10000 || conv_Manual.DB521_Request)
 
-                 {
 
-                     throw new Exception(string.Format("车间[{0}]人工上料位置[{1}]存在电控信号(请求,任务号),RGV[{2}]无法执行出库任务", workshopNo, onMatManualPos, rgvNo));
 
-                 }
 
-             }
 
-         }
 
-         /// <summary>
 
-         /// 检测是否存在出库任务
 
-         /// </summary>
 
-         private void CheckIsExistOutTask(string convNo, string barcode = "")
 
-         {
 
-             if (convNo == Conv_1112)//7#AGV对接工位
 
-             {
 
-                 if (SugarBase.DB.Queryable<WCS_TASK>().Any(v => v.TASK_COMTYPE == 2 && (v.TASK_POSIDNEXT == Conv_1518 || v.TASK_POSIDNEXT == Conv_1115 || v.TASK_POSIDNEXT == Conv_1112) && v.TASK_POSIDCUR != Conv_1115))
 
-                 {
 
-                     throw new Exception(string.Format("车间[7]输送线[{0}]请求,存在出库任务,交通管制无法入库,请等待。", convNo));
 
-                 }
 
-             }
 
-             else if (convNo == Conv_1107)//6#AGV对接工位
 
-             {
 
-                 if (SugarBase.DB.Queryable<WCS_TASK>().Any(v => v.TASK_COMTYPE == 2 && (v.TASK_POSIDNEXT == Conv_1504 || v.TASK_POSIDNEXT == Conv_1110 || v.TASK_POSIDNEXT == Conv_1107) && v.TASK_POSIDCUR != Conv_1110))
 
-                 {
 
-                     throw new Exception(string.Format("车间[6]输送线[{0}]请求,存在出库任务,交通管制无法入库,请等待。", convNo));
 
-                 }
 
-             }
 
-             else if (convNo == Conv_1114)//7#扫描位置
 
-             {
 
-                 if (SugarBase.DB.Queryable<WCS_TASK>().Any(v => v.TASK_COMTYPE == 2 && (v.TASK_POSIDNEXT == Conv_1518 || v.TASK_POSIDNEXT == Conv_1115 || v.TASK_POSIDNEXT == Conv_1112) && (v.TASK_POSIDCUR != Conv_1112)))
 
-                 {
 
-                     if (Current.TaskSet.Any(v => v.TASK_BOXBARCODE == barcode)) throw new Exception(string.Format("条码[{0}]存在任务,不能生成异常任务", barcode));
 
-                     //生成退回异常任务
 
-                     string msg = string.Format("车间[7]输送线[{0}]条码[{1}]无法入库,单通道存在出库任务。", convNo, barcode);
 
-                     //LogMessageHelper.RecordLogMessage(msg);
 
-                     string errormsg = TryCachHelper.TryTranExecute((db) =>
 
-                     {
 
-                         BaseWorkflow.AddLedErrorMsg(db, Conv_1114, msg, 0);
 
-                         //wms任务异常需要生成退回托盘任务
 
-                         var wcstask = new WCS_TASK();
 
-                         wcstask.TASK_WMSNO = "wcs_" + DateTime.Now.ToString("yyyyMMddhhmmss");
 
-                         wcstask.TASK_COMTYPE = (int)ComTypeEnum.托盘异常退回;
 
-                         wcstask.TASK_SYSTYPE = "WCS";
 
-                         wcstask.TASK_POSIDFROM = Conv_1114;//起点地址
 
-                         wcstask.TASK_POSIDCUR = Conv_1114;
 
-                         wcstask.TASK_POSIDNEXT = Conv_1114;
 
-                         wcstask.TASK_POSIDMOVE = "";
 
-                         wcstask.TASK_PRIORITY = 1;
 
-                         wcstask.TASK_WKSTATUS = 1;
 
-                         wcstask.TASK_WHID = "PVC原膜立库";
 
-                         wcstask.TASK_ADDUSERNO = "WCS";
 
-                         wcstask.TASK_ADDDATETIME = DateTime.Now;
 
-                         wcstask.TASK_EDITUSERNO = "WCS";
 
-                         wcstask.TASK_EDITDATETIME = DateTime.Now;
 
-                         wcstask.TASK_NOTES = "";
 
-                         wcstask.TASK_RGVNO = "";
 
-                         wcstask.TASK_BOXBARCODE = barcode;
 
-                         wcstask.TASK_POSIDTO = Conv_1115;
 
-                         //wcstask.TASK_NOTES = errormsg;
 
-                         int id = SugarBase.DB.Insertable(wcstask).ExecuteReturnIdentity();
 
-                         if (id <= 0)
 
-                         {
 
-                             throw new Exception(string.Format("条码[{0}]添加WCS任务失败", barcode));
 
-                         }
 
-                         else
 
-                         {
 
-                             wcstask.TASK_NO = id;
 
-                         }
 
-                         CommonData.AddWCS_TASK_DTL(db, wcstask.TASK_NO, wcstask.TASK_NO, wcstask.TASK_POSIDCUR, wcstask.TASK_POSIDTO, msg);
 
-                     });
 
-                     if (string.IsNullOrWhiteSpace(errormsg))
 
-                     {
 
-                         throw new Exception(msg);
 
-                     }
 
-                     else
 
-                     {
 
-                         throw new Exception(errormsg);
 
-                     }
 
-                 }
 
-             }
 
-             else if (convNo == Conv_1109)//6#扫描位置
 
-             {
 
-                 if (SugarBase.DB.Queryable<WCS_TASK>().Any(v => v.TASK_COMTYPE == 2 && (v.TASK_POSIDNEXT == Conv_1504 || v.TASK_POSIDNEXT == Conv_1110 || v.TASK_POSIDNEXT == Conv_1107) && (v.TASK_POSIDCUR != Conv_1107)))
 
-                 {
 
-                     if (Current.TaskSet.Any(v => v.TASK_BOXBARCODE == barcode)) throw new Exception(string.Format("条码[{0}]存在任务,不能生成异常任务", barcode));
 
-                     //生成退回异常任务
 
-                     string msg = string.Format("车间[6]输送线[{0}]条码[{1}]无法入库,单通道存在出库任务。", convNo, barcode);
 
-                     //LogMessageHelper.RecordLogMessage(msg);
 
-                     string errormsg = TryCachHelper.TryTranExecute((db) =>
 
-                     {
 
-                         BaseWorkflow.AddLedErrorMsg(db, convNo, msg, 0);
 
-                         //wms任务异常需要生成退回托盘任务
 
-                         var wcstask = new WCS_TASK();
 
-                         wcstask.TASK_WMSNO = "wcs_" + DateTime.Now.ToString("yyyyMMddhhmmss");
 
-                         wcstask.TASK_COMTYPE = (int)ComTypeEnum.托盘异常退回;
 
-                         wcstask.TASK_SYSTYPE = "WCS";
 
-                         wcstask.TASK_POSIDFROM = convNo;//起点地址
 
-                         wcstask.TASK_POSIDCUR = convNo;
 
-                         wcstask.TASK_POSIDNEXT = convNo;
 
-                         wcstask.TASK_POSIDMOVE = "";
 
-                         wcstask.TASK_PRIORITY = 1;
 
-                         wcstask.TASK_WKSTATUS = 1;
 
-                         wcstask.TASK_WHID = "PVC原膜立库";
 
-                         wcstask.TASK_ADDUSERNO = "WCS";
 
-                         wcstask.TASK_ADDDATETIME = DateTime.Now;
 
-                         wcstask.TASK_EDITUSERNO = "WCS";
 
-                         wcstask.TASK_EDITDATETIME = DateTime.Now;
 
-                         wcstask.TASK_NOTES = "";
 
-                         wcstask.TASK_RGVNO = "";
 
-                         wcstask.TASK_BOXBARCODE = barcode;
 
-                         wcstask.TASK_POSIDTO = Conv_1110;
 
-                         //wcstask.TASK_NOTES = errormsg;
 
-                         int id = SugarBase.DB.Insertable(wcstask).ExecuteReturnIdentity();
 
-                         if (id <= 0)
 
-                         {
 
-                             throw new Exception(string.Format("条码[{0}]添加WCS任务失败", barcode));
 
-                         }
 
-                         else
 
-                         {
 
-                             wcstask.TASK_NO = id;
 
-                         }
 
-                         CommonData.AddWCS_TASK_DTL(db, wcstask.TASK_NO, wcstask.TASK_NO, wcstask.TASK_POSIDCUR, wcstask.TASK_POSIDTO, msg);
 
-                     });
 
-                     if (string.IsNullOrWhiteSpace(errormsg))
 
-                     {
 
-                         throw new Exception(msg);
 
-                     }
 
-                     else
 
-                     {
 
-                         throw new Exception(errormsg);
 
-                     }
 
-                 }
 
-             }
 
-             else if (convNo == Conv_1115)//7#人工上料位置
 
-             {
 
-                 var tasks_1115 = SugarBase.DB.Queryable<WCS_TASK>().Where(v => v.TASK_COMTYPE == 2 && (v.TASK_POSIDNEXT == Conv_1518 || v.TASK_POSIDNEXT == Conv_1115 || v.TASK_POSIDNEXT == Conv_1112) && v.TASK_POSIDCUR != Conv_1112).ToList();
 
-                 if (tasks_1115.Any(v => (v.TASK_POSIDCUR == Conv_1112 && v.TASK_BOXBARCODE.Contains("SH")) == false))
 
-                 {
 
-                     throw new Exception(string.Format("车间[7]输送线[{0}]请求,存在出库任务,交通管制无法入库,请等待。", convNo));
 
-                 }
 
-             }
 
-             else if (convNo == Conv_1110)//6#人工上料位置
 
-             {
 
-                 var tasks_1110 = SugarBase.DB.Queryable<WCS_TASK>().Where(v => v.TASK_COMTYPE == 2 && (v.TASK_POSIDNEXT == Conv_1504 || v.TASK_POSIDNEXT == Conv_1110 || v.TASK_POSIDNEXT == Conv_1107) &&
 
-                                                           (v.TASK_POSIDCUR != Conv_1109)).ToList();
 
-                 if (tasks_1110.Any(v => (v.TASK_POSIDCUR == Conv_1107 && v.TASK_BOXBARCODE.Contains("SH")) == false))
 
-                 {
 
-                     throw new Exception(string.Format("车间[6]输送线[{0}]请求,存在出库任务,交通管制无法入库,请等待。", convNo));
 
-                 }
 
-             }
 
-             else if (convNo == Conv_1102)//5#扫描位置
 
-             {
 
-                 if (SugarBase.DB.Queryable<WCS_TASK>().Any(v => v.TASK_COMTYPE == 2 && (v.TASK_POSIDNEXT == Conv_1099 || v.TASK_POSIDNEXT == Conv_1105) && v.TASK_POSIDCUR != Conv_1105))
 
-                 {
 
-                     if (Current.TaskSet.Any(v => v.TASK_BOXBARCODE == barcode && v.TASK_WKSTATUS > 1 && v.TASK_WKSTATUS != 12)) throw new Exception(string.Format("条码[{0}]存在任务,不能生成异常任务", barcode));
 
-                     if(!SugarBase.DB.Queryable<WCS_TASK>().Any(v=>v.TASK_BOXBARCODE==barcode && v.TASK_COMTYPE == 6))
 
-                     {
 
-                         //生成退回异常任务
 
-                         string msg = string.Format("车间[5]输送线[{0}]条码[{1}]无法入库,单通道存在出库任务。", convNo, barcode);
 
-                         //LogMessageHelper.RecordLogMessage(msg);
 
-                         string errormsg = TryCachHelper.TryTranExecute((db) =>
 
-                         {
 
-                             BaseWorkflow.AddLedErrorMsg(db, convNo, msg, 0);
 
-                             //wms任务异常需要生成退回托盘任务
 
-                             var wcstask = new WCS_TASK();
 
-                             wcstask.TASK_WMSNO = "wcs_" + DateTime.Now.ToString("yyyyMMddhhmmss");
 
-                             wcstask.TASK_COMTYPE = (int)ComTypeEnum.托盘异常退回;
 
-                             wcstask.TASK_SYSTYPE = "WCS";
 
-                             wcstask.TASK_POSIDFROM = convNo;//起点地址
 
-                             wcstask.TASK_POSIDCUR = convNo;
 
-                             wcstask.TASK_POSIDNEXT = convNo;
 
-                             wcstask.TASK_POSIDMOVE = "";
 
-                             wcstask.TASK_PRIORITY = 1;
 
-                             wcstask.TASK_WKSTATUS = 1;
 
-                             wcstask.TASK_WHID = "PVC原膜立库";
 
-                             wcstask.TASK_ADDUSERNO = "WCS";
 
-                             wcstask.TASK_ADDDATETIME = DateTime.Now;
 
-                             wcstask.TASK_EDITUSERNO = "WCS";
 
-                             wcstask.TASK_EDITDATETIME = DateTime.Now;
 
-                             wcstask.TASK_NOTES = "";
 
-                             wcstask.TASK_RGVNO = "";
 
-                             wcstask.TASK_BOXBARCODE = barcode;
 
-                             wcstask.TASK_POSIDTO = Conv_1104;
 
-                             //wcstask.TASK_NOTES = errormsg;
 
-                             int id = SugarBase.DB.Insertable(wcstask).ExecuteReturnIdentity();
 
-                             if (id <= 0)
 
-                             {
 
-                                 throw new Exception(string.Format("条码[{0}]添加WCS任务失败", barcode));
 
-                             }
 
-                             else
 
-                             {
 
-                                 wcstask.TASK_NO = id;
 
-                             }
 
-                             CommonData.AddWCS_TASK_DTL(db, wcstask.TASK_NO, wcstask.TASK_NO, wcstask.TASK_POSIDCUR, wcstask.TASK_POSIDTO, msg);
 
-                         });
 
-                         if (string.IsNullOrWhiteSpace(errormsg))
 
-                         {
 
-                             throw new Exception(msg);
 
-                         }
 
-                         else
 
-                         {
 
-                             throw new Exception(errormsg);
 
-                         }
 
-                     }
 
-                  
 
-                 }
 
-             }
 
-             else if (convNo == Conv_1094)//4#扫描位置
 
-             {
 
-                 if (SugarBase.DB.Queryable<WCS_TASK>().Any(v => v.TASK_COMTYPE == 2 && (v.TASK_POSIDNEXT == Conv_1092 || v.TASK_POSIDNEXT == Conv_1098) && v.TASK_POSIDCUR != Conv_1098))
 
-                 {
 
-                     if (Current.TaskSet.Any(v => v.TASK_BOXBARCODE == barcode && v.TASK_WKSTATUS > 1 && v.TASK_WKSTATUS != 12)) throw new Exception(string.Format("条码[{0}]存在任务,不能生成异常任务", barcode));
 
-                     if (!SugarBase.DB.Queryable<WCS_TASK>().Any(v => v.TASK_BOXBARCODE == barcode && v.TASK_COMTYPE == 6))
 
-                     {
 
-                         //生成退回异常任务
 
-                         string msg = string.Format("车间[4]输送线[{0}]条码[{1}]无法入库,单通道存在出库任务。", convNo, barcode);
 
-                         //LogMessageHelper.RecordLogMessage(msg);
 
-                         string errormsg = TryCachHelper.TryTranExecute((db) =>
 
-                         {
 
-                             BaseWorkflow.AddLedErrorMsg(db, convNo, msg, 0);
 
-                             //wms任务异常需要生成退回托盘任务
 
-                             var wcstask = new WCS_TASK();
 
-                             wcstask.TASK_WMSNO = "wcs_" + DateTime.Now.ToString("yyyyMMddhhmmss");
 
-                             wcstask.TASK_COMTYPE = (int)ComTypeEnum.托盘异常退回;
 
-                             wcstask.TASK_SYSTYPE = "WCS";
 
-                             wcstask.TASK_POSIDFROM = convNo;//起点地址
 
-                             wcstask.TASK_POSIDCUR = convNo;
 
-                             wcstask.TASK_POSIDNEXT = convNo;
 
-                             wcstask.TASK_POSIDMOVE = "";
 
-                             wcstask.TASK_PRIORITY = 1;
 
-                             wcstask.TASK_WKSTATUS = 1;
 
-                             wcstask.TASK_WHID = "PVC原膜立库";
 
-                             wcstask.TASK_ADDUSERNO = "WCS";
 
-                             wcstask.TASK_ADDDATETIME = DateTime.Now;
 
-                             wcstask.TASK_EDITUSERNO = "WCS";
 
-                             wcstask.TASK_EDITDATETIME = DateTime.Now;
 
-                             wcstask.TASK_NOTES = "";
 
-                             wcstask.TASK_RGVNO = "";
 
-                             wcstask.TASK_BOXBARCODE = barcode;
 
-                             wcstask.TASK_POSIDTO = Conv_1097;
 
-                             //wcstask.TASK_NOTES = errormsg;
 
-                             int id = SugarBase.DB.Insertable(wcstask).ExecuteReturnIdentity();
 
-                             if (id <= 0)
 
-                             {
 
-                                 throw new Exception(string.Format("条码[{0}]添加WCS任务失败", barcode));
 
-                             }
 
-                             else
 
-                             {
 
-                                 wcstask.TASK_NO = id;
 
-                             }
 
-                             CommonData.AddWCS_TASK_DTL(db, wcstask.TASK_NO, wcstask.TASK_NO, wcstask.TASK_POSIDCUR, wcstask.TASK_POSIDTO, msg);
 
-                         });
 
-                         if (string.IsNullOrWhiteSpace(errormsg))
 
-                         {
 
-                             throw new Exception(msg);
 
-                         }
 
-                         else
 
-                         {
 
-                             throw new Exception(errormsg);
 
-                         }
 
-                     }
 
-                        
 
-                 }
 
-             }
 
-             else if (convNo == Conv_1097)//4#AGV对接位置
 
-             {
 
-                 if (SugarBase.DB.Queryable<WCS_TASK>().Any(v => v.TASK_COMTYPE == 2 && (v.TASK_POSIDNEXT == Conv_1092 || v.TASK_POSIDNEXT == Conv_1098 || v.TASK_POSIDNEXT == Conv_1097) && v.TASK_POSIDCUR != Conv_1098 && v.TASK_POSIDCUR != Conv_1104))
 
-                 {
 
-                     throw new Exception(string.Format("车间[4]输送线[{0}]请求,存在出库任务,交通管制无法入库,请等待。", convNo));
 
-                 }
 
-             }
 
-             else if (convNo == Conv_1104)//5#AGV对接位置
 
-             {
 
-                 if (SugarBase.DB.Queryable<WCS_TASK>().Any(v => v.TASK_COMTYPE == 2 && (v.TASK_POSIDNEXT == Conv_1099 || v.TASK_POSIDNEXT == Conv_1105 || v.TASK_POSIDNEXT == Conv_1104) && v.TASK_POSIDCUR != Conv_1105 && v.TASK_POSIDCUR != Conv_1104))
 
-                 {
 
-                     throw new Exception(string.Format("车间[5]输送线[{0}]请求,存在出库任务,交通管制无法入库,请等待。", convNo));
 
-                 }
 
-             }
 
-             else if (convNo == Conv_1155 || convNo == Conv_1156 || convNo == Conv_1157 || convNo == Conv_1158)
 
-             {
 
-                 if (SugarBase.DB.Queryable<WCS_TASK>().Any(v => v.TASK_COMTYPE == 2 && v.TASK_POSIDNEXT == convNo))
 
-                 {
 
-                     throw new Exception(string.Format("输送线[{0}]条码[{1}]不能入库,存在出库到该位置的任务。", convNo, barcode));
 
-                 }
 
-             }
 
-         }
 
-     }
 
- }
 
 
  |