| | |
| | | //InworkLock = false; |
| | | var usingSpace = new List<string> { "入库接驳区", "库内接驳区", "出库接驳区", "提升机退料口" }; |
| | | //usingSpace = new List<string> { "YWLRGDD", "YWLWJJB", "YWLYLTKQ", "YWLTKKTQ", "YWLKTDDQ", "YWLT1TSJ", "YWLT1TSJCD", "YWLT2TSJ", "YWLT2TSJCD" }; |
| | | usingSpace = new List<string> { "YWLRGDD", "YWLWJJB", "YWLYLTKQ", "YWLTKKTQ", "YWLT1TSJ", "YWLT2TSJ" }; |
| | | usingSpace = new List<string> { "YWLWJJB", "YWLYLTKQ", "YWLTKKTQ", "YWLRGDD", "YWLT1TSJ", "YWLT2TSJ" }; |
| | | foreach (var area in usingSpace) |
| | | { |
| | | try |
| | |
| | | } |
| | | else |
| | | { |
| | | Endbit = LocationHelper.GetAreaNormalLocList(PLC.areaPriy[0]).Find(x => x.N_CURRENT_NUM == 0); |
| | | Endbit = LocationHelper.GetAreaNormalLocList(PLC.areaPriy[0]).Find(x =>x.S_LOCK_STATE=="无" && x.N_CURRENT_NUM == 0); |
| | | } |
| | | |
| | | if (StartBit != null && Endbit != null) |
| | |
| | | var b = TaskProcess.CreateTransport(od.SQL_WorkNo, StartBit.S_LOC_CODE, EndBit, "原物料搬运-纸箱", crs, StartBit.N_CURRENT_NUM - crs.Count + 1, 1, crs.Count, PLC.taskPri, "", Endbit.S_LOC_CODE); |
| | | if (b) |
| | | { |
| | | |
| | | var r = new RowLock { S_LOCK_SRC = od.SQL_ItemCode, T_LOCK_TIME = DateTime.Now, S_LOCK_STATE = "出库锁", S_AREA_CODE = StartBit.S_AREA_CODE, N_ROW = StartBit.N_ROW }; |
| | | var db = new SqlHelper<object>().GetInstance(); |
| | | //给终点锁定住 |
| | |
| | | var totalX = 0; |
| | | var totalRows = 0; |
| | | var list = new List<KuRong>(); |
| | | var areas = db.Queryable<Location>().Select(x => x.S_AREA_CODE).ToList().FindAll(x => System.Text.RegularExpressions.Regex.IsMatch(x, @"QX-\d+_[A-Z]+")).Select(x => x.Split('_')[0]).Distinct().ToList(); //GetAreas(); |
| | | var areas = db.Queryable<Location>().Select(x => x.S_AREA_CODE).ToList().FindAll(x => x != null && System.Text.RegularExpressions.Regex.IsMatch(x, @"QX-\d+_[A-Z]+")).Select(x => x.Split('_')[0]).Distinct().ToList(); //GetAreas(); |
| | | areas.ForEach(area => |
| | | { |
| | | totalX += db.Queryable<Location>().Count(b => b.S_AREA_CODE.StartsWith(area) && b.S_AREA_CODE.Contains("_X")); |
| | |
| | | } |
| | | |
| | | //终点货位为 YWLT1TSJCD 或者 YWLT2TSJCD 的 要取货完成解锁起点,解绑起点,绑定终点,卸货完成,解锁终点 2025年6月10日 Plg |
| | | if (mst.S_END_LOC?.Trim() == "YWLT1TSJCD" || mst.S_END_LOC?.Trim() == "YWLT2TSJCD") |
| | | { |
| | | //解绑起点 |
| | | CacheBitUpdate(mst, load: true); |
| | | //绑定终点 |
| | | CacheBitUpdate(mst, load: false); |
| | | } |
| | | //if (mst.S_END_LOC?.Trim() == "YWLT1TSJCD" || mst.S_END_LOC?.Trim() == "YWLT2TSJCD") |
| | | //{ |
| | | // //解绑起点 |
| | | // CacheBitUpdate(mst, load: true); |
| | | // //绑定终点 |
| | | // CacheBitUpdate(mst, load: false); |
| | | //} |
| | | LocationHelper.UnLockLoc(mst.S_START_LOC.Trim()); |
| | | } |
| | | //new List<string> { "成品满框-入库", "" } |
| | | if (state == 6 || state == 5) |
| | | { |
| | | ///只需要释放货位就行了 |
| | | if (mst.S_END_LOC?.Trim() == "YWLT1TSJCD" || mst.S_END_LOC?.Trim() == "YWLT2TSJCD") |
| | | { |
| | | LocationHelper.UnLockLoc(mst.S_END_LOC.Trim()); |
| | | return r; |
| | | } |
| | | |
| | | LogHelper.Info($"任务类型:{mst.S_TYPE}- 动作:{state}. 是否5算6?{mst.S_TYPE.Contains("成品满框") || mst.S_TYPE.Contains("备货")} "); |
| | | if (mst.S_TYPE.Contains("备货")) |
| | | { |
| | |
| | | } |
| | | else if (state == 5) goto vvv; |
| | | |
| | | ///只需要释放货位就行了 |
| | | //if (mst.S_END_LOC?.Trim() == "YWLT1TSJCD" || mst.S_END_LOC?.Trim() == "YWLT2TSJCD") |
| | | //{ |
| | | // LocationHelper.UnLockLoc(mst.S_END_LOC.Trim()); |
| | | // return r; |
| | | //} |
| | | |
| | | if (mst.S_TYPE.Trim() == "J空瓶坯-出库") |
| | | { |
| | | mst.S_CNTRS = "J" + Settings.GetTimeStamp(); |
| | |
| | | { |
| | | var model = db.Queryable<Location>().Where(a => a.S_LOC_CODE == task.S_TWO_END_LOC).First(); |
| | | //先解锁终点 在锁定 |
| | | db.Ado.BeginTran(); |
| | | try |
| | | //db.Ado.BeginTran(); |
| | | //try |
| | | //{ |
| | | // model.S_LOCK_STATE = "无"; |
| | | // var res = db.Updateable(model).UpdateColumns(it => new { it.S_LOCK_STATE }).ExecuteCommand() > 0; |
| | | // LogHelper.Info(task.S_TWO_END_LOC + "LockLoc:锁结果" + res); |
| | | // db.Ado.CommitTran(); |
| | | //} |
| | | //catch (Exception ex) |
| | | //{ |
| | | // db.Ado.RollbackTran(); |
| | | // LogHelper.Info("CreateTask 失败 " + ex.Message); |
| | | //} |
| | | if (model != null) |
| | | { |
| | | model.S_LOCK_STATE = "无"; |
| | | var res = db.Updateable(model).UpdateColumns(it => new { it.S_LOCK_STATE }).ExecuteCommand() > 0; |
| | | LogHelper.Info(task.S_TWO_END_LOC + "LockLoc:锁结果" + res); |
| | | db.Ado.CommitTran(); |
| | | LogHelper.Info(task.S_TWO_END_LOC + "二段任务 开始。 "); |
| | | var b = TaskProcess.CreateTransport(task.S_SRC_NO, task.S_END_LOC, task.S_TWO_END_LOC, "原物料搬运-纸箱", task.S_CNTRS.Split(',').ToList(), task.N_START_LAYER, 1, task.N_CNTR_COUNT, task.N_PRIORITY); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | db.Ado.RollbackTran(); |
| | | LogHelper.Info("CreateTask 失败 " + ex.Message); |
| | | } |
| | | var b = TaskProcess.CreateTransport(task.S_SRC_NO, task.S_END_LOC, task.S_TWO_END_LOC, "原物料搬运-纸箱", task.S_CNTRS.Split(',').ToList(), task.N_START_LAYER, 1, task.N_CNTR_COUNT, task.N_PRIORITY); |
| | | } |
| | | } |
| | | internal static void Fail(WMSTask task) |