using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Reflection; using System.Data; namespace SiaSun.LMS.Implement { /// /// 申请下架 /// public class ApplyMoveDown : ApplyBase { public bool ApplyHandle(Model.IO_CONTROL_APPLY mIO_CONTROL_APPLY, out string sResult) { bool bResult = true; sResult = string.Empty; int START_CELL_ID = 0; int end_cell_id = 0; try { mIO_CONTROL_APPLY.STOCK_BARCODE = string.Empty; string STOCK_BARCODE = mIO_CONTROL_APPLY.STOCK_BARCODE.ToUpper(); bResult = this.Validate(mIO_CONTROL_APPLY, out START_CELL_ID,out sResult); this._log.Fatal(string.Format("成功申请{0} {1} {2} {3}", mIO_CONTROL_APPLY.CONTROL_APPLY_ID, mIO_CONTROL_APPLY.STOCK_BARCODE,mIO_CONTROL_APPLY.CONTROL_ID,mIO_CONTROL_APPLY.DEVICE_CODE)); //查申请站台ID string sql1 = string.Format("select * from wh_cell where cell_code='{0}'", mIO_CONTROL_APPLY.DEVICE_CODE); DataTable dt1 = this.GetList(sql1); //查14003申请个数 string sql2 = string.Format("select * from io_control_apply where DEVICE_CODE='{0}'", mIO_CONTROL_APPLY.DEVICE_CODE); DataTable dt2 = this.GetList(sql2); if (mIO_CONTROL_APPLY.DEVICE_CODE == "12131") { //查调度任务 string sql3 = string.Format("select * from io_control where control_id={0}", mIO_CONTROL_APPLY.CONTROL_ID); DataTable dt3 = this.GetList(sql3); if (dt3.Rows.Count<=0) { return false; } //判断纸箱分道处是否有异常,只写历史 this.WriteHisData(mIO_CONTROL_APPLY, "错误信息:尺寸等问题成品改道去往纸箱出库口"); return bResult; } if (mIO_CONTROL_APPLY.DEVICE_CODE == "12086") { ////申请状态改成3,挂着申请 //mIO_CONTROL_APPLY.APPLY_TASK_STATUS = 5; //this._P_IO_CONTROL_APPLY.Update(mIO_CONTROL_APPLY); //申请数量是2个的时候,先从库里出一个,第二个等直供。3个的时候前两个都下出库任务, if(dt2.Rows.Count >= 2) { bResult = new StockOut().ManageCreate("wcs", "StockOut", 909, string.Empty, 1, START_CELL_ID, true, true, out sResult); if(bResult) { //下成功任务删申请 this._P_IO_CONTROL_APPLY.Delete(mIO_CONTROL_APPLY.CONTROL_APPLY_ID); } else { //System.Threading.Thread.Sleep(4000); //申请状态改成3,挂着申请 mIO_CONTROL_APPLY.APPLY_TASK_STATUS = 0; this._P_IO_CONTROL_APPLY.Update(mIO_CONTROL_APPLY); } } //ljc20230201新增直供缓存位 一段时间从库里出 else if (1 == dt2.Rows.Count) { //CONTROL_APPLY_PARAMETER写个时间,再去取之前的时间,判断比较当前时间 //下成功任务删申请 if (string.IsNullOrEmpty(mIO_CONTROL_APPLY.CONTROL_APPLY_PARA01)) { mIO_CONTROL_APPLY.CONTROL_APPLY_PARA01 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); this._P_IO_CONTROL_APPLY.Update(mIO_CONTROL_APPLY); } else { if (Convert.ToDateTime(mIO_CONTROL_APPLY.CONTROL_APPLY_PARA01).AddMinutes(3)<=Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"))) { bResult = new StockOut().ManageCreate("wcs", "StockOut", 909, string.Empty, 1, START_CELL_ID, true, true, out sResult); if (bResult) { //下成功任务删申请 this._P_IO_CONTROL_APPLY.Delete(mIO_CONTROL_APPLY.CONTROL_APPLY_ID); } else { // System.Threading.Thread.Sleep(4000); //申请状态改成3,挂着申请 mIO_CONTROL_APPLY.APPLY_TASK_STATUS = 0; this._P_IO_CONTROL_APPLY.Update(mIO_CONTROL_APPLY); } } } } return bResult; } } catch (Exception ex) { bResult = false; sResult = ex.Message; this._log.Fatal(string.Format("调用方法{0}发生异常。", MethodBase.GetCurrentMethod().Name), ex); } return bResult; } } }