From 7fda4aeb36beda46d767a78082573692e7b85651 Mon Sep 17 00:00:00 2001 From: cjs <2216046164@qq.com> Date: 星期二, 15 七月 2025 17:23:05 +0800 Subject: [PATCH] 111 --- HH.WCS.Mobox3.NongFuLinZhi/api/ApiHelper.cs | 287 +++++++++++++++++++++++++-------------------------------- 1 files changed, 127 insertions(+), 160 deletions(-) diff --git a/HH.WCS.Mobox3.NongFuLinZhi/api/ApiHelper.cs b/HH.WCS.Mobox3.NongFuLinZhi/api/ApiHelper.cs index 33f1e27..962184d 100644 --- a/HH.WCS.Mobox3.NongFuLinZhi/api/ApiHelper.cs +++ b/HH.WCS.Mobox3.NongFuLinZhi/api/ApiHelper.cs @@ -57,155 +57,6 @@ return result; } - - - - internal static WeiLiResult AddTask(AddTaskModel model) - { - var result = new WeiLiResult(); - var db = new SqlHelper<object>().GetInstance(); - var cntrweight = model.cntrWeight == 1 ? 2 : model.cntrWeight == 2 ? 3 : model.cntrWeight == 3 ? 11 : model.cntrWeight == 4 ? 30 : model.cntrWeight == 5 ? 150 : 0; - if (!string.IsNullOrEmpty(model.startBit) && !string.IsNullOrEmpty(model.endBit)) - { - if (!string.IsNullOrEmpty(model.TaskNo)) - { - var taskinfo = db.Queryable<WMSTask>().Where(a => a.S_CODE == model.TaskNo).First(); - if (taskinfo == null) - { - var startinfo = db.Queryable<Location>().Where(a => a.S_CODE == model.startBit).First(); - var endinfo = db.Queryable<Location>().Where(a => a.S_CODE == model.endBit).First(); - if (startinfo != null && endinfo != null) - { - if (startinfo.N_LOCK_STATE != 0 || endinfo.N_LOCK_STATE != 0) - { - result.code = 500; - result.msg = "璧风偣鎴栫粓鐐硅揣浣嶉攣瀹氱姸鎬佸紓甯�涓嶄簣鍒涘缓浠诲姟"; - return result; - } - - var startloccntr = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == startinfo.S_CODE).First(); - LogHelper.Info("鏌ヨ璧风偣鏄惁缁戝畾鎵樼洏"); - if (startloccntr == null) - { - LogHelper.Info("璧风偣鏈粦瀹氭墭鐩�鍑嗗缁戝畾鎵樼洏"); - //缁戝畾璧风偣鎵樼洏 - LocationHelper.BindingLoc(model.startBit, new List<string>() { model.cntrNo }); - } - else if (startloccntr.S_CNTR_CODE != model.cntrNo) - { - result.code = 500; - result.msg = $"璧风偣宸茬粦瀹氭墭鐩榹startloccntr.S_CNTR_CODE} 涓庝换鍔℃墭鐩榹model.cntrNo} 涓嶇"; - return result; - } - - LogHelper.Info("杞繍浠诲姟 鍒涘缓浣滀笟"); - - //鍒涘缓浣滀笟 - var optask = new WMSTask - { - S_CODE = model.TaskNo, - S_START_LOC = startinfo.S_CODE, - S_END_LOC = endinfo.S_CODE, - S_END_AREA = endinfo.S_AREA_CODE, - S_START_AREA = startinfo.S_AREA_CODE, - S_START_WH = startinfo.S_WH_CODE, - S_END_WH = endinfo.S_WH_CODE, - S_TYPE = "杞繍", - N_TYPE = 3, - N_B_STATE = 0, - S_CNTR_CODE = model.cntrNo, - S_OP_DEF_NAME = "杞繍", - S_BS_NO = model.workNo, - N_PRIORITY = model.priority, - N_TRAY_WEIGHT = cntrweight - }; - - var note = Settings.Tasktypes.Where(a => a.StartArea == optask.S_START_AREA && a.EndArea == optask.S_END_AREA).FirstOrDefault(); - if (note != null) - { - optask.S_NOTE = note.TaskType; - } - - - - db.Insertable(optask).ExecuteCommand(); - LocationHelper.LockLoc(startinfo.S_CODE, 2); - LocationHelper.LockLoc(endinfo.S_CODE, 1); - } - else - { - result.code = 500; - result.msg = "璧风偣鎴栫粓鐐逛俊鎭湁璇�鏌ヨ涓嶅埌绔欑偣淇℃伅"; - } - } - else - { - result.code = 500; - result.msg = "浠诲姟鍙烽噸澶�璇峰嬁閲嶅涓嬪彂浠诲姟"; - } - } - else - { - result.code = 500; - result.msg = "浠诲姟鍙蜂笉鑳戒负绌�; - } - } - else - { - result.code = 500; - result.msg = "璧风偣鎴栫粓鐐逛笉鑳戒负绌�; - } - - return result; - } - - internal static TaskStateresutl GetTaskState(GetTaskStateModel model) - { - var db = new SqlHelper<object>().GetInstance(); - TaskStateresutl result = new TaskStateresutl { success = false, code = 0}; - if (!string.IsNullOrEmpty(model.taskNo)) - { - var info = db.Queryable<WCSTask>().Where(a => a.S_OP_CODE == model.taskNo).First(); - if (info!=null) - { - var TaskStates = db.Queryable<TaskAction>().Where(a => a.S_TASK_CODE == info.S_CODE).ToList(); - TaskStates=TaskStates.OrderBy(a => a.T_CREATE).ToList(); - for (int i = 0; i < TaskStates.Count; i++) - { - TaskState task = new TaskState - { - state = TaskStates[i].N_ACTION_CODE.ToString(), - errMsg = "", - taskNo = model.taskNo, - transferTime = TaskStates[i].T_CREATE.ToString() - }; - if (!string.IsNullOrEmpty(TaskStates[i].S_EQ_CODE)) - { - task.agvNo = int.Parse(TaskStates[i].S_EQ_CODE); - } - result.data.Add(task); - } - result.success = true ; - } - else - { - result.code = 1; - result.msg = "璇ヤ换鍔″彿娌℃湁鐘舵�璁板綍!"; - } - } - else - { - result.code = 1; - result.msg = "璇锋眰浠诲姟鍙蜂笉鑳戒负绌�"; - } - return result; - } - - - - - - internal static PlcSendTaskres PlcCallbackState(PlcState model) { var db = new SqlHelper<object>().GetInstance(); @@ -443,17 +294,11 @@ db.Updateable(task).UpdateColumns(it => new { it.S_NOTE }).ExecuteCommand(); } - - - - - - internal static WeiLiResult CancelOrder(CancelOrderModel model) { WeiLiResult result = new WeiLiResult(); var db = new SqlHelper<object>().GetInstance(); - var tasks = db.Queryable<WCSTask>().Where(a => a.S_OP_CODE == model.orderNo).ToList(); + var tasks = db.Queryable<WCSTask>().Where(a => a.S_OP_CODE == model.task_no).ToList(); if (tasks.Count >= 1) { //娴佺▼浠诲姟鏁伴噺鎵ц瓒呰繃涓�潯 浠诲姟涓嶅厑璁稿彇娑�@@ -461,7 +306,7 @@ result.msg = "娴佺▼浠诲姟鎵ц涓�涓嶅厑璁稿彇娑�; return result; } - var task = db.Queryable<WCSTask>().Where(a => a.S_OP_CODE == model.orderNo).OrderByDescending(a => a.T_CREATE).First(); + var task = db.Queryable<WCSTask>().Where(a => a.S_OP_CODE == model.task_no).OrderByDescending(a => a.T_CREATE).First(); if (task != null) { if (WCSHelper.CheckActionRecordExist(task.S_CODE, 4)) @@ -473,7 +318,7 @@ if (task.N_B_STATE == 0) { //绛夊緟鐩存帴淇敼鐘舵�涓哄彇娑�- WCSHelper.UpdateStatus(model.orderNo, 5); + WCSHelper.UpdateStatus(model.task_no, 5); //result.msg = "浠诲姟绛夊緟锛岀洿鎺ュ彇娑�; } else if (task.N_B_STATE != 3 && task.N_B_STATE != 4) @@ -485,7 +330,8 @@ else { //宸叉帹閫佷絾鏄病鏈夊畬鎴愭垨鑰呭彇娑堬紝閫氱煡hosttoagv - NDCHelper.Cancel(task.S_CODE.Trim()); + //NDCHelper.Cancel(task.S_CODE.Trim()); + NDCApi.CancelOrder(task.S_CODE.Trim()); //result.msg = "浠诲姟鍙栨秷宸茬粡鍙戦�缁欏皬杞�; } } @@ -528,7 +374,8 @@ else { //閫氱煡鏉弶淇敼浼樺厛绾�- NDCHelper.Cancel(task.S_CODE.Trim()); + //NDCHelper.Cancel(task.S_CODE.Trim()); + NDCApi.CancelOrder(task.S_CODE.Trim()); result.msg = "淇敼浼樺厛绾ф垚鍔�; } } @@ -826,6 +673,126 @@ return result; } + internal static ReturnResult bindCntr(bindModel model) + { + ReturnResult result = new ReturnResult() {ResultCode = -1 }; + var db = new SqlHelper<object>().GetInstance(); + + if (TaskProcess.BindLocCntr(model.S_LOC_CODE, model.S_CNTR_CODE, model.S_ITEM_CODE, model.S_BATCH_CODE)) + { + int num = model.S_CNTR_CODE.Split(',').Count(); + var locInfo = db.Queryable<Location>().Where(a => a.S_CODE == model.S_LOC_CODE).First(); + if(locInfo != null) + { + locInfo.N_CURRENT_NUM = locInfo.N_CURRENT_NUM + num > locInfo.N_CAPACITY ? locInfo.N_CAPACITY : locInfo.N_CURRENT_NUM + num; + db.Updateable(locInfo).UpdateColumns(a => new { a.N_CURRENT_NUM }).ExecuteCommand(); + result.ResultCode = 0; + } + } + return result; + } + + internal static ReturnResult unBindCntr(unBindModel model) + { + ReturnResult result = new ReturnResult() { ResultCode = -1 }; + var db = new SqlHelper<object>().GetInstance(); + var locInfo = db.Queryable<Location>().Where(a => a.S_CODE == model.S_LOC_CODE).First(); + if(locInfo != null) + { + var cntrList = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == model.S_LOC_CODE).ToList(); + if(cntrList.Count > 0) + { + for (int i = cntrList.Count - 1; i >= 0; i --) + { + string cntrCode = cntrList[i].S_CNTR_CODE; + db.Deleteable<CntrItemRel>().Where(a => a.S_CNTR_CODE == cntrCode).ExecuteCommand(); + db.Deleteable<LocCntrRel>().Where(a => a.S_CNTR_CODE == cntrCode).ExecuteCommand(); + db.Deleteable<Container>().Where(a => a.S_CODE == cntrCode).ExecuteCommand(); + } + } + locInfo.N_CURRENT_NUM = locInfo.N_CURRENT_NUM - 1; + if (locInfo.N_CURRENT_NUM < 0) locInfo.N_CURRENT_NUM = 0; + db.Updateable(locInfo).UpdateColumns(a => new { a.N_CURRENT_NUM }).ExecuteCommand(); + result.ResultCode = 0; + } + return result; + } + + internal static ReturnResult JBIn(JBInModel model) + { + ReturnResult result = new ReturnResult() { ResultCode = -1 }; + var db = new SqlHelper<object>().GetInstance(); + string cntrCode = Guid.NewGuid().ToString("N"); + string batch = ""; + if (model.S_ITEM_TYPE == "灏忓寘瑁呯洊") + { + //灏忓寘瑁呯洊榛樿涓�眰 + batch = "灏忓寘瑁呯洊"; + } + if (model.S_ITEM_TYPE == "鐡跺澂") + { + //鐡跺澂榛樿涓ゅ眰 + cntrCode = cntrCode + ","+ Guid.NewGuid().ToString("N"); + } + if (model.S_ITEM_TYPE == "澶у寘瑁呯洊") + { + //澶у寘瑁呯洊榛樿涓夊眰 + cntrCode = cntrCode + "," + Guid.NewGuid().ToString("N") + "," + Guid.NewGuid().ToString("N"); + batch = "澶у寘瑁呯洊"; + } + //鍒涘缓浣滀笟 + var locInfo = db.Queryable<Location>().Where(a => a.S_CODE == model.S_LOC_CODE && a.S_LOCK_STATE == "鏃�).First(); + if(locInfo != null) + { + LogHelper.Info($"JBIn:{model.S_LOC_CODE},{cntrCode},{"鎸囧畾搴撳尯-" + model.S_END_AREA}"); + if (WMSHelper.CreateOpTask(model.S_LOC_CODE, "", "鍏ュ簱", "鎺ラ┏浣嶅叆搴�, cntrCode, "鎸囧畾搴撳尯-" + model.S_END_AREA)) + { + TaskProcess.BindLocCntr(model.S_LOC_CODE, cntrCode, model.S_ITEM_CODE, batch); + result.ResultCode = 0; + } + } + else + { + result.ResultMsg = $"璇ョ偣浣嶄笉瀛樺湪鎴栬�鏈夐攣锛岃揣浣嶇紪鐮侊細{model.S_LOC_CODE}"; + } + + + return result; + } + + internal static ReturnResult PtpTask(PtpTaskModel model, ReturnResult result) + { + var db = new SqlHelper<object>().GetInstance(); + var startLoc = db.Queryable<Location>().Where(a => a.S_CODE == model.S_START_LOC).First(); + if(startLoc != null && startLoc.S_LOCK_STATE == "鏃�) + { + string cntrCode = ""; + var cntrInfo = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == startLoc.S_CODE).First(); + if(cntrInfo != null) + { + cntrCode = cntrInfo.S_CNTR_CODE; + } + else + { + cntrCode = Guid.NewGuid().ToString("N"); + } + var endLoc = db.Queryable<Location>().Where(a => a.S_CODE == model.S_END_LOC).First(); + if (endLoc != null && endLoc.S_LOCK_STATE == "鏃�) + { + WMSHelper.CreateOpTask(model.S_START_LOC, model.S_END_LOC, "鍏ュ簱", "鐐瑰埌鐐硅浆杩�, cntrCode, ""); + } + else + { + result.ResultMsg = $"缁堢偣璐т綅涓嶅瓨鍦ㄦ垨鑰呮湁閿侊紝璐т綅缂栫爜锛歿model.S_END_LOC}"; + } + } + else + { + result.ResultMsg = $"璧风偣璐т綅涓嶅瓨鍦ㄦ垨鑰呮湁閿侊紝璐т綅缂栫爜锛歿model.S_START_LOC}"; + } + return result; + } + //public class AddTaskModel //{ -- Gitblit v1.9.1