diff --git a/Common/AgvHelper.cs b/Common/AgvHelper.cs new file mode 100644 index 0000000..4abcc97 --- /dev/null +++ b/Common/AgvHelper.cs @@ -0,0 +1,103 @@ +using Epost.Model; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Epost.Common +{ + public class AgvHelper + { + HttpHelper http = new HttpHelper(); + #region 生成任务单 + public AgvResultModel genAgvSchedulingTask(AgvReqModel model) + { + string url = string.Empty; + AgvResultModel resmodel = new AgvResultModel(); + try + { + + string postData = JsonHelper.SerializeObject(model); + LogHelper.WriteLogInfo("调用AGV生成任务单接口请求参数" + postData, LogHelper.Log_Type.INFO); + string res = http.HttpPost_Old(url, postData); + LogHelper.WriteLogInfo("调用AGV生成任务单接口返回" + res, LogHelper.Log_Type.INFO); + if (!string.IsNullOrEmpty(res)) + { + resmodel = JsonHelper.DeserializeObject(res); + if (resmodel.code == "0") + { + LogHelper.WriteLogInfo("调用AGV生成任务单接口返回成功", LogHelper.Log_Type.INFO); + } + else + { + + LogHelper.WriteLogInfo("调用AGV生成任务单接口返回失败" + resmodel.message, LogHelper.Log_Type.ERROR); + } + } + else + { + LogHelper.WriteLogInfo("调用AGV生成任务单接口返回失败", LogHelper.Log_Type.ERROR); + } + + return resmodel; + } + catch (Exception ex) + { + resmodel.code = "-1"; + resmodel.message = ex.ToString(); + LogHelper.WriteLogInfo("调用AGV生成任务单接口异常" + ex.ToString(), LogHelper.Log_Type.ERROR); + return resmodel; + } + + + + } + #endregion + + #region 取消任务 + + public AgvResultModel cancelTask(cancelTaskModel model) + { + string url = string.Empty; + AgvResultModel resmodel = new AgvResultModel(); + try + { + string postData = JsonHelper.SerializeObject(model); + LogHelper.WriteLogInfo("调用AGV取消任务接口请求参数" + postData, LogHelper.Log_Type.INFO); + string res = http.HttpPost_Old(url, postData); + LogHelper.WriteLogInfo("调用AGV取消任务接口返回" + res, LogHelper.Log_Type.INFO); + if (!string.IsNullOrEmpty(res)) + { + resmodel = JsonHelper.DeserializeObject(res); + if (resmodel.code == "0") + { + LogHelper.WriteLogInfo("调用AGV取消任务接口返回成功", LogHelper.Log_Type.INFO); + } + else + { + + LogHelper.WriteLogInfo("调用AGV取消任务接口返回失败" + resmodel.message, LogHelper.Log_Type.ERROR); + } + } + else + { + LogHelper.WriteLogInfo("调用AGV取消任务接口返回失败", LogHelper.Log_Type.ERROR); + } + + return resmodel; + } + catch (Exception ex) + { + resmodel.code = "-1"; + resmodel.message = ex.ToString(); + LogHelper.WriteLogInfo("调用AGV取消任务接口异常" + ex.ToString(), LogHelper.Log_Type.ERROR); + return resmodel; + } + + + + } + #endregion + } +} diff --git a/Common/Epost.Common.csproj b/Common/Epost.Common.csproj index 9e3fba7..4fd6707 100644 --- a/Common/Epost.Common.csproj +++ b/Common/Epost.Common.csproj @@ -106,6 +106,7 @@ + diff --git a/Epost.BLL/Epost.BLL.csproj b/Epost.BLL/Epost.BLL.csproj index 1876439..ad34333 100644 --- a/Epost.BLL/Epost.BLL.csproj +++ b/Epost.BLL/Epost.BLL.csproj @@ -99,12 +99,14 @@ + + @@ -112,6 +114,7 @@ + diff --git a/Epost.BLL/InboundOrdersBLL.cs b/Epost.BLL/InboundOrdersBLL.cs new file mode 100644 index 0000000..a234607 --- /dev/null +++ b/Epost.BLL/InboundOrdersBLL.cs @@ -0,0 +1,47 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Epost.DAL; +using Epost.Model; +namespace Epost.BLL +{ + public class InboundOrdersBLL + { + InboundOrdersDAL dal = new InboundOrdersDAL(); + + #region 分页获取订单表列表 + /// + /// 分页获取数据列表 + /// + public List GetOrdersListByPage(string strWhere, string orderby, int pageSize, int pageIndex, out int recordCount) + { + int startIndex = 0; + int endIndex = 0; + if (pageIndex <= 0) + pageIndex = 1; + //计算查询的开始行数与结束行数 + startIndex = (pageIndex - 1) * pageSize + 1; + endIndex = pageIndex * pageSize; + return dal.GetOrdersListByPage(strWhere, orderby, startIndex, endIndex, out recordCount); + } + #endregion + + + #region 查询订单是否已存在 + public DataTable GetOrdersList(string wmsDocNo) + { + return dal.GetOrdersList(wmsDocNo); + } + #endregion + + #region 添加订单 + public bool InsertOrder(DataTable dt, Dictionary diclist) + { + return dal.InsertOrders(dt, diclist); + } + #endregion + } +} diff --git a/Epost.BLL/OrderControlBLL.cs b/Epost.BLL/OrderControlBLL.cs index 126917a..0201758 100644 --- a/Epost.BLL/OrderControlBLL.cs +++ b/Epost.BLL/OrderControlBLL.cs @@ -73,19 +73,18 @@ namespace Epost.BLL { OrisShow = true; workbll.UpdateWorkModel(WorkEcommendType.Create); - //【多少个大区多少个线程】 - List Arealist = addrBLL.GetshelfidList(); - if (Arealist.Any()) - { + ////【多少个大区多少个线程】 + //List Arealist = addrBLL.GetshelfidList(); + //if (Arealist.Any()) + //{ Work_JobDownThread downthread = new Work_JobDownThread(); downthread.tblock = "01|01"; Work_DisplayJobThread jobthread = new Work_DisplayJobThread(); jobthread.tblock = "01|01"; - Work_ScanThread scantherad = new Work_ScanThread(); - scantherad.tblock = "01|01"; - foreach (AddressstorageModel item in Arealist) - { - string block = item.block + "|" + item.shelfid; + + //foreach (AddressstorageModel item in Arealist) + //{ + string block = "01|01"; jobthread = new Work_DisplayJobThread(); jobthread.id = block; jobthread.tblock = block; @@ -101,15 +100,10 @@ namespace Epost.BLL Thread thread = new Thread(new ThreadStart(downthread.Work)); thread.Start(); - scantherad = new Work_ScanThread(); - scantherad.id = block; - scantherad.tblock = block; - scantherad.OrisShow = OrisShow; - Thread scanthread = new Thread(new ThreadStart(scantherad.ScanList)); - scanthread.Start(); - } - } - } + + // } + // } + } } #endregion diff --git a/Epost.BLL/PalletinfoBLL.cs b/Epost.BLL/PalletinfoBLL.cs new file mode 100644 index 0000000..51e0e08 --- /dev/null +++ b/Epost.BLL/PalletinfoBLL.cs @@ -0,0 +1,40 @@ +using Epost.DAL; +using Epost.Model; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Epost.BLL +{ + public class PalletinfoBLL + { + + PalletinfoDAL dal = new PalletinfoDAL(); + #region 分页获取订单表列表 + /// + /// 分页获取数据列表 + /// + public List GetPalletListByPage(string strWhere, string orderby, int pageSize, int pageIndex, out int recordCount) + { + int startIndex = 0; + int endIndex = 0; + if (pageIndex <= 0) + pageIndex = 1; + //计算查询的开始行数与结束行数 + startIndex = (pageIndex - 1) * pageSize + 1; + endIndex = pageIndex * pageSize; + return dal.GetPalletListByPage(strWhere, orderby, startIndex, endIndex, out recordCount); + } + #endregion + + #region 添加订单 + public bool InsertPallet(DataTable dt, Dictionary diclist) + { + return dal.InsertPallet(dt, diclist); + } + #endregion + } +} diff --git a/Epost.BLL/Sys_operate_logBLL.cs b/Epost.BLL/Sys_operate_logBLL.cs new file mode 100644 index 0000000..6d0c14a --- /dev/null +++ b/Epost.BLL/Sys_operate_logBLL.cs @@ -0,0 +1,62 @@ +using Epost.DAL; +using Epost.Model; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Epost.BLL +{ + public class Sys_operate_logBLL + { + + + Sys_operate_logDAL dal = new Sys_operate_logDAL(); + + #region 分页获取订单表列表 + /// + /// 分页获取数据列表 + /// + public List GetLogListByPage(string strWhere, string orderby, int pageSize, int pageIndex, out int recordCount) + { + int startIndex = 0; + int endIndex = 0; + if (pageIndex <= 0) + pageIndex = 1; + //计算查询的开始行数与结束行数 + startIndex = (pageIndex - 1) * pageSize + 1; + endIndex = pageIndex * pageSize; + return dal.GetLogListByPage(strWhere, orderby, startIndex, endIndex, out recordCount); + } + #endregion + + #region 获取日志列表 + public List GetLogDetail(int mid) + { + return dal.GetLogDetail(mid); + } + + #endregion + + + + + #region 添加日志 + public bool InsertLog(string title, string method, string operate_url, string operate_param, string json_result, int status, string error_msg, DateTime addtime) + { + Sys_operate_logModel logmodel = new Sys_operate_logModel(); + logmodel.title = title; + logmodel.method = method; + logmodel.operate_url = operate_url; + logmodel.operate_param = operate_param; + logmodel.json_result = json_result; + logmodel.status = status; + logmodel.error_msg = error_msg; + logmodel.addtime = addtime; + return dal.InsertLogDetail(logmodel); + } + #endregion + + } +} diff --git a/Epost.BLL/Work_DisplayJobThread.cs b/Epost.BLL/Work_DisplayJobThread.cs index 6dce918..c984c59 100644 --- a/Epost.BLL/Work_DisplayJobThread.cs +++ b/Epost.BLL/Work_DisplayJobThread.cs @@ -4,6 +4,7 @@ using Epost.DAL.Enum; using Epost.Model; using Epost.Model.resource; using System; +using System.Collections; using System.Collections.Generic; using System.Data; using System.Linq; @@ -75,170 +76,33 @@ namespace Epost.BLL public void DisplayJob_M(string tblock) { - - try - { - string[] nlist = tblock.Split('|'); - string nblock = nlist[0]; - string shelfid = nlist[1]; - List Arealist = addrBLL.GetAreaList(nblock, shelfid); - foreach (AddressstorageModel item in Arealist) - { - OrdersQueueModel model = new OrdersQueueModel(); ; - model.Taskarea = item.area; - model.Taskblock = nblock; - #region 开始作业 - DataTable queueDT = queueBLL.getQueueOrderState(model); - if (queueDT != null && queueDT.Rows.Count > 0) - { - //当前区没有作业 - if (queueDT.Rows[0]["state"].ToString() == "0") - { - #region 点亮显示器 - ShowMessageModel_M showmodel = new ShowMessageModel_M(); - showmodel.Area = shelfid; - showmodel.Block = nblock; - showmodel.Color = queueDT.Rows[0]["lightcolor"].ToString();//EnumHelper.EMToDescriptionString(LightColor.Color.Red); - showmodel.Contents = queueDT.Rows[0]["sku"].ToString(); - showmodel.Title = queueDT.Rows[0]["Shopid"].ToString(); - showmodel.Islock = true; - - showmodel.IsTwinkle = 0; - showmodel.Type = 8; - DataTable sudt = orderbll.GetSumList("", queueDT.Rows[0]["sku"].ToString(), nblock); - if (sudt != null && sudt.Rows.Count > 0) - { - showmodel.Qty = sudt.Rows[0]["SumQuantity"].ToString(); - } - comBLL.ShowBoxMessage_M(showmodel);//点亮显示标签 - #endregion - displayOrder(queueDT, nblock, item.area, model); - } - } - #endregion - } - } - catch (Exception ex) - { - LogHelper.WriteLogInfo("标签控制异常:" + ex.Message); - - } - - } - - - - #endregion - - #region 点亮设备 - public void displayOrder(DataTable queueDT, string nblock, string narea, OrdersQueueModel model) - { - List list = new List(); - model.Id = Convert.ToInt32(queueDT.Rows[0]["id"].ToString()); - #region 点亮任务 - List jobList = JobCache.GetPlanJobList(); - List isJobList = jobList.FindAll(p => p.Block == nblock && p.Area == narea && p.State != 3); - ShowMessageModel showmodel = new ShowMessageModel(); - //获取当前区任务并加入缓存 - if (!isJobList.Any()) + try { - model.State = 1; - orderbll.GetOrderList(queueDT.Rows[0]["matchid"].ToString(), nblock, queueDT.Rows[0]["sku"].ToString(), narea, queueDT.Rows[0]["usercode"].ToString()); - List nowJoblist = jobList.FindAll(p => p.State == 0 && p.Block == model.Taskblock && p.Area == model.Taskarea); - if (nowJoblist.Any()) - { - var nowmodel = nowJoblist.FirstOrDefault(); - LogHelper.WriteLogInfo("进入任务点亮=====matchid=" + nowmodel.Matchid + "===orderid===" + nowmodel.OrderID + "=====sku==" + nowmodel.Sku + "========"); - #region 点亮任务标签 - foreach (JobModel item in nowJoblist.ToArray()) - { - #region 回显设备锁定 - if (queueDT.Rows[0]["lightcolor"].ToString() == EnumHelper.EMToDescriptionString(LightColor.Color.Blue)) - { + #region 开始作业 + //查询是否有空闲的agv + //查询待执行的任务 + //更新任务状态为执行中 - LabelParamModel locklamodel = new LabelParamModel(); - locklamodel.Address = item.Address.ToString(); - locklamodel.ControlIP = item.ControlIP.ToString(); - locklamodel.Command = "LOCK"; - locklamodel.Parameter = "11111000"; - locklamodel.Type = "N"; - list.Add(locklamodel); - } - #endregion - // else - //{ - List manyJoblist = nowJoblist.FindAll(m => m.Tolocation == item.Tolocation); - int quantity = item.Quantity; - LabelParamModel lamodel = new LabelParamModel(); - lamodel.Address = item.Address.ToString(); - lamodel.ControlIP = item.ControlIP.ToString(); - lamodel.Command = "DISPLAY_JOB"; - #region 同一个货位的数据合并显示 - //if (manyJoblist.Count > 1) - //{ - // if (manyJoblist.FindAll(m => m.State == 0).Any()) - // { - // foreach (JobModel mitem in manyJoblist) - // { - // quantity += mitem.Quantity; - // mitem.State = 1; - // mitem.ManyState = 1; - // } - // } - //} - #endregion - lamodel.Type = "N"; - lamodel.Quantity = quantity.ToString(); - lamodel.Uid = "U" + item.ID; - lamodel.Mode = queueDT.Rows[0]["lightcolor"].ToString() + "0"; - list.Add(lamodel); - //} - item.State = 1; - item.ColorCode = queueDT.Rows[0]["lightcolor"].ToString(); - item.DisplayTime = DateTime.Now; - } - #endregion - #region 点亮通道灯 - comBLL.DISPLAY_LIGHT_BLOCK(model.Taskblock, model.Taskarea, "1"); - #endregion - if (list != null && list.Count > 0) - { - LogHelper.WriteLogInfo("添加到点亮的list————————:" + list.Count); - comBLL.DISPLAY_JOBALL(list); - } - } - else - {//无任务 - LogHelper.WriteLogInfo("点亮====无任务======================="); - model.State = 3; - } #endregion - if (jobList.Any()) - { - - var finishList = jobList.FindAll(p => p.State == 0); - if (!finishList.Any()) - { - queueBLL.UpdateQueueOrderState(model);//缓存队列状态修改 - } - } } - else + catch (Exception ex) { + LogHelper.WriteLogInfo("标签控制异常:" + ex.Message); - LogHelper.WriteLogInfo("还有未完成任务" + isJobList.Count); - foreach (JobModel item in isJobList) - { - LogHelper.WriteLogInfo("还有未完成任务" + item.Address + item.ID); - } } + } + + + #endregion + + } } diff --git a/Epost.BLL/Work_JobDownThread.cs b/Epost.BLL/Work_JobDownThread.cs index 3b48c95..012836b 100644 --- a/Epost.BLL/Work_JobDownThread.cs +++ b/Epost.BLL/Work_JobDownThread.cs @@ -2,6 +2,7 @@ using Epost.DAL.Cache; using Epost.DAL.Enum; using Epost.Model; +using Epost.Model.resource; using System; using System.Collections.Generic; using System.Data; @@ -16,15 +17,9 @@ namespace Epost.BLL { public string tblock, id; public bool OrisShow = false; - OrderBLL orderbll = new OrderBLL(); - OrdersQueueBLL queueBLL = new OrdersQueueBLL(); - CommandBLL comBLL = new CommandBLL(); - JobModelCacheDAL JobCache = new JobModelCacheDAL(); + JobDownCacheDAL downCacheDAL = new JobDownCacheDAL(); - AddressstorageBLL addrBLL = new AddressstorageBLL(); - UserModelCacheDAL UserCacheDAL = new UserModelCacheDAL(); - SkuInfoBLL skuBLL = new SkuInfoBLL(); - ShowMesCacheDAL msgCache = new ShowMesCacheDAL(); + private static object lockJobDown = new object(); private static object showmes = new object(); @@ -52,7 +47,7 @@ namespace Epost.BLL if (!string.IsNullOrEmpty(workstate)) { OrisShow = true; - Job_Down(block.ToString()); + Job_Down(); Thread.Sleep(100); } else @@ -72,1013 +67,43 @@ namespace Epost.BLL } #endregion - #region 标签拍下 - public void Job_Down(string tblock) - { - try - { - string[] nlist = tblock.Split('|'); - string nblock = nlist[0]; - string shelfid = nlist[1]; - List Arealist = addrBLL.GetAreaList(nblock, shelfid); - foreach (AddressstorageModel item in Arealist) - { - List downList = downCacheDAL.GetPlanJobDownList().FindAll(m => m.Status == "0" && m.Block == nblock && m.Area == item.area&&m.Command== "JOB_DONE"); - List jobList = JobCache.GetPlanJobList().FindAll(p => p.Block == nblock && p.Area == item.area); - - if (downList != null && downList.Count > 0) - { - foreach (ResultMessageModel data in downList.ToArray()) - { - LogHelper.WriteLogInfo("完成绑定箱号开始作业=============="); - Work_JobDown(data, jobList); - } - } - - - } - - } - catch (Exception ex) - { - LogHelper.WriteLogInfo("标签拍下异常:" + ex.Message); - - } - - } - - //作业中 - public void Work_JobDown(ResultMessageModel data, List jobList) - { - lock (lockJobDown) - { - try - { - - switch (data.Command) - { - - case "JOB_DONE": - JobDown_M(data, jobList); - break; - - - default: - break; - } - } - catch (Exception ex) - { - LogHelper.WriteLogInfo("Work_JobDown标签拍下异常:" + ex.Message); - - - } - } - } - //绑箱中 - - #endregion - - #region 设备拍下处理 - public void JobDown_M(ResultMessageModel data, List jobList) - { - - //获取标签所在区 - OrdersQueueModel qmodel = new OrdersQueueModel(); - string area = data.Area; - string block = data.Block; - string way = data.Way; - string type = data.Type; - string orderid = string.Empty; - string skulist = string.Empty; - qmodel.Taskarea = area; - qmodel.Taskblock = block; - List endjoblist = jobList.FindAll(m => m.Block == block && m.Area == area && (m.State == 1 || m.State == 0)); - List job = jobList.FindAll(m => m.Block == block && m.Area == area && (m.State == 1 || m.State == 0) && m.Address == data.Address && m.ControlIP == data.IP); - List finjob = jobList.FindAll(m => m.Block == block && m.Area == area && (m.State == 3) && m.Address == data.Address && m.ControlIP == data.IP); - - if (finjob.Any()) - { - JobModel finmodel = finjob.FirstOrDefault(); - qmodel.UserCode = finmodel.UserCode; - qmodel.Sku = finmodel.Sku; - qmodel.Matchid = finmodel.Matchid; - - } - DataTable queueDT = queueBLL.getQueueOrderState(qmodel); - if (queueDT != null && queueDT.Rows.Count > 0) - { - skulist = queueDT.Rows[0]["sku"].ToString(); - LogHelper.WriteLogInfo("=======" + qmodel.UserCode + "=====" + area + "区===sku=" + skulist); - } - - if (data.Loc == "check")//任意回显标签拍下 熄灭回显设备 - { - List rejob = jobList.FindAll(m => m.Block == block && m.Area == area && m.State == 1 && m.Sku == queueDT.Rows[0]["sku"].ToString()); - if (rejob.Any()) - { - JobModel model = rejob.FirstOrDefault(); - comBLL.ClearArea_M(rejob); - //熄灭通道灯 - comBLL.DISPLAY_LIGHT_BLOCK(block, area, "0"); - // comBLL.UNLOCK_M(rejob); - #region 修改任务队列状态 - OrdersQueueModel qumodel = new OrdersQueueModel(); - qumodel.State = 3; - qumodel.Taskblock = block; - qumodel.Taskarea = area; - qumodel.Sku = model.Sku; - qumodel.Matchid = model.Matchid; - qumodel.UserCode = model.UserCode; - queueBLL.UpdateQueueTaskArea_Car(qumodel); - - #endregion - } - #region 清除当前区已做完的sku - JobCache.UpdateJobModelList(rejob, EcommendType.Execute); - #endregion - } - else if (data.Result == "4")//■按键拍下 - { - data.Parameter = "0"; - jobdown_start(data, job, block, area, jobList); - } - else - { - LogHelper.WriteLogInfo("JOB_DOWN开始~~~~~~~~~~~~~~~~"); - if (type != "2" && type != "8")//非显示器拍下 - { - jobdown_start(data, job, block, area, jobList); - } - } - downCacheDAL.UpdateJobDownModelList(new List { data }, EdownCommend.Execute); - } - #endregion - - #region 标签拍下 - - public void jobdown_start(ResultMessageModel data, List job, string block, string area, List jobList) - { - int truequantity = 0; - int checkquantity = 0; - string scanstr = data.Parameter; - if (!string.IsNullOrEmpty(scanstr)) - { - truequantity = Convert.ToInt32(scanstr); - } - if (job.Any()) - { - List downlist = new List(); - JobModel model = job.FirstOrDefault(); - - //List manyList = job.FindAll(m => m.ManyState == 1 && m.Tolocation == model.Tolocation); - //if (manyList.Any())//合并显示数据 - //{ - - // downlist.AddRange(manyList); - // LogHelper.WriteLogInfo("合并显示数据=========="+ manyList .Count+ "=================="); - //} - //else - //{ - downlist.Add(model); - // } - //修改订单状态 - orderbll.UpdateOrderState_Car(downlist, model, truequantity, checkquantity); - LogHelper.WriteLogInfo(data.Address + "=========------------------" + data.Parameter); - bool skuInish = orderbll.IsFinishWork(1, block, "", area, model.Sku); - model.State = 3; - if (skuInish) - { - LogHelper.WriteLogInfo("区SKU拣选完成--------------"); - //删除sku缓存信息 - List scanlist = downCacheDAL.GetPlanJobDownList().FindAll(p => p.Parameter == model.Sku && p.Command == "QUERY_SPECIAL_STATUS" && p.Area == area); - downCacheDAL.UpdateJobDownModelList(scanlist, EdownCommend.Execute); - //熄灭通道灯 - comBLL.DISPLAY_LIGHT_BLOCK(block, area, "0"); - - #region 熄灭当前区显示屏 - List offList = jobList.FindAll(m => m.Block == block && m.Area == area && m.State == 3 && m.Sku == model.Sku); - if (offList.Any()) - { - comBLL.LED_OFF_CLEAR(offList); - } - - ShowMessageModel_M show = new ShowMessageModel_M(); - show.Title = "分播完成"; - show.Contents = "请扫描继续作业"; - show.Color = EnumHelper.EMToDescriptionString(LightColor.Color.Green); - show.Type = 8; - show.Block = block; - show.Islock = false; - show.IsTwinkle = 1; - comBLL.ShowBoxMessage_M(show); - #endregion - - #region 修改任务队列状态 - OrdersQueueModel qumodel = new OrdersQueueModel(); - qumodel.State = 3; - qumodel.Taskblock = block; - qumodel.Taskarea = area; - qumodel.Sku = model.Sku; - qumodel.Matchid = model.Matchid; - qumodel.UserCode = model.UserCode; - queueBLL.UpdateQueueTaskArea_Car(qumodel); - #endregion - - #region 刷新波次信息 - // showSummaryMes(model.Sku, block, area, Convert.ToInt32(block), null, model.Tolocation, model.Matchid); - #endregion - - Thread.Sleep(30); - #region 整条通道当前用户所有任务分播结束 - bool blockfinish = orderbll.IsFinishWorkByCar(1, model.Matchid, block); - if (blockfinish) - { - #region 点亮显示器 - - show.Title = "当前波次分播完成"; - show.Contents = "拍下熄灭所有设备\r请扫描继续作业"; - show.Color = EnumHelper.EMToDescriptionString(LightColor.Color.Green); - show.Qty = "0"; - show.Type = 8; - show.Block = block; - show.Islock = false; - show.IsTwinkle = 1; - - comBLL.ShowBoxMessage_M(show); - #endregion - - bool allfinish = orderbll.IsFinishWorkByCar(1, model.Matchid); - if (allfinish)//判断整个波次是否已完成 - { //更新state状态为已完成 - orderbll.UpdateStateByCar(model.Matchid); - } - //删除波次信息 - List ulist = UserCacheDAL.GetUserCodeList().FindAll(m => m.Block == block); - UserCacheDAL.UpdateUserCodeList(ulist, EUserCommend.Execute); - - } - #endregion - - #region 区内sku播完回传 - // orderbll.UpdateStateByCar(model.Matchid, "", model.Sku); - - #endregion - - #region 清除当前区已做完的sku - JobCache.UpdateJobModelList(offList, EcommendType.Execute); - #endregion - - } - - } - - - } - #endregion - - - - #region 处理扫描条码 - public ResultModel BindJobList(ResultMessageModel data) - { - ResultModel res = new ResultModel(); - res.result = "0"; - try - { - string sblock = data.Block; - string scanStr = data.Parameter.Trim(); - string sarea = data.Area; - string name = string.Empty; - string matchid = string.Empty; - #region 提示请扫描波次号 - List ulist = UserCacheDAL.GetUserCodeList().FindAll(m => m.Block == sblock && m.Area == sarea);// - bool isnum = ConvertHexHelper.IsNum(scanStr.Substring(0, 1));//判断扫描首字母是否是数字 - - if (!ulist.Any()) - { - //手动加波次信息 - DataTable matdt = orderbll.GetMatchOrderList(); - if (matdt != null && matdt.Rows.Count > 0) - { - UserCodeModel umodel = new UserCodeModel(); - umodel.Matchid = matdt.Rows[0]["matchid"].ToString(); - umodel.Block = sblock; - umodel.Area = sarea; - UserCacheDAL.UpdateUserCodeList(new List { umodel }, EUserCommend.Create); - } - } - ulist = UserCacheDAL.GetUserCodeList().FindAll(m => m.Block == sblock && m.Area == sarea); - if (ulist.Any()) - { matchid = ulist.FirstOrDefault().Matchid; } - - #endregion - if (data.Type == "5")//中分扫描枪 - { - - zhongfenBind(ulist, scanStr, data); - downCacheDAL.UpdateJobDownModelList(new List { data }, EdownCommend.Execute); - } - else if (data.Type == "6")//播种扫描枪 - { - - xifenBind(ulist, scanStr, data, matchid, isnum); - - downCacheDAL.UpdateJobDownModelList(new List { data }, EdownCommend.Execute); - } - - - return res; - } - catch (Exception ex) - { - res.result = "-1"; - res.msg = "绑定任务异常"; - LogHelper.WriteLogInfo("绑定任务异常:" + ex.Message); - return res; - } - - } - #endregion - - #region 中分 - - public void zhongfenBind(List ulist, string scanStr, ResultMessageModel data) - { - - //if (ulist.Any()) - //{ - // UserCodeModel usermodel = ulist.FirstOrDefault(); - //if (string.IsNullOrEmpty(usermodel.ZfCode) && scanStr.Substring(0, 1) != "U")// - //{ - // #region 提示先扫描工号 - // ShowMessageModel_M show = new ShowMessageModel_M(); - // show.Title = "请先扫描工号!"; - // show.Contents = ""; - // show.Color = EnumHelper.EMToDescriptionString(LightColor.Color.Red); - // show.Block = sblock; - // show.Type =2; - // show.Area = sarea; - // show.Islock = true; - // comBLL.ShowBoxMessage_M(show); - // downCacheDAL.UpdateJobDownModelList(new List { data }, EdownCommend.Execute); - // #endregion - //} - //else { - - if (scanStr.Substring(0, 1) == "U") - { - #region 扫描工号 - if (ulist.Any()) - { - UserCodeModel umodel = ulist.FirstOrDefault(); - umodel.ZfCode = scanStr; - #region 扫描工号 - ShowMessageModel_M show = new ShowMessageModel_M(); - show.Title = "请扫描sku开始作业!"; - show.Contents = ""; - show.Color = EnumHelper.EMToDescriptionString(LightColor.Color.Red); - show.Block = data.Block; - show.Area = data.Area; - show.Type = 2; - show.Islock = true; - comBLL.ShowBoxMessage_M(show); - #endregion - } - downCacheDAL.UpdateJobDownModelList(new List { data }, EdownCommend.Execute); - #endregion - } - else - { - #region 中分扫描sku - - DataTable sinfodt = skuBLL.GetSkuInfoList(data.Parameter); - //string location = string.Empty; - if (sinfodt != null && sinfodt.Rows.Count > 0) - { - scanStr = sinfodt.Rows[0]["sku"].ToString(); - // location = data.Parameter;// sinfodt.Rows[0]["tolocation"].ToString(); - } - LogHelper.WriteLogInfo("中分" + data.Parameter + "===SKU" + scanStr); - List Arealist = addrBLL.GetAreaList(); - if (Arealist.Any()) - { - foreach (AddressstorageModel item in Arealist) - { - DataTable skudt = orderbll.GetSumList("", scanStr, item.block, item.area); - if (skudt != null && skudt.Rows.Count > 0) - { - //规格 - int discount = Convert.ToInt32(skudt.Rows[0]["discount"].ToString()); - //整件总数 - int SumCkQuantity = 0;//= Convert.ToInt32(skudt.Rows[0]["SumCkQuantity"].ToString()); - //散件总数 - int SumQuantity = Convert.ToInt32(skudt.Rows[0]["SumQuantity"].ToString()); - //if (discount != 1) - //{ - // if (SumQuantity >= discount) - // { - - // SumCkQuantity = SumQuantity / discount; - // SumQuantity = SumQuantity % discount; - // } - //} - - - - ShowMessageModel_M show = new ShowMessageModel_M(); - show.Title = skudt.Rows[0]["goodsname"].ToString(); - show.Color = EnumHelper.EMToDescriptionString(LightColor.Color.Red); - show.Block = item.block; - show.Islock = true; - show.Contents = data.Parameter + "(" + scanStr + ")\r";// + "规格:" + discount; - show.Qty = SumQuantity.ToString(); - show.Wholeqty = SumCkQuantity; - show.Unit = "件"; - show.Wholeunit = "箱"; - show.Type = 2; - comBLL.ShowBoxMessage_M(show); - } - else - { - ShowMessageModel_M show = new ShowMessageModel_M(); - show.Title = "SKU" + scanStr + "无任务!"; - show.Color = EnumHelper.EMToDescriptionString(LightColor.Color.Red); - show.Block = item.block; - show.Islock = true; - show.Contents = "请扫描其他商品!"; - show.Type = 2; - comBLL.ShowBoxMessage_M(show); - } - } - } - - #endregion - } - - - } - #endregion - - #region 细分播种 - public void xifenBind(List ulist, string scanStr, ResultMessageModel data, string matchid, bool isnum) - { - //if (ulist.Any()) - //{ - // UserCodeModel usermodel = ulist.FirstOrDefault(); - //if (string.IsNullOrEmpty(usermodel.UserCode) && scanStr.Substring(0, 1) != "U")// - //{ - // #region 提示先扫描工号 - // ShowMessageModel_M show = new ShowMessageModel_M(); - // show.Title = "请先扫描工号!"; - // show.Contents = ""; - // show.Color = EnumHelper.EMToDescriptionString(LightColor.Color.Red); - // show.Block = sblock; - // show.Area = sarea; - // show.Type = 8; - // show.Islock = true; - // comBLL.ShowBoxMessage_M(show); - // downCacheDAL.UpdateJobDownModelList(new List { data }, EdownCommend.Execute); - // #endregion - //} - //else - //{ - - if (scanStr.Substring(0, 1) == "U") - { - #region 扫描工号 - if (ulist.Any()) - { - UserCodeModel umodel = ulist.FirstOrDefault(); - umodel.UserCode = scanStr; - #region 扫描工号 - ShowMessageModel_M show = new ShowMessageModel_M(); - show.Title = "请扫描sku开始作业!"; - show.Contents = ""; - show.Color = EnumHelper.EMToDescriptionString(LightColor.Color.Red); - show.Block = data.Block; - show.Area = data.Area; - show.Type = 8; - show.Islock = true; - - comBLL.ShowBoxMessage_M(show); - #endregion - } - downCacheDAL.UpdateJobDownModelList(new List { data }, EdownCommend.Execute); - #endregion - } - else - { - - #region 扫描商品 - - List hangList = downCacheDAL.GetPlanJobDownList().FindAll(m => m.Parameter == "888888"); - - if (hangList.Any()) - { - - #region 挂起 - LogHelper.WriteLogInfo("挂起" + data.Parameter + "-------通道" + data.Block); - LabelParamModel FORMATEModel = new LabelParamModel(); - FORMATEModel.ControlIP = data.IP; - comBLL.FORMATE_JOB_DATA(FORMATEModel); - - - DataTable qdt = queueBLL.getQueuesOrderbyState(data.Block, data.Area, "1"); - if (qdt != null && qdt.Rows.Count > 0) - { - scanStr = qdt.Rows[0]["sku"].ToString(); - - // data.Parameter = scanStr; - Hangup_SKU(scanStr, data.Block, data.Area); - //删除sku对应缓存 - List sdown = downCacheDAL.GetPlanJobDownList().FindAll(p => p.Parameter == scanStr || p.Parameter == qdt.Rows[0]["location"].ToString()); - downCacheDAL.UpdateJobDownModelList(sdown, EdownCommend.Execute); - } - downCacheDAL.UpdateJobDownModelList(hangList, EdownCommend.Execute); - //刷新波次 - GetMatchOrder(); - #endregion - - } - else if (isnum)//sku - { - #region 扫描SKU - //根据扫描商品内码获取商品码 - data.ScanCode = data.Parameter; - DataTable sinfodt = skuBLL.GetSkuInfoList(data.Parameter); - string location = string.Empty; - if (sinfodt != null && sinfodt.Rows.Count > 0) - { - scanStr = sinfodt.Rows[0]["sku"].ToString(); - location = data.Parameter;// sinfodt.Rows[0]["tolocation"].ToString(); - } - data.Parameter = scanStr; - DataTable skudt = queueBLL.GetOrderQueue(data.Block, data.Area, "3"); - List scanlist = downCacheDAL.GetPlanJobDownList().FindAll(m => m.Address == data.Address && m.Parameter == scanStr && m.Parameter != "888888" && m.Block == data.Block && m.Area == data.Area); - - if (scanlist.Count > 1 || (skudt != null && skudt.Rows.Count > 0)) - { //重复扫描 - //ShowMessageModel_M show = new ShowMessageModel_M(); - //show.Title = scanStr + "重复扫描/已拣配!"; - //show.Color = EnumHelper.EMToDescriptionString(LightColor.Color.Red); - //show.Block = sblock; - //show.Area = sarea; - //show.Type = 8; - //comBLL.ShowBoxMessage_M(show); - downCacheDAL.UpdateJobDownModelList(new List { data }, EdownCommend.Execute); - - } - else - { - - DataTable OrderDt = orderbll.GetOrderList_Car(matchid, scanStr, data.Area, data.Block); - if (OrderDt != null && OrderDt.Rows.Count > 0) - { - - if (ulist.Any()) - { - UserCodeModel umodel = ulist.FirstOrDefault(); - data.Port = OrderDt.Rows[0]["matchid"].ToString(); - OrdersQueueModel qmodel = new OrdersQueueModel(); - qmodel.Sku = scanStr; - qmodel.Taskblock = data.Block; - qmodel.Taskarea = data.Area; - qmodel.UserCode = umodel.UserCode; - qmodel.Matchid = umodel.Matchid; - qmodel.Location = location; - qmodel.Lightcolor = EnumHelper.EMToDescriptionString(LightColor.Color.Red); - queueBLL.insertQueueOrders(qmodel); - //提示需要拣货总量/商品名称 - showSummaryMes(scanStr, data.Block, data.Area, 1, data, "", OrderDt.Rows[0]["matchid"].ToString()); - - } - else - { - LogHelper.WriteLogInfo("未扫描波次信息", LogHelper.Log_Type.ERROR); - } - - } - else - { - #region 回显 - DataTable echoDt = orderbll.GetOrderList_echo(matchid, scanStr, data.Area, data.Block); - if (echoDt != null && echoDt.Rows.Count > 0) - { - - if (ulist.Any()) - { - UserCodeModel umodel = ulist.FirstOrDefault(); - data.Port = echoDt.Rows[0]["matchid"].ToString(); - OrdersQueueModel qmodel = new OrdersQueueModel(); - qmodel.Sku = scanStr; - qmodel.Taskblock = data.Block; - qmodel.Taskarea = data.Area; - qmodel.UserCode = umodel.UserCode; - qmodel.Matchid = umodel.Matchid; - // qmodel.Location = location; - qmodel.Lightcolor = EnumHelper.EMToDescriptionString(LightColor.Color.Blue); - queueBLL.insertQueueOrders(qmodel); - //提示需要拣货总量/商品名称 - Mes_Echo(scanStr, data.Block, data.Area, 1, data, "", echoDt.Rows[0]["matchid"].ToString(), false); - - } - else - { - LogHelper.WriteLogInfo("未扫描波次信息", LogHelper.Log_Type.ERROR); - } - - } - else - { - - //提示无任务 - ShowMessageModel_M show = new ShowMessageModel_M(); - show.Title = "商品:" + scanStr + "当前区无任务!"; - show.Color = EnumHelper.EMToDescriptionString(LightColor.Color.Red); - show.Block = data.Block; - show.Area = data.Area; - show.Type = 8; - show.Islock = false; - comBLL.ShowBoxMessage_M(show); - downCacheDAL.UpdateJobDownModelList(new List { data }, EdownCommend.Execute); - } - - #endregion - } - - } - - - #endregion - - } - #endregion - } - - } - #endregion - #region 复核显示 - public void Mes_Echo(string scanStr, string sblock, string sarea, int type, ResultMessageModel data = null, string location = "", string matchid = "", bool islock = true) - { - - DataTable sudt = orderbll.GetSumList_Echo("", scanStr, sblock); - if (type == 2) - { - sudt = orderbll.GetSumList_Echo("", scanStr, sblock, sarea); - } - //查询当前区任务队列 - DataTable qdt = queueBLL.getQueuesOrderbyState(sblock, sarea, "1"); - if (sudt != null && sudt.Rows.Count > 0) - { - matchid = sudt.Rows[0]["matchid"].ToString(); - string sku = string.Empty; - string qty = string.Empty; - string color = string.Empty; - if (qdt != null && qdt.Rows.Count > 0) - { - sku = qdt.Rows[0]["sku"].ToString(); - qty = sudt.Rows[0]["SumQuantity"].ToString(); - color = qdt.Rows[0]["LightColor"].ToString(); - } - - //规格 - int discount = Convert.ToInt32(sudt.Rows[0]["discount"].ToString()); - //整件总数 - int SumCkQuantity = 0;// Convert.ToInt32(sudt.Rows[0]["SumCkQuantity"].ToString()); - //散件总数 - int SumQuantity = Convert.ToInt32(sudt.Rows[0]["SumQuantity"].ToString()); - //if (discount != 1) - //{ - // if (SumQuantity >= discount) - // { - - // SumCkQuantity = SumQuantity / discount; - // SumQuantity = SumQuantity % discount; - // } - //} - - - ShowMessageModel_M show = new ShowMessageModel_M(); - show.Title = sudt.Rows[0]["goodsname"].ToString(); - string mes = "复核显示"; - islock = false; - - if (qdt != null && qdt.Rows.Count > 0) - { - show.Contents = qdt.Rows[0]["location"].ToString() + "(" + scanStr + ")" + "\r" + mes;//sudt.Rows[0]["goodscode"].ToString().Replace(';','\r'); - } - if (data != null) - { - - show.Contents = data.ScanCode + "(" + scanStr + ")" + "\r" + mes; - sku = data.Parameter; - } - show.Color = EnumHelper.EMToDescriptionString(LightColor.Color.Blue); - show.Qty = SumQuantity.ToString(); - show.Wholeqty = SumCkQuantity; - show.Unit = "件"; - show.Type = 8; - show.Wholeunit = "箱"; - show.Block = sblock; - show.Area = sarea; - show.Islock = islock; - show.Location = "check"; - //ShowMesModel megmodel = new ShowMesModel(); - //megmodel.Qty = sudt.Rows[0]["SumQuantity"].ToString(); - //megmodel.Sku = sku; - //megmodel.Area = sarea; - //megmodel.Block = sblock; - //megmodel.Matchid = matchid; - - // msgCache.UpdateMsgModelList(new List { megmodel }, EmsgCommend.Create); - comBLL.ShowBoxMessage_M(show); - - if (data != null) - { - - data.Status = "1"; - } - - - } - else - { - - //查询当前区任务队列 - DataTable finshqdt = queueBLL.getQueuesOrderbyState(sblock, sarea, "3"); - ShowMessageModel_M show = new ShowMessageModel_M(); - //根据sku获取商品名称 - string goodsname = orderbll.GetGoodsname(location); - show.Title = goodsname + "分播完成"; - show.Contents = scanStr + "\r请扫描继续作业"; - show.Color = EnumHelper.EMToDescriptionString(LightColor.Color.Red); - show.Qty = "0"; - show.Type = 8; - show.Block = sblock; - show.Area = sarea; - show.Islock = true; - comBLL.ShowBoxMessage_M(show); - } - } - #endregion - - #region 订单显示器中分提示 - /// - /// 订单显示器中分提示 - /// - /// - /// - /// - /// type=1查询整个通道block的汇总数量,type=2查询当前通道下某 一区area的汇总数量 - /// - public void showSummaryMes(string scanStr, string sblock, string sarea, int type, ResultMessageModel data = null, string location = "", string matchid = "", bool islock = true) + #region 任务执行状态更新 + public void Job_Down() { try { - lock (showmes) + List downList = downCacheDAL.GetPlanJobDownList().FindAll(m => m.Status == "0" && m.Command == "JOB_DONE"); + if (downList != null && downList.Count > 0) { - bool bo = orderbll.isTask(sblock, sarea); - string msg = string.Empty; - if (!bo) + foreach (ResultMessageModel data in downList.ToArray()) { - msg = "当前商品无任务\r请送至下一区"; - } - DataTable sudt = orderbll.GetSumList("", scanStr, sblock); - if (type == 2) - { - sudt = orderbll.GetSumList("", scanStr, sblock, sarea); - } - //查询当前区任务队列 - DataTable qdt = queueBLL.getQueuesOrderbyState(sblock, sarea, "1"); - - - if (sudt != null && sudt.Rows.Count > 0) - { - matchid = sudt.Rows[0]["matchid"].ToString(); - string showqty = string.Empty; - string showsku = string.Empty; - List msglist = msgCache.GetMsgList().FindAll(p => p.Block == sblock && p.Area == sarea && p.Matchid == matchid && p.Sku == scanStr); - if (msglist.Any()) + if (data.Status == "start") { - ShowMesModel showmodel = msglist.FirstOrDefault(); - showqty = showmodel.Qty; - showsku = showmodel.Sku; } - //////qdt.Rows[0]["sku"].ToString() 为null data.ScanCode - - string sku = string.Empty; - string qty = string.Empty; - string color = string.Empty; - if (qdt != null && qdt.Rows.Count > 0) - { - sku = qdt.Rows[0]["sku"].ToString(); - qty = sudt.Rows[0]["SumQuantity"].ToString(); - color = qdt.Rows[0]["LightColor"].ToString(); - + else if (data.Status == "outbin") { } + else if (data.Status == "end") { + //更新任务已完成 } - //规格 - int discount = Convert.ToInt32(sudt.Rows[0]["discount"].ToString()); - //整件总数 - int SumCkQuantity = 0; //Convert.ToInt32(sudt.Rows[0]["SumCkQuantity"].ToString()); - //散件总数 - int SumQuantity = Convert.ToInt32(sudt.Rows[0]["SumQuantity"].ToString()); - //if (discount != 1) - //{ - // if (SumQuantity >= discount) - // { - // SumCkQuantity = SumQuantity / discount; - // SumQuantity = SumQuantity % discount; - // } - //} - - ShowMessageModel_M show = new ShowMessageModel_M(); - show.Title = sudt.Rows[0]["goodsname"].ToString(); - string mes = "拣货任务"; - - if (qdt != null && qdt.Rows.Count > 0) - { - show.Contents = qdt.Rows[0]["location"].ToString() + "(" + scanStr + ")" + "\r" + mes;//sudt.Rows[0]["goodscode"].ToString().Replace(';','\r'); - } - if (data != null) - { - show.Contents = data.ScanCode + "(" + scanStr + ")" + "\r" + mes;// sudt.Rows[0]["goodscode"].ToString().Replace(';', '\r'); - sku = data.Parameter; - } - show.Color = EnumHelper.EMToDescriptionString(LightColor.Color.Green); - show.Qty = SumQuantity.ToString(); - - show.Wholeqty = SumCkQuantity; - show.Unit = "件"; - show.Type = 8; - show.Wholeunit = "箱"; - show.Block = sblock; - show.Area = sarea; - show.Islock = islock; - ShowMesModel megmodel = new ShowMesModel(); - megmodel.Qty = sudt.Rows[0]["SumQuantity"].ToString(); - megmodel.Sku = sku; - megmodel.Area = sarea; - megmodel.Block = sblock; - megmodel.Matchid = matchid; - - msgCache.UpdateMsgModelList(new List { megmodel }, EmsgCommend.Create); - comBLL.ShowBoxMessage_M(show); - - if (data != null) - { - - data.Status = "1"; - } - - - } - else - { - - //查询当前区任务队列 - DataTable finshqdt = queueBLL.getQueuesOrderbyState(sblock, sarea, "3"); - ShowMessageModel_M show = new ShowMessageModel_M(); - //根据sku获取商品名称 - string goodsname = orderbll.GetGoodsname(location); - show.Title = goodsname + "分播完成"; - show.Contents = scanStr + "\r请扫描继续作业"; - show.Color = EnumHelper.EMToDescriptionString(LightColor.Color.Green); - show.Qty = "0"; - show.Type = 8; - show.Block = sblock; - show.Area = sarea; - show.Islock = true; - comBLL.ShowBoxMessage_M(show); + else if (data.Status == "cancel") { } + else { } } } } catch (Exception ex) { - LogHelper.WriteLogInfo("刷新显示器异常:" + ex.Message); + LogHelper.WriteLogInfo("任务状态更新异常:" + ex.Message); } - } - #endregion - - #region SKU挂起/缺货 - public void Hangup_SKU(string sku, string block, string area, ResultMessageModel data = null) - { - List list = new List(); - //查询当前通道sku是否有任务 - DataTable dt = orderbll.getOrderListBysku(block, sku); - if (dt != null && dt.Rows.Count > 0) - { - // 将当前通道所有sku正在亮的设备熄灭 - foreach (DataRow item in dt.Rows) - { - if (item["oprationstate"].ToString() == "1") - { - LabelParamModel lamodel = new LabelParamModel(); - lamodel.Address = item["address"].ToString(); ; - lamodel.ControlIP = item["ControlIP"].ToString(); - lamodel.Command = "REMOVE_JOB"; - lamodel.Parameter = "01"; - list.Add(lamodel); - orderbll.UpOrderStateBybat(item["id"].ToString()); - } - } - if (list != null && list.Count > 0) - { - LogHelper.WriteLogInfo("挂起list——" + sku + "——————————————————:" + list.Count); - comBLL.DISPLAY_JOBALL(list); - } - } - - - //删除缓存中sku记录 - List jobList = JobCache.GetPlanJobList(); - List relist = jobList.FindAll(m => m.Sku == sku && m.Block == block); - JobModel model = new JobModel(); - if (relist.Any()) - { - model = relist.FirstOrDefault(); - JobCache.UpdateJobModelList(relist, EcommendType.Complete); - //删除Orderqueue中sku的记录 - bool bo = queueBLL.DelQueueOrder(sku, block); - LogHelper.WriteLogInfo("删除queue返回" + bo); - } - else - { - ShowMessageModel_M show = new ShowMessageModel_M(); - show.Title = "挂起商品:" + sku + "错误!"; - show.Color = EnumHelper.EMToDescriptionString(LightColor.Color.Red); - show.Block = block; - show.Area = area; - show.Type = 8; - show.Islock = true; - comBLL.ShowBoxMessage_M(show); - } - //downCacheDAL.GetPlanJobDownList().FindAll(p => p.Parameter == sku && p.Block == block); - } - - #endregion - - #region 查询波次通道列表 - public void GetMatchOrder() - { - DataTable dt = orderbll.GetMatchOrder(); - if (dt != null && dt.Rows.Count > 0) - { - foreach (DataRow item in dt.Rows) - { - ShowMatchMessage(item["matchid"].ToString(), item["workblock"].ToString()); - } - } } + + + #endregion + - #region 显示波次信息 - public void ShowMatchMessage(string scanStr, string sblock) - { - DataTable areadt = orderbll.GetAreaByMatch(scanStr, sblock); - if (areadt != null && areadt.Rows.Count > 0) - { - foreach (DataRow item in areadt.Rows) - { - UserCodeModel umodel = new UserCodeModel(); - umodel.Matchid = scanStr; - umodel.Block = item["block"].ToString(); - umodel.Area = item["area"].ToString(); - UserCacheDAL.UpdateUserCodeList(new List { umodel }, EUserCommend.Create); - - //提示扫工号 - ShowMessageModel_M xshow = new ShowMessageModel_M(); - xshow.Title = "请扫描工号/SKU开始作业"; - xshow.Color = EnumHelper.EMToDescriptionString(LightColor.Color.Red); - xshow.Block = item["block"].ToString(); - xshow.Area = item["area"].ToString(); - // xshow.Area = sarea; - xshow.Type = 8; - xshow.Islock = true; - comBLL.ShowBoxMessage_M(xshow); - } - } - DataTable sumlist = orderbll.GetMatchSumList(scanStr, sblock); - if (sumlist != null && sumlist.Rows.Count > 0) - { - ShowMessageModel_M show = new ShowMessageModel_M(); - show.Title = "波次号:" + scanStr; - show.Color = EnumHelper.EMToDescriptionString(LightColor.Color.Red); - show.Block = sblock; - show.Type = 2; - show.Islock = true; - // string qty = ConvertHexHelper.ConvertString(sumlist.Rows[0]["incompleteCount"].ToString(), 10, 16); //拣货数量 - show.Qty = sumlist.Rows[0]["incompleteCount"].ToString(); - show.Location = sumlist.Rows[0]["completeCount"].ToString(); - show.Contents = "SKU总数:" + sumlist.Rows[0]["completeCount"].ToString() + "\rSKU待播数:" + sumlist.Rows[0]["incompleteCount"].ToString(); - comBLL.ShowBoxMessage_M(show); - - // downCacheDAL.UpdateJobDownModelList(new List { data }, EdownCommend.Execute); - } - } - #endregion + + } } diff --git a/Epost.DAL/Epost.DAL.csproj b/Epost.DAL/Epost.DAL.csproj index fba6c4e..36760c2 100644 --- a/Epost.DAL/Epost.DAL.csproj +++ b/Epost.DAL/Epost.DAL.csproj @@ -127,9 +127,11 @@ + + @@ -140,6 +142,7 @@ + diff --git a/Epost.DAL/InboundOrdersDAL.cs b/Epost.DAL/InboundOrdersDAL.cs new file mode 100644 index 0000000..fa8831b --- /dev/null +++ b/Epost.DAL/InboundOrdersDAL.cs @@ -0,0 +1,83 @@ +using Epost.Common; +using Epost.Model; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Epost.DAL +{ + + public class InboundOrdersDAL + { + DataBaseOpration.OprationSqlDAL db = DB_DLL.GetInstance(); + #region 分页获取订单表列表 + + public List GetOrdersListByPage(string strWhere, string orderby, int startIndex, int endIndex, out int recordCount) + { + + try + { + StringBuilder strSql = new StringBuilder(); + strSql.Append("SELECT * FROM ( "); + strSql.Append(" SELECT ROW_NUMBER() OVER ("); + if (!string.IsNullOrEmpty(orderby.Trim())) + { + strSql.Append("order by T." + orderby); + } + else + { + strSql.Append("order by id desc"); + } + strSql.Append(")AS Row, T.* from inboundorders T WITH(NOLOCK) "); + if (!string.IsNullOrEmpty(strWhere.Trim())) + { + strSql.Append(" WHERE 1=1 " + strWhere); + } + strSql.Append(" ) TT"); + strSql.AppendFormat(" WHERE TT.Row between {0} and {1}", startIndex, endIndex); + List list = ModelConvertHelper.ConvertToList(db.GetsqlForDT(strSql.ToString())); + + strSql.Remove(0, strSql.Length); + strSql.Append("SELECT COUNT(*) FROM inboundorders AS T "); + if (!string.IsNullOrEmpty(strWhere.Trim())) + { + strSql.AppendFormat(" WHERE 1=1 {0}", strWhere); + } + + object obj = db.GetsqlForDT(strSql.ToString()).Rows[0][0]; + if (obj != null) + recordCount = Convert.ToInt32(obj); + else + recordCount = 0; + + return list; + } + catch (Exception ex) + { + LogHelper.WriteLog(GetType(), ex.Message); + recordCount = 0; + return new List(); + } + + } + #endregion + #region 查询订单是否已存在 + public DataTable GetOrdersList(string wmsDocNo) + { + string sql = string.Format("select top 1 * from InboundOrders where wmsDocNo = '{0}'", + wmsDocNo); + return db.GetsqlForDT(sql); + } + #endregion + + #region 添加订单 + public bool InsertOrders(DataTable dt, Dictionary diclist) + { + return db.UpdateData(dt, "InboundOrders", diclist); + } + #endregion + } +} diff --git a/Epost.DAL/PalletinfoDAL.cs b/Epost.DAL/PalletinfoDAL.cs new file mode 100644 index 0000000..93fdbed --- /dev/null +++ b/Epost.DAL/PalletinfoDAL.cs @@ -0,0 +1,76 @@ +using Epost.Common; +using Epost.Model; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Epost.DAL +{ + public class PalletinfoDAL + { + + + DataBaseOpration.OprationSqlDAL db = DB_DLL.GetInstance(); + #region 分页获取订单表列表 + + public List GetPalletListByPage(string strWhere, string orderby, int startIndex, int endIndex, out int recordCount) + { + + try + { + StringBuilder strSql = new StringBuilder(); + strSql.Append("SELECT * FROM ( "); + strSql.Append(" SELECT ROW_NUMBER() OVER ("); + if (!string.IsNullOrEmpty(orderby.Trim())) + { + strSql.Append("order by T." + orderby); + } + else + { + strSql.Append("order by id desc"); + } + strSql.Append(")AS Row, T.* from Palletinfo T WITH(NOLOCK) "); + if (!string.IsNullOrEmpty(strWhere.Trim())) + { + strSql.Append(" WHERE 1=1 " + strWhere); + } + strSql.Append(" ) TT"); + strSql.AppendFormat(" WHERE TT.Row between {0} and {1}", startIndex, endIndex); + List list = ModelConvertHelper.ConvertToList(db.GetsqlForDT(strSql.ToString())); + + strSql.Remove(0, strSql.Length); + strSql.Append("SELECT COUNT(*) FROM Palletinfo AS T "); + if (!string.IsNullOrEmpty(strWhere.Trim())) + { + strSql.AppendFormat(" WHERE 1=1 {0}", strWhere); + } + + object obj = db.GetsqlForDT(strSql.ToString()).Rows[0][0]; + if (obj != null) + recordCount = Convert.ToInt32(obj); + else + recordCount = 0; + + return list; + } + catch (Exception ex) + { + LogHelper.WriteLog(GetType(), ex.Message); + recordCount = 0; + return new List(); + } + + } + #endregion + + #region 添加订单 + public bool InsertPallet(DataTable dt, Dictionary diclist) + { + return db.UpdateData(dt, "Palletinfo", diclist); + } + #endregion + } +} diff --git a/Epost.DAL/Sys_operate_logDAL.cs b/Epost.DAL/Sys_operate_logDAL.cs new file mode 100644 index 0000000..5e50f02 --- /dev/null +++ b/Epost.DAL/Sys_operate_logDAL.cs @@ -0,0 +1,104 @@ +using Epost.Common; +using Epost.Model; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Epost.DAL +{ + public class Sys_operate_logDAL + { + + + DataBaseOpration.OprationSqlDAL db = DB_DLL.GetInstance(); + #region 分页获取日志列表 + + public List GetLogListByPage(string strWhere, string orderby, int startIndex, int endIndex, out int recordCount) + { + + try + { + StringBuilder strSql = new StringBuilder(); + strSql.Append("SELECT * FROM ( "); + strSql.Append(" SELECT ROW_NUMBER() OVER ("); + if (!string.IsNullOrEmpty(orderby.Trim())) + { + strSql.Append("order by T." + orderby); + } + else + { + strSql.Append("order by id desc"); + } + strSql.Append(")AS Row, T.* from Sys_operate_log T WITH(NOLOCK) "); + if (!string.IsNullOrEmpty(strWhere.Trim())) + { + strSql.Append(" WHERE 1=1 " + strWhere); + } + strSql.Append(" ) TT"); + strSql.AppendFormat(" WHERE TT.Row between {0} and {1}", startIndex, endIndex); + List list = ModelConvertHelper.ConvertToList(db.GetsqlForDT(strSql.ToString())); + + strSql.Remove(0, strSql.Length); + strSql.Append("SELECT COUNT(*) FROM Sys_operate_log AS T "); + if (!string.IsNullOrEmpty(strWhere.Trim())) + { + strSql.AppendFormat(" WHERE 1=1 {0}", strWhere); + } + + object obj = db.GetsqlForDT(strSql.ToString()).Rows[0][0]; + if (obj != null) + recordCount = Convert.ToInt32(obj); + else + recordCount = 0; + + return list; + } + catch (Exception ex) + { + LogHelper.WriteLog(GetType(), ex.Message); + recordCount = 0; + return new List(); + } + + } + #endregion + + #region 获取日志明细 + + public List GetLogDetail(int mid) + { + string sql = string.Format("select * from Sys_operate_log where ID='" + mid + "'"); + DataTable dt = db.GetsqlForDT(sql); + return ModelConvertHelper.ConvertToList(dt); + } + #endregion + + + #region 添加日志 + public bool InsertLogDetail(Sys_operate_logModel model) + { + string sql = string.Format("insert into Sys_operate_log([title],[method],[operate_url],[operate_param],[json_result],[status],[error_msg],[addtime]) " + + "values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}' )", + model.title, model.method, model.operate_url, model.operate_param, model.json_result, model.status, model.error_msg, model.addtime); + long x = db.UpdateSql(sql); + + if (x > 0) + { + return true; + + } + else + { + LogHelper.WriteLogInfo("添加日志失败" + sql); + return false; + + } + + } + + #endregion + } +} diff --git a/Epost.Model/AgvReqModel.cs b/Epost.Model/AgvReqModel.cs new file mode 100644 index 0000000..969cefc --- /dev/null +++ b/Epost.Model/AgvReqModel.cs @@ -0,0 +1,104 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Epost.Model +{ + public class AgvReqModel + { + } + + #region 生成任务单 + public class AgvSchedulingTaskModel + { + public string reqCode { get; set; } + public string reqTime { get; set; } + public string clientCode { get; set; } + public string tokenCode { get; set; } + public string taskTyp { get; set; } + public string ctnrTyp { get; set; } + public string ctnrCode { get; set; } + public string ctnrNum { get; set; } + public string taskMode { get; set; } + public string wbCode { get; set; } + public List positionCodePath { get; set; } + public string podCode { get; set; } + public string podDir { get; set; } + public string podTyp { get; set; } + public string materialLot { get; set; } + public string materialType { get; set; } + public string priority { get; set; } + public string agvCode { get; set; } + public string taskCode { get; set; } + public string groupId { get; set; } + public string agvTyp { get; set; } + public string positionSelStrategy { get; set; } + public string data { get; set; } + } + + public class Positioncodepath + { + public string positionCode { get; set; } + public string type { get; set; } + } + + + + public class AgvResultModel + { + public string code { get; set; } + public string data { get; set; } + public string message { get; set; } + public string reqCode { get; set; } + } + + #endregion + + #region 取消任务 + + public class cancelTaskModel + { + public string reqCode { get; set; } + public string reqTime { get; set; } + public string clientCode { get; set; } + public string tokenCode { get; set; } + public string forceCancel { get; set; } + public string matterArea { get; set; } + public string agvCode { get; set; } + public string taskCode { get; set; } + } + + #endregion + + #region 任务执行通知 + + public class agvCallbackModel + { + public string reqCode { get; set; } + public string reqTime { get; set; } + public string cooX { get; set; } + public string cooY { get; set; } + public string currentPositionCode { get; set; } + public string data { get; set; } + public string mapCode { get; set; } + public string mapDataCode { get; set; } + public string stgBinCode { get; set; } + public string method { get; set; } + public string podCode { get; set; } + public string podDir { get; set; } + public string robotCode { get; set; } + public string taskCode { get; set; } + public string wbCode { get; set; } + public string materialLot { get; set; } + public string materialType { get; set; } + public string ctnrCode { get; set; } + public string ctnrType { get; set; } + public string roadWayCode { get; set; } + public string seq { get; set; } + public string eqpCode { get; set; } + } + + #endregion +} diff --git a/Epost.Model/Epost.Model.csproj b/Epost.Model/Epost.Model.csproj index 5291b83..ca56f42 100644 --- a/Epost.Model/Epost.Model.csproj +++ b/Epost.Model/Epost.Model.csproj @@ -84,6 +84,7 @@ + @@ -97,6 +98,7 @@ + @@ -114,6 +116,7 @@ + @@ -132,6 +135,8 @@ + + diff --git a/Epost.Model/InboundOrdersModel.cs b/Epost.Model/InboundOrdersModel.cs new file mode 100644 index 0000000..0639a36 --- /dev/null +++ b/Epost.Model/InboundOrdersModel.cs @@ -0,0 +1,44 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Epost.Model +{ + public class InboundOrdersModel : Base + { + int _id = 0; + string _wmsDocNo = string.Empty; + string _groupTaskId = string.Empty; + string _palletId = string.Empty; + string _spositionCode = string.Empty; + string _dpositionCode = string.Empty; + string _priority = string.Empty; + string _taskType = string.Empty; + string _userId = string.Empty; + string _userName = string.Empty; + string _notes = string.Empty; + string _warehouseId = string.Empty; + int _state; + private Nullable _addtime; + private Nullable _endtime; + private Nullable _operationtime; + public int id { get => _id; set => _id = value; } + public string wmsDocNo { get => _wmsDocNo; set => _wmsDocNo = value; } + public string groupTaskId { get => _groupTaskId; set => _groupTaskId = value; } + public string palletId { get => _palletId; set => _palletId = value; } + public string spositionCode { get => _spositionCode; set => _spositionCode = value; } + public string dpositionCode { get => _dpositionCode; set => _dpositionCode = value; } + public string priority { get => _priority; set => _priority = value; } + public string taskType { get => _taskType; set => _taskType = value; } + public string userId { get => _userId; set => _userId = value; } + public string userName { get => _userName; set => _userName = value; } + public string notes { get => _notes; set => _notes = value; } + public string warehouseId { get => _warehouseId; set => _warehouseId = value; } + public int state { get => _state; set => _state = value; } + public DateTime? addtime { get => _addtime; set => _addtime = value; } + public DateTime? endtime { get => _endtime; set => _endtime = value; } + public DateTime? operationtime { get => _operationtime; set => _operationtime = value; } + } +} diff --git a/Epost.Model/PalletinfoModel.cs b/Epost.Model/PalletinfoModel.cs new file mode 100644 index 0000000..ba27f04 --- /dev/null +++ b/Epost.Model/PalletinfoModel.cs @@ -0,0 +1,44 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Epost.Model +{ + public class PalletinfoModel : Base + { + int _id = 0; + string _wmsDocNo = string.Empty; + string _groupTaskId = string.Empty; + string _palletId = string.Empty; + string _sku = string.Empty; + string _skuDescr1 = string.Empty; + string _qty = string.Empty; + string _lotatt01 = string.Empty; + string _lotatt02 = string.Empty; + string _lotatt04 = string.Empty; + string _lotatt07 = string.Empty; + string _lotatt08 = string.Empty; + string _notes = string.Empty; + string _taskType = string.Empty; + private Nullable _addtime; + private Nullable _endtime; + public int id { get => _id; set => _id = value; } + public string wmsDocNo { get => _wmsDocNo; set => _wmsDocNo = value; } + public string groupTaskId { get => _groupTaskId; set => _groupTaskId = value; } + public string palletId { get => _palletId; set => _palletId = value; } + public string sku { get => _sku; set => _sku = value; } + public string skuDescr1 { get => _skuDescr1; set => _skuDescr1 = value; } + public string qty { get => _qty; set => _qty = value; } + public string lotatt01 { get => _lotatt01; set => _lotatt01 = value; } + public string lotatt02 { get => _lotatt02; set => _lotatt02 = value; } + public string lotatt04 { get => _lotatt04; set => _lotatt04 = value; } + public string lotatt07 { get => _lotatt07; set => _lotatt07 = value; } + public string lotatt08 { get => _lotatt08; set => _lotatt08 = value; } + public string notes { get => _notes; set => _notes = value; } + public string taskType { get => _taskType; set => _taskType = value; } + public DateTime? addtime { get => _addtime; set => _addtime = value; } + public DateTime? endtime { get => _endtime; set => _endtime = value; } + } +} diff --git a/Epost.Model/Sys_operate_logModel.cs b/Epost.Model/Sys_operate_logModel.cs new file mode 100644 index 0000000..d3e1383 --- /dev/null +++ b/Epost.Model/Sys_operate_logModel.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Epost.Model +{ + public class Sys_operate_logModel : Base + { + private int _id = 0; + private string _title = string.Empty; + private string _method = string.Empty; + private string _operate_url = string.Empty; + private string _operate_param = string.Empty; + private string _json_result = string.Empty; + private int _status = 0; + private string _error_msg = string.Empty; + + private Nullable _addtime; + private Nullable _endtime; + public int id { get => _id; set => _id = value; } + public string title { get => _title; set => _title = value; } + public string method { get => _method; set => _method = value; } + public string operate_url { get => _operate_url; set => _operate_url = value; } + public string operate_param { get => _operate_param; set => _operate_param = value; } + public string json_result { get => _json_result; set => _json_result = value; } + public int status { get => _status; set => _status = value; } + public string error_msg { get => _error_msg; set => _error_msg = value; } + public DateTime? addtime { get => _addtime; set => _addtime = value; } + public DateTime? endtime { get => _endtime; set => _endtime = value; } + } +} diff --git a/Epost.Model/TaskModel.cs b/Epost.Model/TaskModel.cs new file mode 100644 index 0000000..87939cf --- /dev/null +++ b/Epost.Model/TaskModel.cs @@ -0,0 +1,96 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Epost.Model +{ + + public class TaskModel + { + public TaskData data { get; set; } + } + + public class TaskData + { + public List header { get; set; } + } + + public class TaskHeader + { + public string warehouseId { get; set; } + public string wmsDocNo { get; set; } + public string priority { get; set; } + public string taskType { get; set; } + public string userId { get; set; } + public string userName { get; set; } + public string notes { get; set; } + public string udf01 { get; set; } + public string udf02 { get; set; } + public string udf03 { get; set; } + public string udf04 { get; set; } + public string udf05 { get; set; } + public string udf06 { get; set; } + public List details { get; set; } + public List details2 { get; set; } + } + + public class TaskDetail + { + public string groupTaskId { get; set; } + public string palletId { get; set; } + public string spositionCode { get; set; } + public string dpositionCode { get; set; } + public string notes { get; set; } + public string udf01 { get; set; } + public string udf02 { get; set; } + public string udf03 { get; set; } + public string udf04 { get; set; } + public string udf05 { get; set; } + public string udf06 { get; set; } + } + + public class TaskDetails2 + { + public string groupTaskId { get; set; } + public string palletId { get; set; } + public string sku { get; set; } + public string skuDescr1 { get; set; } + public string qty { get; set; } + public string lotatt01 { get; set; } + public string lotatt02 { get; set; } + public string lotatt04 { get; set; } + public string lotatt07 { get; set; } + public string lotatt08 { get; set; } + public string notes { get; set; } + public string udf01 { get; set; } + public string udf02 { get; set; } + public string udf03 { get; set; } + public string udf04 { get; set; } + public string udf05 { get; set; } + public string udf06 { get; set; } + } + + + #region 接口返回 + + public class RetMesModel + { + public ResponseModel Response { get; set; } + } + + public class ResponseModel + { + public ReturnRes _return { get; set; } + } + + public class ReturnRes + { + public string returnCode { get; set; } + public string returnDesc { get; set; } + public string returnFlag { get; set; } + } + + #endregion +} diff --git a/Epost.TestToolsWeb/Controllers/AgvTaskApiController.cs b/Epost.TestToolsWeb/Controllers/AgvTaskApiController.cs new file mode 100644 index 0000000..ab86ea0 --- /dev/null +++ b/Epost.TestToolsWeb/Controllers/AgvTaskApiController.cs @@ -0,0 +1,47 @@ +using Epost.Common; +using Epost.DAL.Cache; +using Epost.Model; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Web.Helpers; +using System.Web.Http; + +namespace Epost.DPS.Controllers +{ + [RoutePrefix("api/AgvTaskApi")] + public class AgvTaskApiController : ApiController + { + JobDownCacheDAL JobCache = new JobDownCacheDAL(); + [Route("agvCallback")] + [HttpPost] + public AgvResultModel agvCallback([FromBody] agvCallbackModel model) + { + AgvResultModel retModel = new AgvResultModel(); + + try + { + LogHelper.WriteLogInfo("请求报文" + JsonHelper.SerializeObject(model)); + + ResultMessageModel data = new ResultMessageModel(); + data.Parameter = model.reqCode; + data.Status = model.method; + data.Address = model.taskCode; + JobCache.UpdateJobDownModelList(new List() { data }, EdownCommend.Create); + retModel.message = "成功!"; + retModel.code = "0"; + retModel.reqCode = model.reqCode; + } + catch (Exception ex) + { + LogHelper.WriteLogInfo("agvPutTask异常:" + ex.ToString(), LogHelper.Log_Type.ERROR); + retModel.message = "请求接口异常!"; + retModel.code = "-1"; + retModel.reqCode = model.reqCode; + } + return retModel; + } + } +} \ No newline at end of file diff --git a/Epost.TestToolsWeb/Controllers/TaskAPIController.cs b/Epost.TestToolsWeb/Controllers/TaskAPIController.cs new file mode 100644 index 0000000..0811331 --- /dev/null +++ b/Epost.TestToolsWeb/Controllers/TaskAPIController.cs @@ -0,0 +1,215 @@ +using Epost.BLL; +using Epost.Common; +using Epost.Model; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Web.Http; + +namespace Epost.DPS.Controllers +{ + [RoutePrefix("api/TaskAPI")] + public class TaskAPIController : ApiController + { + InboundOrdersBLL inOrderBLL = new InboundOrdersBLL(); + PalletinfoBLL palletBLL = new PalletinfoBLL(); + Sys_operate_logBLL logBLL = new Sys_operate_logBLL(); + [Route("agvPutTask")] + [HttpPost] + public RetMesModel agvPutTask([FromBody] TaskModel model) + { + RetMesModel retModel = new RetMesModel(); + ResponseModel respModel = new ResponseModel(); + ReturnRes res = new ReturnRes(); + try + { + LogHelper.WriteLogInfo("请求报文" + JsonHelper.SerializeObject(model)); + + if (model.data.header.Any()) + { + foreach (TaskHeader item in model.data.header) + { + if (string.IsNullOrEmpty(item.wmsDocNo) || string.IsNullOrEmpty(item.taskType)) + { + res.returnDesc = "请求参数错误!"; + res.returnCode = "0001"; + res.returnFlag = "0"; + } + else + { + DataTable orderdt = inOrderBLL.GetOrdersList(item.wmsDocNo); + if (orderdt != null && orderdt.Rows.Count > 0) + { + res.returnDesc = "订单已存在!"; + res.returnCode = "0001"; + res.returnFlag = "0"; + } + else + { + #region datatable创建 + DataTable dataTable = new DataTable(); + dataTable.TableName = "InboundOrders"; + dataTable.Columns.Add(new DataColumn("wmsDocNo", typeof(string))); + dataTable.Columns.Add(new DataColumn("groupTaskId", typeof(string))); + dataTable.Columns.Add(new DataColumn("palletId", typeof(string))); + dataTable.Columns.Add(new DataColumn("spositionCode", typeof(string))); + dataTable.Columns.Add(new DataColumn("dpositionCode", typeof(string))); + dataTable.Columns.Add(new DataColumn("priority", typeof(string))); + dataTable.Columns.Add(new DataColumn("taskType", typeof(string))); + dataTable.Columns.Add(new DataColumn("userId", typeof(string))); + dataTable.Columns.Add(new DataColumn("userName", typeof(string))); + dataTable.Columns.Add(new DataColumn("notes", typeof(string))); + dataTable.Columns.Add(new DataColumn("warehouseId", typeof(string))); + dataTable.Columns.Add(new DataColumn("addtime", typeof(DateTime))); + dataTable.Columns.Add(new DataColumn("state", typeof(int))); + #endregion + if (item.details.Any()) + { + foreach (TaskDetail detail in item.details) + { + #region datatable + DataRow dataRow = dataTable.NewRow(); + dataRow["wmsDocNo"] = item.wmsDocNo; + dataRow["groupTaskId"] = detail.groupTaskId; + dataRow["palletId"] = detail.palletId; + dataRow["spositionCode"] = detail.spositionCode; + dataRow["dpositionCode"] = detail.dpositionCode; + dataRow["priority"] = item.priority; + dataRow["taskType"] = item.taskType; + dataRow["userId"] = item.userId; + dataRow["userName"] = item.userName; + dataRow["notes"] = detail.notes; + dataRow["warehouseId"] = item.warehouseId; + dataRow["addtime"] = DateTime.Now.ToString(); + dataRow["state"] = "0"; + dataTable.Rows.Add(dataRow); + #endregion + } + } + #region Dictionary + Dictionary diclist = new Dictionary(); + diclist.Add("wmsDocNo", "wmsDocNo"); + diclist.Add("groupTaskId", "groupTaskId"); + diclist.Add("palletId", "palletId"); + diclist.Add("spositionCode", "spositionCode"); + diclist.Add("dpositionCode", "dpositionCode"); + diclist.Add("priority", "priority"); + diclist.Add("taskType", "taskType"); + diclist.Add("userId", "userId"); + diclist.Add("userName", "userName"); + diclist.Add("notes", "notes"); + diclist.Add("warehouseId", "warehouseId"); + diclist.Add("addtime", "addtime"); + diclist.Add("state", "state"); + #endregion + bool bo = inOrderBLL.InsertOrder(dataTable, diclist); + if (bo) + { + //添加托盘明细 + InsertPallet(item); + res.returnCode = "0000"; + res.returnDesc = "成功!"; + res.returnFlag = "1"; + } + else + { + res.returnCode = "0001"; + res.returnDesc = "请求失败,请重试!"; + res.returnFlag = "0"; + } + } + + } + + + } + } + + } + catch (Exception ex) + { + LogHelper.WriteLogInfo("agvPutTask异常:" + ex.ToString(), LogHelper.Log_Type.ERROR); + res.returnDesc = "请求接口异常!"; + res.returnCode = "0001"; + res.returnFlag = "0"; + } + respModel._return = res; + retModel.Response = respModel; + logBLL.InsertLog("生成任务单", "agvPutTask", "/api/TaskAPI/agvPutTask", JsonHelper.SerializeObject(model), JsonHelper.SerializeObject(retModel), 0, res.returnDesc, DateTime.Now); + return retModel; + } + + #region 添加托盘明细 + public bool InsertPallet(TaskHeader item) + { + try + { + #region datatable创建 + DataTable dataTable2 = new DataTable(); + dataTable2.TableName = "Palletinfo"; + dataTable2.Columns.Add(new DataColumn("wmsDocNo", typeof(string))); + dataTable2.Columns.Add(new DataColumn("groupTaskId", typeof(string))); + dataTable2.Columns.Add(new DataColumn("palletId", typeof(string))); + dataTable2.Columns.Add(new DataColumn("sku", typeof(string))); + dataTable2.Columns.Add(new DataColumn("skuDescr1", typeof(string))); + dataTable2.Columns.Add(new DataColumn("qty", typeof(string))); + dataTable2.Columns.Add(new DataColumn("taskType", typeof(string))); + dataTable2.Columns.Add(new DataColumn("notes", typeof(string))); + dataTable2.Columns.Add(new DataColumn("addtime", typeof(DateTime))); + + #endregion + if (item.details2.Any()) + { + foreach (TaskDetails2 detail in item.details2) + { + #region datatable + DataRow dataRow1 = dataTable2.NewRow(); + dataRow1["wmsDocNo"] = item.wmsDocNo; + dataRow1["groupTaskId"] = detail.groupTaskId; + dataRow1["palletId"] = detail.palletId; + dataRow1["sku"] = detail.sku; + dataRow1["skuDescr1"] = detail.skuDescr1; + dataRow1["qty"] = detail.qty; + dataRow1["notes"] = item.notes; + dataRow1["taskType"] = item.taskType; + dataRow1["addtime"] = DateTime.Now.ToString(); + + dataTable2.Rows.Add(dataRow1); + #endregion + } + } + #region Dictionary + Dictionary diclist1 = new Dictionary(); + diclist1.Add("wmsDocNo", "wmsDocNo"); + diclist1.Add("groupTaskId", "groupTaskId"); + diclist1.Add("palletId", "palletId"); + diclist1.Add("sku", "sku"); + diclist1.Add("skuDescr1", "skuDescr1"); + diclist1.Add("qty", "qty"); + diclist1.Add("notes", "notes"); + diclist1.Add("taskType", "taskType"); + diclist1.Add("addtime", "addtime"); + + #endregion + bool bo = palletBLL.InsertPallet(dataTable2, diclist1); + LogHelper.WriteLogInfo(item.wmsDocNo + "添加托盘明细:" + bo); + return true; + } + catch (Exception ex) + { + LogHelper.WriteLogInfo("添加托盘明细异常:" + ex.ToString(), LogHelper.Log_Type.ERROR); + return false; + } + } + #endregion + + + + + + + } +} diff --git a/Epost.TestToolsWeb/Epost.DPS.csproj b/Epost.TestToolsWeb/Epost.DPS.csproj index 529f751..153afc9 100644 --- a/Epost.TestToolsWeb/Epost.DPS.csproj +++ b/Epost.TestToolsWeb/Epost.DPS.csproj @@ -222,8 +222,10 @@ + + Global.asax diff --git a/Epost.TestToolsWeb/Epost.DPS.csproj.user b/Epost.TestToolsWeb/Epost.DPS.csproj.user index 044be83..4d10158 100644 --- a/Epost.TestToolsWeb/Epost.DPS.csproj.user +++ b/Epost.TestToolsWeb/Epost.DPS.csproj.user @@ -11,7 +11,7 @@ False 600 E:\WORK\代码管理\T系列\播种\Epost.TestToolsWeb\Properties\PublishProfiles\Toolsweb.pubxml - Debug|Any CPU + Release|Any CPU @@ -19,7 +19,7 @@ ApiControllerEmptyScaffolder - root/Controller + root/Common/Web API diff --git a/Epost.TestToolsWeb/Properties/PublishProfiles/Toolsweb.pubxml b/Epost.TestToolsWeb/Properties/PublishProfiles/Toolsweb.pubxml index 597e2b9..1941139 100644 --- a/Epost.TestToolsWeb/Properties/PublishProfiles/Toolsweb.pubxml +++ b/Epost.TestToolsWeb/Properties/PublishProfiles/Toolsweb.pubxml @@ -11,7 +11,7 @@ true false - D:\驿传\Wuxidingshi_DAS + D:\驿传\zhuyou_wcs true true true diff --git a/Epost.TestToolsWeb/Properties/PublishProfiles/Toolsweb.pubxml.user b/Epost.TestToolsWeb/Properties/PublishProfiles/Toolsweb.pubxml.user index df11d90..23a1964 100644 --- a/Epost.TestToolsWeb/Properties/PublishProfiles/Toolsweb.pubxml.user +++ b/Epost.TestToolsWeb/Properties/PublishProfiles/Toolsweb.pubxml.user @@ -6,8 +6,8 @@ - <_PublishTargetUrl>D:\驿传\Wuxidingshi_DAS - False|2024-11-04T09:48:25.2781696Z;True|2024-11-01T16:04:56.3535724+08:00;True|2024-09-01T10:13:37.1598955+08:00;True|2024-08-31T17:27:57.5375469+08:00;True|2022-07-15T16:41:13.9750291+08:00;True|2022-07-14T14:02:20.7983427+08:00;True|2022-07-13T17:40:22.7531000+08:00;True|2022-07-13T17:34:22.9908701+08:00;True|2022-07-13T17:30:06.3588502+08:00;True|2022-07-11T10:32:06.9053981+08:00;True|2021-04-26T10:07:37.4889549+08:00;True|2021-04-09T10:32:51.9130162+08:00;True|2021-04-09T10:31:50.4974012+08:00; + <_PublishTargetUrl>D:\驿传\zhuyou_wcs + True|2024-11-22T06:00:39.7806019Z;False|2024-11-04T17:48:25.2781696+08:00;True|2024-11-01T16:04:56.3535724+08:00;True|2024-09-01T10:13:37.1598955+08:00;True|2024-08-31T17:27:57.5375469+08:00;True|2022-07-15T16:41:13.9750291+08:00;True|2022-07-14T14:02:20.7983427+08:00;True|2022-07-13T17:40:22.7531000+08:00;True|2022-07-13T17:34:22.9908701+08:00;True|2022-07-13T17:30:06.3588502+08:00;True|2022-07-11T10:32:06.9053981+08:00;True|2021-04-26T10:07:37.4889549+08:00;True|2021-04-09T10:32:51.9130162+08:00;True|2021-04-09T10:31:50.4974012+08:00; @@ -33,19 +33,19 @@ 04/04/2018 15:45:12 - 11/08/2024 11:47:18 + 11/22/2024 14:00:36 - 11/08/2024 11:47:17 + 11/22/2024 14:00:36 02/24/2020 15:29:24 - 11/06/2024 10:26:56 + 11/22/2024 14:00:20 - 11/06/2024 10:26:56 + 11/22/2024 14:00:20 04/29/2020 16:50:14 @@ -63,31 +63,31 @@ 10/23/2017 13:15:20 - 11/08/2024 11:47:07 + 11/22/2024 14:00:21 - 11/08/2024 11:47:07 + 11/22/2024 14:00:21 08/26/2020 18:09:48 - 11/08/2024 11:47:06 + 11/22/2024 14:00:20 - 11/08/2024 11:47:06 + 11/22/2024 14:00:20 - 11/08/2024 11:47:09 + 11/22/2024 14:00:23 - 11/08/2024 11:47:09 + 11/22/2024 14:00:23 - 11/06/2024 10:26:56 + 11/22/2024 14:00:20 - 11/06/2024 10:26:56 + 11/22/2024 14:00:20 09/06/2018 11:57:11 @@ -5652,7 +5652,7 @@ 05/30/2022 16:58:47 - 11/08/2024 11:47:11 + 11/22/2024 14:00:24 04/04/2018 15:45:12