From 747cfc84c88ad9f0cdf1732196019e34e867a77e Mon Sep 17 00:00:00 2001 From: 海波 张 <2956280567@qq.com> Date: 星期二, 27 五月 2025 17:29:39 +0800 Subject: [PATCH] 金坛mes接口修改 --- process/TaskProcess.cs | 370 ++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 256 insertions(+), 114 deletions(-) diff --git a/process/TaskProcess.cs b/process/TaskProcess.cs index a9a515f..c847b92 100644 --- a/process/TaskProcess.cs +++ b/process/TaskProcess.cs @@ -114,21 +114,38 @@ LogHelper.Info($"娌℃壘鍒颁换鍔no}锛屼氦浜掕姹傚け璐�, "瀹夊叏浜や簰"); } } - else if (state == 1105) + else if (state == 1003) { - //鍒ゆ柇鎺ラ┏浣嶅拰宸烽亾鏄惁鍙敤 涓嶅彲鐢ㄩ渶瑕佹敼閬�- changeBit(mst); + var workFlow = TaskHelper.selectWorkFlowByType(mst.N_TYPE.ToString(), mst.TOOLSTYPE); + + if (workFlow == null) + { + LogHelper.Info($"鍒ゆ柇鎺ラ┏浣嶄互鍙婂贩閬撴槸鍚﹀彲鐢紝BUSI_TYpe:{mst.N_TYPE},娌℃壘鍒板搴斾綔涓氭祦绋�, "鏀归亾瀹夊叏浜や簰"); + return; + } + + var wcsTask = TaskHelper.GetTaskByWorkNo(mst.S_OP_CODE,"wcs"); + if (wcsTask == null) + { + LogHelper.Info($"鍒ゆ柇宸烽亾鍙敤澶辫触锛屾病鎵惧埌瀵瑰簲{mst.S_OP_CODE}鐨剋cs浠诲姟", "鏀归亾瀹夊叏浜や簰"); + return; + } + //鍒ゆ柇绌烘墭缂撳瓨銆佹帴椹充綅鍜屽贩閬撴槸鍚﹀彲鐢�涓嶅彲鐢ㄩ渶瑕佹敼閬�+ changeBit(mst,wcsTask,workFlow); } else if (state == 1023 || state == 1025) { //寮�叧鍏抽棬鐢宠 DeviceProcess.Door(mst, forkliftNo, state); } - else if (state == 1013) { - LogHelper.Info($"绛夊緟浜や簰锛屼换鍔″彿={mst.S_CODE}锛屽嵏璐т氦绠℃垚鍔燂紝淇敼鍙傛暟", "瀹夊叏浜や簰"); + else if (state == 1004) { + LogHelper.Info($"绛夊緟浜や簰锛屼换鍔″彿={mst.S_CODE}", "瀹夊叏浜や簰"); + var wcsCode = mst.S_CODE.Replace(@"_1", "_2"); + + LogHelper.Info($"绛夊緟浜や簰锛屾煡璇㈡牎楠屼换鍔″彿={wcsCode}", "瀹夊叏浜や簰"); //绛夊緟rfid鏍¢獙 - var rfidFlag = TaskHelper.GetRfid(mst.S_CODE); + var rfidFlag = TaskHelper.GetRfid(wcsCode); LogHelper.Info($"绛夊緟浜や簰锛屼换鍔″彿={mst.S_CODE}锛孯FID鏍¢獙淇℃伅"+JsonConvert.SerializeObject(rfidFlag), "瀹夊叏浜や簰"); if (rfidFlag!=null) @@ -187,38 +204,22 @@ private static object locLocker = new object(); - internal static void changeBit(WMSTask task) { + internal static void changeBit(WMSTask task, WMSTask wcsTask, WorkFlow workFlow) { var db = new SqlHelper<object>().GetInstance(); try { - var workFlow = TaskHelper.selectWorkFlowByType(task.N_TYPE.ToString(), task.TOOLSTYPE); - - if (workFlow == null) - { - LogHelper.Info($"鍒ゆ柇鎺ラ┏浣嶄互鍙婂贩閬撴槸鍚﹀彲鐢紝BUSI_TYpe:{task.N_TYPE},娌℃壘鍒板搴斾綔涓氭祦绋�, "鏀归亾瀹夊叏浜や簰"); - throw new Exception($"鍒ゆ柇鎺ラ┏浣嶄互鍙婂贩閬撴槸鍚﹀彲鐢紝BUSI_TYpe:{task.N_TYPE},娌℃壘鍒板搴斾綔涓氭祦绋�); - } - - var wcsTask = db.Queryable<WMSTask>().Where(e => e.S_CODE == task.S_OP_CODE + "_2")?.First(); - if (wcsTask == null) - { - LogHelper.Info($"鍒ゆ柇宸烽亾鍙敤澶辫触锛屾病鎵惧埌瀵瑰簲{task.S_OP_CODE + "_2"}浠诲姟", "鏀归亾瀹夊叏浜や簰"); - throw new Exception($"鍒ゆ柇宸烽亾鍙敤澶辫触,娌℃壘鍒板搴攞task.S_OP_CODE + "_2"}浠诲姟"); - } - + //鍒ゆ柇鎺ラ┏浣嶅彲鐢� var flag = true; //绌烘墭鍏ュ簱鍒ゆ柇绌烘墭鍑虹紦瀛樿〃锛屾湁瀵瑰簲璁板綍鐩存帴鏀归亾鍒扮紦瀛樿〃缁堢偣 if (workFlow.FLOWCODE=="3") { - var kt = db.Queryable<MesKtTask>().Where(e => e.TOOLS_TPYE==task.TOOLSTYPE && e.Status=="N").First(); + var kt = db.Queryable<MesKtTask>().Where(e => e.TOOLS_TPYE==task.TOOLSTYPE && e.Status=="N").OrderBy(a=>a.CreateDate).First(); if (kt == null) { - LogHelper.Info($"褰撳墠浠诲姟{task.S_CODE}娌℃壘鍒扮┖鎵樺嚭缂撳瓨璁板綍锛屼笉闇�鏀归亾锛岀洿鎺ヤ慨鏀瑰弬鏁�涓�", "鏀归亾瀹夊叏浜や簰"); - NDCApi.ChangeOrderParam(task.S_CODE, 6, "1"); - return; + LogHelper.Info($"褰撳墠浠诲姟{task.S_CODE}娌℃壘鍒扮┖鎵樺嚭缂撳瓨璁板綍", "鏀归亾瀹夊叏浜や簰"); } else { @@ -231,32 +232,60 @@ //{ // LogHelper.Info($"褰撳墠浠诲姟{task.S_CODE}鏀归亾缁堢偣澶辫触锛岀粓鐐�{kt.Location_To},娌℃壘鍒版垨鏈夐攣", "鏀归亾瀹夊叏浜や簰"); //} - + TaskHelper.Fail(wcsTask); + TaskProcess.OperateStatus(wcsTask, 7); LocationHelper.LockLoc(end.S_CODE, "鍏ュ簱閿�, 1); - var endLoc = LocationHelper.GetLocOne(task.S_END_LOC); - endLoc.N_LOCK_STATE = 0; - endLoc.S_LOCK_STATE = "鏃�; db.BeginTran(); - db.Updateable(endLoc).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE }).ExecuteCommand(); //鏀逛竴娈典换鍔$粓鐐� task.S_END_LOC = end.S_CODE; - db.Updateable(task).UpdateColumns(it => new { it.S_END_LOC }).ExecuteCommand(); + task.S_END_AREA = end.S_AREA_CODE; + db.Updateable(task).UpdateColumns(it => new { it.S_END_LOC,it.S_END_AREA}).ExecuteCommand(); kt.Status = "Y"; db.Updateable(kt).UpdateColumns(it => new { it.Status }).ExecuteCommand(); db.CommitTran(); - - WcsTask.WcsCancellTask(wcsTask); var site = LocationHelper.GetAgvSiteZc(end.S_CODE); - LogHelper.Info($"浠诲姟{task.S_CODE}鏀归亾鎴愬姛锛屾敼鍙傛暟2涓簕site},鍙傛暟6涓�", "鏀归亾瀹夊叏浜や簰"); + LogHelper.Info($"浠诲姟{task.S_CODE}鏀归亾鎴愬姛锛屾敼鍙傛暟2涓簕site},鍙傛暟6涓�锛�涓�", "鏀归亾瀹夊叏浜や簰"); NDCApi.ChangeOrderParam(task.S_CODE, 2, site); NDCApi.ChangeOrderParam(task.S_CODE, 6, "1"); - + NDCApi.ChangeOrderParam(task.S_CODE, 4, "0"); + return; } - } if (workFlow.FLOWNAME.Contains("鍏ュ簱")) { + var loc1 = LocationHelper.GetLocOne(wcsTask.S_END_LOC); + //鏌ユ壘鍙敤宸烽亾 + var rowdwa = db.Queryable<RoadWayEnable>().Where(x => x.areaCode == wcsTask.S_END_AREA && x.status == "0" && x.roadWay == loc1.N_ROADWAY.ToString()).First(); + if (rowdwa == null) + { + LogHelper.Info($"鍒ゆ柇宸烽亾鍙敤,褰撳墠搴撳尯{wcsTask.S_END_AREA}褰撳墠宸烽亾{loc1.N_ROADWAY}鍙敤,涓嶉渶瑕佹敼閬�, "鏀归亾瀹夊叏浜や簰"); + } + else + { + LogHelper.Info($"褰撳墠宸烽亾涓嶅彲鐢紝闇�鏀归亾", "鏀归亾瀹夊叏浜や簰"); + var endLoc = LocationHelper.GetLocOne(wcsTask.S_END_LOC); + + var endList = LocationHelper.GetAllLocList1(workFlow.ENDAREA); + var end = LocationHelper.FindBalanceEndcolByLocList(endList, workFlow.ENDAREA, workFlow.ROADWAY); + LogHelper.Info($"褰撳墠宸烽亾涓嶅彲鐢紝闇�鏀归亾锛屾柊缁堢偣淇℃伅" + JsonConvert.SerializeObject(end), "鏀归亾瀹夊叏浜や簰"); + if (end == null) + { + LogHelper.Info($"褰撳墠宸烽亾涓嶅彲鐢紝缁堢偣搴撳尯{workFlow.ENDAREA},娌℃壘鍒扮粓鐐�, "鏀归亾瀹夊叏浜や簰"); + throw new Exception($"缁堢偣搴撳尯{workFlow.ENDAREA},娌℃壘鍒扮粓鐐�); + } + LocationHelper.LockLoc(end.S_CODE, "鍏ュ簱閿�, 1); + db.BeginTran(); + endLoc.N_LOCK_STATE = 0; + endLoc.S_LOCK_STATE = "鏃�; + db.Updateable(endLoc).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE }).ExecuteCommand(); + wcsTask.S_END_LOC = end.S_CODE; + db.Updateable(wcsTask).UpdateColumns(it => new { it.S_END_LOC }).ExecuteCommand(); + db.CommitTran(); + } + + + var connectionList = LocationHelper.GetConnectionList(workFlow.CONNECTION); var usableConnectionList = WcsTask.WcsPositionAvailable(task.S_CODE, connectionList); if (usableConnectionList != null && usableConnectionList.code == "0") @@ -266,9 +295,11 @@ var con = LocationHelper.GetLoc(item); if (con.S_CODE.Contains(task.S_END_LOC)) { + flag = false; - LogHelper.Info($"褰撳墠浠诲姟{task.S_CODE}鎺ラ┏浣峽con.S_CODE}鍙敤锛屼笉闇�鏀归亾锛岀洿鎺ヤ慨鏀瑰弬鏁�涓�", "鏀归亾瀹夊叏浜や簰"); + LogHelper.Info($"褰撳墠浠诲姟{task.S_CODE}鎺ラ┏浣峽con.S_CODE}鍙敤锛屼笉闇�鏀归亾锛岀洿鎺ヤ慨鏀瑰弬鏁�涓�锛�涓�", "鏀归亾瀹夊叏浜や簰"); NDCApi.ChangeOrderParam(task.S_CODE, 6, "1"); + NDCApi.ChangeOrderParam(task.S_CODE, 4, "0"); break; } } @@ -286,7 +317,7 @@ foreach (var item in usableConnectionList.available) { var con = LocationHelper.GetLoc(item); - if (con.S_LOCK_STATE == "鏃� && con.N_CURRENT_NUM < 2) + if (con.N_CURRENT_NUM < 2) { connection = con.S_CODE; LogHelper.Info($"鏀归亾瀵绘壘鍒板彲鐢ㄦ帴椹充綅{connection}", "鏀归亾瀹夊叏浜や簰"); @@ -300,8 +331,7 @@ var loc = LocationHelper.GetLocOne(connection); - if (workFlow.FLOWNAME.Contains("鍏ュ簱")) - { + LocationHelper.LockLoc(loc.S_CODE, "鍏ュ簱閿�, 1); var endLoc = LocationHelper.GetLocOne(task.S_END_LOC); endLoc.N_LOCK_STATE = 0; @@ -310,19 +340,22 @@ db.Updateable(endLoc).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE }).ExecuteCommand(); //鏀逛竴娈典换鍔$粓鐐� task.S_END_LOC = loc.S_CODE; - db.Updateable(task).UpdateColumns(it => new { it.S_END_LOC }).ExecuteCommand(); + task.S_END_AREA = loc.S_AREA_CODE; + db.Updateable(task).UpdateColumns(it => new { it.S_END_LOC, it.S_END_AREA }).ExecuteCommand(); + //鏀逛簩娈典换鍔¤捣鐐� wcsTask.S_START_LOC = loc.S_CODE; - db.Updateable(wcsTask).UpdateColumns(it => new { it.S_START_LOC }).ExecuteCommand(); + wcsTask.S_START_AREA = loc.S_AREA_CODE; + db.Updateable(wcsTask).UpdateColumns(it => new { it.S_START_LOC ,it.S_START_AREA}).ExecuteCommand(); db.CommitTran(); var site = LocationHelper.GetAgvSiteZc(loc.S_CODE); - LogHelper.Info($"浠诲姟{task.S_CODE}鏀归亾鎴愬姛锛屾敼鍙傛暟2涓簕site},鍙傛暟6涓�", "鏀归亾瀹夊叏浜や簰"); + LogHelper.Info($"浠诲姟{task.S_CODE}鏀归亾鎴愬姛锛屾敼鍙傛暟2涓簕site},鍙傛暟6涓�,4涓�024", "鏀归亾瀹夊叏浜や簰"); NDCApi.ChangeOrderParam(task.S_CODE, 2, site); NDCApi.ChangeOrderParam(task.S_CODE, 6, "1"); - - } + NDCApi.ChangeOrderParam(task.S_CODE, 4, "1024"); + //} else if (workFlow.FLOWNAME.Contains("鍑哄簱")) { // var endLoc = LocationHelper.GetLocOne(task.S_START_LOC); // endLoc.N_LOCK_STATE = 3; @@ -412,6 +445,10 @@ var ndcParme = new List<param>(); ndcParme.Add(new param() { name = "From", value = start.ToString() }); ndcParme.Add(new param() { name = "To", value = end.ToString() }); + ndcParme.Add(new param() { name = "FUNC", value = "0" }); + ndcParme.Add(new param() { name = "DATA", value = "0" }); + ndcParme.Add(new param() { name = "Ctype", value = "0" }); + var res = NDCApi.AddOrderNew(1, mst.N_PRIORITY, mst.S_CODE, ndcParme); @@ -763,8 +800,8 @@ try { - var task = TaskHelper.GetTask(model.task_no + "_1"); - var wcsTask = TaskHelper.GetTask(model.task_no + "_2"); + var task = TaskHelper.GetTaskByWorkNo(model.task_no, "agv"); + var wcsTask = TaskHelper.GetTaskByWorkNo(model.task_no,"wcs"); if (task != null && wcsTask != null) { if (task.S_B_STATE.Trim() == "鏈墽琛�) @@ -828,7 +865,7 @@ else { result.errCode = 1; - result.errMsg = "浠诲姟涓嶅瓨鍦�; + result.errMsg = $"{model.task_no}浠诲姟涓嶅瓨鍦�; result.success = false; } } @@ -1151,7 +1188,36 @@ /// </summary> internal static Result addMesTask(ZcInWorkAreaParme model) { var result = new Result(); - + //淇濆瓨鍒癿es浠诲姟璁板綍 + MesTask mesRes = new MesTask() + { + task_no = model.task_no, + Task_type = model.Task_type, + TurnCardNum = model.TurnCardNum, + PROD_NO = model.PROD_NO, + PROD_TECH = model.PROD_TECH, + PROD_SPEC = model.PROD_SPEC, + PROD_BOM = model.PROD_BOM, + PROD_Feature = model.PROD_Feature, + TOOLS_NO = model.TOOLS_NO, + ST_AMOUNT = model.ST_AMOUNT, + CURRENT_AMOUNT = model.CURRENT_AMOUNT, + Location_From = model.Location_From, + Location_To = model.Location_To, + PRODUCE_TIME = model.PRODUCE_TIME, + SHELF_LIFE_TIME = model.SHELF_LIFE_TIME, + EXPIRED_TIME = model.EXPIRED_TIME, + SHELF_REP = model.SHELF_REP, + EXPIRED_REP = model.EXPIRED_REP, + CHECK_CODE = model.CHECK_CODE, + CHECK_INFO = model.CHECK_INFO, + Priority = model.Priority, + Data_status = model.Data_status, + CreateDate = DateTime.Now, + standardWeight = model.standardWeight, + BUSI_TYPE = model.BUSI_TYPE, + TOOLS_TPYE = model.TOOLS_TPYE, + }; try { @@ -1195,6 +1261,9 @@ throw new Exception($"鎵樼洏{model.TOOLS_NO}宸茬粡鍒涘缓浣滀笟锛岃鍕块噸澶嶇敵璇�); } } + + + //鎵樼洏鏄庣粏鏁伴噺 @@ -1252,6 +1321,9 @@ //鎺ラ┏浣� var connection = ""; + //鎺ラ┏浣嶅簱鍖哄悕绉�+ var connectionArea = ""; + //濡傛灉闇�涓嬪彂wcs绔嬪簱锛屽垯闇�瀵绘壘鍙敤鎺ラ┏浣� if (workFlow.SENDWCS == "Y") { @@ -1277,13 +1349,16 @@ var usableConnectionList = WcsTask.WcsPositionAvailable(model.task_no, connectionList); if (usableConnectionList != null && usableConnectionList.code == "0") { - foreach (var item in usableConnectionList.available) + //鏍规嵁鎺ラ┏浣嶄换鍔℃暟閲忚幏鍙栧潎琛℃帴椹充綅闆嗗悎浼樺厛浠诲姟鏁板皯鐨勬帴椹充綅 + var balanceConnectionList = LocationHelper.GetBalanceConnectionList(usableConnectionList.available); + foreach (var item in balanceConnectionList) { - var con = LocationHelper.GetLoc(item); - if (con.S_LOCK_STATE == "鏃� && con.N_CURRENT_NUM < 2) + if (item.loc.N_CURRENT_NUM<2) { - connection = con.S_CODE; + connection = item.loc.S_CODE; + connectionArea = item.loc.S_AREA_Name; LogHelper.Info($"ZCSendTask鍏ュ簱浠诲姟涓嬪彂瀵绘壘鍒板彲鐢ㄦ帴椹充綅{connection}", "Mes浠诲姟涓嬪彂"); + break; } } } @@ -1301,15 +1376,22 @@ } //鏌ユ壘缁堢偣 - var endList = LocationHelper.GetAllLocList1(workFlow.ENDAREA); + List<Location> endList ; Location end = null; + if (!string.IsNullOrEmpty(workFlow.ZONECODE)) + { + endList = LocationHelper.GetZoneLoc(workFlow.ZONECODE); + } + else { + endList = LocationHelper.GetAllLocList1(workFlow.ENDAREA); + } if (workFlow.FLOWCODE == "1") { //婊℃墭鍏�- end = LocationHelper.FindEndcolByLocList(endList, workFlow.ENDAREA, workFlow.ROADWAY); + end = LocationHelper.FindBalanceEndcolByLocList(endList, workFlow.ENDAREA, workFlow.ROADWAY); } else if (workFlow.FLOWCODE == "3") { @@ -1322,7 +1404,7 @@ //if (end == null) //{ LogHelper.Info($"ZCSendTask鍏ュ簱浠诲姟娌℃壘鍒扮┖鎵樼紦瀛樺尯缁堢偣,瀵绘壘绔嬪簱鍖虹┖璐т綅", "Mes浠诲姟涓嬪彂"); - end = LocationHelper.FindEndcolByLocList(endList, workFlow.ENDAREA, workFlow.ROADWAY); + end = LocationHelper.FindBalanceEndcolByLocList(endList, workFlow.ENDAREA, workFlow.ROADWAY); //} //else //{ @@ -1340,7 +1422,7 @@ } else { - end = LocationHelper.FindEndcolByLocList(endList, workFlow.ENDAREA, workFlow.ROADWAY); + end = LocationHelper.FindBalanceEndcolByLocList(endList, workFlow.ENDAREA, workFlow.ROADWAY); } } else if (workFlow.FLOWCODE == "12") @@ -1353,10 +1435,10 @@ } - LogHelper.Info($"ZCSendTask浠诲姟涓嬪彂缁堢偣淇℃伅" + JsonConvert.SerializeObject(end), "Mes浠诲姟涓嬪彂"); + LogHelper.Info($"ZCSendTask鍏ュ簱浠诲姟涓嬪彂缁堢偣淇℃伅" + JsonConvert.SerializeObject(end), "Mes浠诲姟涓嬪彂"); if (end == null) { - LogHelper.Info($"ZCSendTask浠诲姟涓嬪彂澶辫触锛岀粓鐐瑰簱鍖簕workFlow.ENDAREA},娌℃壘鍒扮粓鐐�, "Mes浠诲姟涓嬪彂"); + LogHelper.Info($"ZCSendTask鍏ュ簱浠诲姟涓嬪彂澶辫触锛岀粓鐐瑰簱鍖簕workFlow.ENDAREA},娌℃壘鍒扮粓鐐�, "Mes浠诲姟涓嬪彂"); throw new Exception($"缁堢偣搴撳尯{workFlow.ENDAREA},娌℃壘鍒扮粓鐐�); } @@ -1454,8 +1536,13 @@ //浼樺厛绾� N_PRIORITY = model.Priority, //宸ヨ绫诲瀷 - TOOLSTYPE = TOOLSTYPE - + TOOLSTYPE = TOOLSTYPE, + //璧风偣搴撳尯鍚嶇О + S_START_AREA_NAME = start.S_AREA_Name, + //璧风偣搴撳尯鍚嶇О + S_END_AREA_NAME = end.S_AREA_Name, + //璧风偣搴撳尯鍚嶇О + CONNECTION_AREA = connectionArea, }; //鍒涘缓浣滀笟 @@ -1465,6 +1552,10 @@ result.errMsg = "鍏ュ簱浣滀笟鍒涘缓鎴愬姛"; result.errCode = 0; result.success = true; + mesRes.errCode = result.errCode; + mesRes.errMsg = result.errMsg; + //淇濆瓨mes璁板綍 + CreatMesRes(mesRes); return result; } else { @@ -1481,6 +1572,10 @@ //鎺ラ┏浣� var connection = ""; + //鎺ラ┏浣嶅簱鍖�+ var connectionArea = ""; + + //鏌ユ壘缁欏畾缁堢偣 var end = LocationHelper.GetLoc(model.Location_To); LogHelper.Info($"ZCSendTask鍑哄簱浠诲姟涓嬪彂缁堢偣淇℃伅" + JsonConvert.SerializeObject(end), "Mes浠诲姟涓嬪彂"); @@ -1494,8 +1589,22 @@ //鏌ユ壘璧风偣 - var strrtList = LocationHelper.GetAllLocList2(workFlow.STARTAREA); + List<Location> strrtList; + Location start = null; + + + if (!string.IsNullOrEmpty(workFlow.ZONECODE)) + { + strrtList = LocationHelper.GetZoneLoc(workFlow.ZONECODE); + } + else + { + strrtList = LocationHelper.GetAllLocList2(workFlow.STARTAREA); + } + + + if (workFlow.FLOWCODE == "9") { if (TOOLSTYPE == "85" || TOOLSTYPE == "95") @@ -1506,6 +1615,19 @@ else { //鏍规嵁鍒跺搧缂栧彿瀵绘壘绔嬪簱鍖哄搴旂墿鏂欐墭鐩� start = LocationHelper.FindStartcolByLoclistAndItem(strrtList, model.PROD_NO, workFlow.STARTAREA, workFlow.ROADWAY); + if (start==null) + { + strrtList = LocationHelper.GetAllLocList2(workFlow.STARTAREA); + var itemFlag = LocationHelper.FindStartcolByLoclistAndItemFlag(strrtList, model.PROD_NO, workFlow.STARTAREA); + LogHelper.Info($"ZCSendTask婊℃墭鍑哄簱浠诲姟娌℃壘鍒拌捣鐐癸紝鏍¢獙鏄惁鏈夊簱瀛樹絾鏄澶囨姤璀itemFlag}", "Mes浠诲姟涓嬪彂"); + if (itemFlag) + { + result.errMsg = "婊℃墭鍑哄簱浣滀笟鏈夊簱瀛樹絾璁惧鎶ヨ"; + result.errCode = 2001; + result.success = true; + return result; + } + } } @@ -1513,6 +1635,20 @@ else if (workFlow.FLOWCODE == "7") { //瀵绘壘绔嬪簱鍖虹┖鎵� start = LocationHelper.FindStartcolByLoclistAndcntr(strrtList, workFlow.STARTAREA); + if (start == null) + { + strrtList = LocationHelper.GetAllLocList2(workFlow.STARTAREA); + var itemFlag = LocationHelper.FindStartcolByLoclistAndcntrFlag(strrtList, workFlow.STARTAREA); + LogHelper.Info($"ZCSendTask绌烘墭鍑哄簱浠诲姟娌℃壘鍒拌捣鐐癸紝鏍¢獙鏄惁鏈夊簱瀛樹絾鏄澶囨姤璀itemFlag}", "Mes浠诲姟涓嬪彂"); + + if (itemFlag) + { + result.errMsg = "绌烘墭鍑哄簱浣滀笟鏈夊簱瀛樹絾璁惧鎶ヨ"; + result.errCode = 2001; + result.success = true; + return result; + } + } } @@ -1521,6 +1657,13 @@ if (workFlow.FLOWCODE == "7" && start == null) { //绌烘墭鍑烘病鎵惧埌璧风偣锛屽厛缂撳瓨鍒扮┖鎵樿〃 + + //鍏堟煡璇㈡湁娌℃湁鍚岀粓鐐规湭缂撳瓨鐨勮褰�+ + var ktTask = TaskHelper.GetMesKtTask(end.S_CODE); + if (ktTask != null) { + throw new Exception($"ZCSendTask绌烘墭鍑虹紦瀛樺け璐�缁堢偣{end.S_CODE}宸叉湁缂撳瓨"); + } MesKtTask req = new MesKtTask() { @@ -1585,29 +1728,43 @@ //姝e紡浠g爜锛岃皟鐢ㄦ帴鍙e鎵惧彲鐢ㄦ帴椹充綅 var connectionList = LocationHelper.GetConnectionList(workFlow.CONNECTION); - var usableConnectionList = WcsTask.WcsPositionAvailable(model.task_no, connectionList); - if (usableConnectionList != null && usableConnectionList.code == "0") + //var usableConnectionList = WcsTask.WcsPositionAvailable(model.task_no, connectionList); + //if (usableConnectionList != null && usableConnectionList.code == "0") + //{ + // foreach (var item in usableConnectionList.available) + // { + // var con = LocationHelper.GetLoc(item); + // if (con.C_ENABLE == "Y" && con.N_CURRENT_NUM < 2) + // { + // connection = con.S_CODE; + // connectionArea = con.S_AREA_Name; + // LogHelper.Info($"ZCSendTask鍑哄簱浠诲姟涓嬪彂瀵绘壘鍒板彲鐢ㄦ帴椹充綅{connection}", "Mes浠诲姟涓嬪彂"); + // } + // } + //} + //else + //{ + // LogHelper.Info($"ZCSendTask鍑哄簱浠诲姟涓嬪彂瀵绘壘鎺ラ┏浣嶅け璐�, "Mes浠诲姟涓嬪彂"); + // throw new Exception($"ZCSendTask鍑哄簱浠诲姟涓嬪彂瀵绘壘鎺ラ┏浣嶅け璐�); + //} + + //鏍规嵁鎺ラ┏浣嶄换鍔℃暟閲忚幏鍙栧潎琛℃帴椹充綅闆嗗悎浼樺厛浠诲姟鏁板皯鐨勬帴椹充綅 + var balanceConnectionList = LocationHelper.GetBalanceConnectionList(connectionList); + foreach (var item in balanceConnectionList) { - foreach (var item in usableConnectionList.available) + if (item.loc.N_CURRENT_NUM < 2) { - var con = LocationHelper.GetLoc(item); - if (con.S_LOCK_STATE == "鏃� && con.N_CURRENT_NUM < 2) - { - connection = con.S_CODE; - LogHelper.Info($"ZCSendTask鍑哄簱浠诲姟涓嬪彂瀵绘壘鍒板彲鐢ㄦ帴椹充綅{connection}", "Mes浠诲姟涓嬪彂"); - } + connection = item.loc.S_CODE; + connectionArea = item.loc.S_AREA_Name; + LogHelper.Info($"ZCSendTask鍑哄簱浠诲姟涓嬪彂瀵绘壘鍒板彲鐢ㄦ帴椹充綅{connection}", "Mes浠诲姟涓嬪彂"); + break; } - } - else - { - LogHelper.Info($"ZCSendTask鍑哄簱浠诲姟涓嬪彂瀵绘壘鎺ラ┏浣嶅け璐�, "Mes浠诲姟涓嬪彂"); - throw new Exception($"ZCSendTask鍑哄簱浠诲姟涓嬪彂瀵绘壘鎺ラ┏浣嶅け璐�); } if (connection == "") { - LogHelper.Info($"ZCSendTask鍏ュ簱浠诲姟涓嬪彂瀵绘壘鎺ラ┏浣嶅け璐�, "Mes浠诲姟涓嬪彂"); - throw new Exception($"ZCSendTask鍏ュ簱浠诲姟涓嬪彂瀵绘壘鎺ラ┏浣嶅け璐�); + LogHelper.Info($"ZCSendTask鍑哄簱浠诲姟涓嬪彂瀵绘壘鎺ラ┏浣嶅け璐�, "Mes浠诲姟涓嬪彂"); + throw new Exception($"ZCSendTask鍑哄簱浠诲姟涓嬪彂瀵绘壘鎺ラ┏浣嶅け璐�); } } @@ -1641,7 +1798,13 @@ //浼樺厛绾� N_PRIORITY = model.Priority, //宸ヨ绫诲瀷 - TOOLSTYPE = TOOLSTYPE + TOOLSTYPE = TOOLSTYPE, + //璧风偣搴撳尯鍚嶇О + S_START_AREA_NAME = start.S_AREA_Name, + //璧风偣搴撳尯鍚嶇О + S_END_AREA_NAME = end.S_AREA_Name, + //璧风偣搴撳尯鍚嶇О + CONNECTION_AREA = connectionArea }; //鍒涘缓浣滀笟 @@ -1651,6 +1814,10 @@ result.errMsg = "鍑哄簱浣滀笟鍒涘缓鎴愬姛"; result.errCode = 0; result.success = true; + mesRes.errCode = result.errCode; + mesRes.errMsg = result.errMsg; + //淇濆瓨mes璁板綍 + CreatMesRes(mesRes); return result; } else { @@ -1665,37 +1832,6 @@ } - //鍙傛暟鏍¢獙瀹屾垚淇濆瓨鍒癿es浠诲姟璁板綍 - //MesTask req = new MesTask() - //{ - // task_no = model.task_no, - // Task_type = model.Task_type, - // TurnCardNum = model.TurnCardNum, - // PROD_NO = model.PROD_NO, - // PROD_TECH = model.PROD_TECH, - // PROD_SPEC = model.PROD_SPEC, - // PROD_BOM = model.PROD_BOM, - // PROD_Feature = model.PROD_Feature, - // TOOLS_NO = model.TOOLS_NO, - // ST_AMOUNT = model.ST_AMOUNT, - // CURRENT_AMOUNT = model.CURRENT_AMOUNT, - // Location_From = model.Location_From, - // Location_To = model.Location_To, - // PRODUCE_TIME = model.PRODUCE_TIME, - // SHELF_LIFE_TIME = model.SHELF_LIFE_TIME, - // EXPIRED_TIME = model.EXPIRED_TIME, - // SHELF_REP = model.SHELF_REP, - // EXPIRED_REP = model.EXPIRED_REP, - // CHECK_CODE = model.CHECK_CODE, - // CHECK_INFO = model.CHECK_INFO, - // Priority = model.Priority, - // Data_status = model.Data_status, - // CreateDate = DateTime.Now, - // standardWeight = model.standardWeight, - // BUSI_TYPE = model.BUSI_TYPE, - // TOOLS_TPYE = model.TOOLS_TPYE, - //}; - } catch (Exception ex) @@ -1704,11 +1840,12 @@ result.errMsg = "ZCSendTask浠诲姟涓嬪彂寮傚父"+ex.Message; result.errCode = 1; result.success = false; + mesRes.errCode = result.errCode; + mesRes.errMsg = result.errMsg; + //淇濆瓨mes璁板綍 + CreatMesRes(mesRes); return result; } - - return result; - } @@ -1733,7 +1870,12 @@ + internal static bool CreatMesRes(MesTask model) + { + var newDb = new SqlHelper<object>().GetInstance(); + return newDb.Insertable(model).ExecuteCommand()>0; + } -- Gitblit v1.9.1