//using iWareCC.Common.Helper; //using iWareCommon.Common.Globle; //using iWareCommon.Utils; //using iWareModel; //using iWareModel.EnumType.XiGangPublicCommon; //using iWareSql; //using iWareSql.DataAccess; //using iWareSql.DBModel; //using System; //using System.Collections.Generic; //using System.Linq; //using System.Text; //using System.Threading; //using System.Threading.Tasks; //using XiGang.Core.Model; //using XiGang.Core.Model.PostParamModels.Task; //using static WZ.Useful.Commons.NativeMethods; //namespace iWareCC //{ // /// // /// 自动组盘 任务 // /// // public static class AutoSalverMaterialBindTask // { // /// // /// 自动组盘任务 // /// // public static void Handler() // { // var alertMsg = ""; // while (true) // { // Thread.Sleep(2000);//休眠2秒,将休眠写到前面,是为了下面的continue方法执行后不显示错误信息的提示!!!【EditBy shaocx,2022-05-24】 // SystemWarningMsg._lbl_alert_AutoSalverMaterialBindTask = string.Empty; // try // { // if (SystemValue.isAllowRuning_AutoSalverMaterialBindTask && SystemValue.isStartedModel) // { // EDevice rgvLocation = EDevice.入库口1019; // var stationCode = Convert.ToInt32(rgvLocation).ToString(); // V_AllStore store = null; // using (DbModel context = new DbModel()) // { // //模拟 // bool isGD_HasCatogryForRgvStattion = true; // bool isSys_HasCatogryForRgvStattion = MyExtendHelper.IsSys_HasCatogryForRgvStattion(context, stationCode, ref store); // bool isExistOtherTaskDoing = PartTaskHandler.IsExistOtherTaskDoing(stationCode); // if (isSys_HasCatogryForRgvStattion) // { // SystemWarningMsg._lbl_alert_AutoSalverMaterialBindTask = $"{rgvLocation.ToString()}-系统有库存,此次循环结束"; // continue; // } // if (isExistOtherTaskDoing) // { // SystemWarningMsg._lbl_alert_AutoSalverMaterialBindTask = $"{rgvLocation.ToString()}-有任务占用该站点,此次循环结束"; // continue; // } // if (!isGD_HasCatogryForRgvStattion) // { // SystemWarningMsg._lbl_alert_AutoSalverMaterialBindTask = $"{rgvLocation.ToString()}-光电显示无货,此次循环结束"; // continue; // } // SystemWarningMsg._lbl_alert_AutoSalverMaterialBindTask = $"{rgvLocation.ToString()}-光电有货"; // //需要读取 发动机扫描枪的信息 // var _scan_CargoNo = "_3118L067736B-DHP13Q667*01"; //模拟 // if (string.IsNullOrEmpty(_scan_CargoNo)) // { // SystemWarningMsg._lbl_alert_AutoSalverMaterialBindTask = $"读取的{rgvLocation.ToString()}位置,发动机码为空,不允许自动组盘"; // continue; // } // //验证该发动机库存已存在,要在WMS中处理 // //var isSys_HasCatogryForCargoNo = StoreHandler.IsSys_HasCatogryForCargoNo(context, _scan_CargoNo, ref store); // //if (isSys_HasCatogryForCargoNo) // //{ // // SystemWarningMsg._lbl_alert_AutoSalverMaterialBindTask = $"读取的{rgvLocation.ToString()}位置,发动机码为{_scan_CargoNo},该发动机库存已存在,在立库库位{store.SrmStationCode},在RGV库位{store.RgvStationCode},不允许自动组盘"; // // continue; // //} // //需要读取 托盘号 // var _scan_salverCode = "XGT000205"; //模拟 // if (string.IsNullOrEmpty(_scan_salverCode)) // { // SystemWarningMsg._lbl_alert_AutoSalverMaterialBindTask = $"读取的{rgvLocation.ToString()}位置,托盘码为空,不允许自动组盘"; // continue; // } // var isSys_HasCatogryForSalverCode = StoreHandler.IsSys_HasCatogryForSalverCode(context, _scan_salverCode, ref store); // if (isSys_HasCatogryForSalverCode) // { // SystemWarningMsg._lbl_alert_AutoSalverMaterialBindTask = $"读取的{rgvLocation.ToString()}位置,托盘码为{_scan_salverCode},该托盘库存已存在,在立库库位{store.SrmStationCode},在RGV库位{store.RgvStationCode},不允许自动组盘"; // continue; // } // var isExistOtherTaskDoingForSalverCode = PartTaskHandler.IsExistOtherTaskDoingForSalverCode(stationCode); // if (isExistOtherTaskDoingForSalverCode) // { // SystemWarningMsg._lbl_alert_AutoSalverMaterialBindTask = $"读取的{rgvLocation.ToString()}位置,托盘码为{_scan_salverCode},该托盘已经有未结束的任务被占用,不允许自动组盘"; // continue; // } // //符合条件,即将进行自动组盘 // alertMsg = $"读取的{rgvLocation.ToString()}位置,发动机码为{_scan_CargoNo},托盘码为{_scan_salverCode},符合条件,即将进行自动组盘"; // SystemWarningMsg._lbl_alert_AutoSalverMaterialBindTask = alertMsg; // Log4NetHelper.WriteInfoLog(LogType.AutoSalverMaterialBindTask, alertMsg); // try // { // //调用API // AddMainTaskPostParam param = new AddMainTaskPostParam() // { // InStoreNo = ((int)rgvLocation).ToString(), // CargoNo = _scan_CargoNo, // SalverCode = _scan_salverCode, // }; // MessageModel ret = WmsRequestHelper.SalverMaterialBind(param); // if (ret.success) // { // alertMsg = $"读取的{rgvLocation.ToString()}位置,发动机码为{_scan_CargoNo},托盘码为{_scan_salverCode},自动组盘请求WMSAPI成功!"; // SystemWarningMsg._lbl_alert_AutoSalverMaterialBindTask = alertMsg; // Log4NetHelper.WriteInfoLog(LogType.AutoSalverMaterialBindTask, alertMsg); // } // else // { // alertMsg = $"读取的{rgvLocation.ToString()}位置,发动机码为{_scan_CargoNo},托盘码为{_scan_salverCode},自动组盘请求WMSAPI失败:WMS返回消息为->{ret.msg}"; // SystemWarningMsg._lbl_alert_AutoSalverMaterialBindTask = alertMsg; // Log4NetHelper.WriteInfoLog(LogType.AutoSalverMaterialBindTask, alertMsg); // Log4NetHelper.WriteErrorLog(LogType.AutoSalverMaterialBindTask, alertMsg, null); // } // } // catch (Exception ex) // { // alertMsg = $"读取的{rgvLocation.ToString()}位置,发动机码为{_scan_CargoNo},托盘码为{_scan_salverCode},自动组盘请求WMSAPI失败:出现异常->{ex.Message}"; // SystemWarningMsg._lbl_alert_AutoSalverMaterialBindTask = alertMsg; // Log4NetHelper.WriteInfoLog(LogType.AutoSalverMaterialBindTask, alertMsg); // Log4NetHelper.WriteErrorLog(LogType.AutoSalverMaterialBindTask, alertMsg, ex); // } // } // } // } // catch (Exception ex) // { // SystemWarningMsg._lbl_alert_AutoSalverMaterialBindTask += "自动组盘 出现异常:" + ex.Message + SysGloble.SPLIT_STR; // Log4NetHelper.WriteErrorLog(LogType.AutoSalverMaterialBindTask, "AutoSalverMaterialBindTask 出现异常:" + ex.Message, ex); // } // } // } // } //}