| | |
| | | { |
| | | try |
| | | { |
| | | |
| | | var lolist = LocationHelper.GetAreaNormalLocList(area);// LocationHelper.GetList<Location>(x => x.S_AREA_CODE == area && x.S_LOCK_STATE != "报废"); |
| | | var lgrow = lolist.GroupBy(x => x.N_ROW).OrderBy(x => x.Key).ToList(); |
| | | Dictionary<string, List<Location>> dsll = new Dictionary<string, List<Location>>(); |
| | |
| | | //查询任务数 |
| | | List<string> AreaLi = new List<string>() { "YWLBQWJ", "YWLWJJB" }; |
| | | var db = new SqlHelper<object>().GetInstance(); |
| | | //var list = db.Queryable<Location>().Where(a => AreaLi.Contains(a.S_AREA_CODE) && a.S_LOCK_STATE == "入库锁").ToList(); |
| | | //if (list.Count() >= 3) |
| | | //{ |
| | | // LogHelper.Info($"CreateTransport- CreateTask Error" + $"终点库区为YWLRGDD或者YWLWJJB 则最多只能生成两个任务"); |
| | | // continue; |
| | | //} |
| | | } |
| | | string Last = string.Join(",", ccr.Skip(1)); |
| | | |
| | | if (ABlist.Contains(EdnRarea)) |
| | | { |
| | | var ls = LocationHelper.GetList<Location>(x => x.S_AREA_CODE == EdnRarea && (x.S_LOCK_STATE == "入库锁" || x.S_LOCK_STATE == "出库锁")); |
| | | //var ls = LocationHelper.GetList<Location>(x => x.S_AREA_CODE == EdnRarea && (x.S_LOCK_STATE == "入库锁")); |
| | | if (ls.Count() > 1) |
| | | var list = db.Queryable<Location>().Where(a => AreaLi.Contains(a.S_AREA_CODE) && a.S_LOCK_STATE == "入库锁").ToList(); |
| | | if (list.Count() >= 2) |
| | | { |
| | | LogHelper.Info($"{EdnRarea}任务数1管制2"); |
| | | LogHelper.Info($"CreateTransport- CreateTask Error" + $"终点库区为YWLRGDD或者YWLWJJB 则最多只能生成两个任务"); |
| | | continue; |
| | | } |
| | | } |
| | | |
| | | if (EdnRarea == "YWLKTDDQ")//到B区的移库工单最多只能生成两条任务 |
| | | { |
| | | //查询任务数 |
| | | List<string> AreaLi = new List<string>() { "YWLKTDDQ" }; |
| | | var db = new SqlHelper<object>().GetInstance(); |
| | | var list = db.Queryable<Location>().Where(a => AreaLi.Contains(a.S_AREA_CODE) && a.S_LOCK_STATE == "入库锁").ToList(); |
| | | if (list.Count() > 2) |
| | | { |
| | | LogHelper.Info($"CreateTransport- CreateTask Error" + $"终点库区为YWLKTDDQ 则最多只能生成三个任务"); |
| | | continue; |
| | | } |
| | | } |
| | | string Last = string.Join(",", ccr.Skip(1)); |
| | | |
| | | //if (ABlist.Contains(EdnRarea)) |
| | | //{ |
| | | // var ls = LocationHelper.GetList<Location>(x => x.S_AREA_CODE == EdnRarea && (x.S_LOCK_STATE == "入库锁" || x.S_LOCK_STATE == "出库锁")); |
| | | // //var ls = LocationHelper.GetList<Location>(x => x.S_AREA_CODE == EdnRarea && (x.S_LOCK_STATE == "入库锁")); |
| | | // if (ls.Count() > 1) |
| | | // { |
| | | // LogHelper.Info($"{EdnRarea}任务数1管制2"); |
| | | // continue; |
| | | // } |
| | | //} |
| | | if (CDlist.Contains(EdnRarea)) |
| | | { |
| | | var ls = LocationHelper.GetList<Location>(x => x.S_AREA_CODE == EdnRarea && x.S_LOCK_STATE == "入库锁"); |
| | |
| | | else InworkLock = false; |
| | | |
| | | Location endbit = null; |
| | | //foreach (var rss in arloclist.GroupBy(x => x.N_ROW).OrderByDescending(x => x.Count(y => y.N_CURRENT_NUM > 0)).ThenBy(xx => xx.Key)) |
| | | RowLock inlock = null; |
| | | List<RowLock> inlockLis = new List<RowLock>(); |
| | | bool isCd = false; |
| | |
| | | foreach (var rss in arloclist.GroupBy(x => x.N_ROW).OrderByDescending(x => x.Count(y => y.N_CURRENT_NUM > 0)).ThenBy(x => x.Key)) |
| | | { |
| | | rowlist = rss.OrderBy(x => x.N_COL).ToList(); |
| | | //if (rowlist.FindAll((Location x) => x.S_LOCK_STATE.Trim() == "空间锁").Count > 0) { continue; } |
| | | //if (rowlist.FindAll((Location x) => x.S_LOCK_STATE.Trim() != "无" && x.S_LOCK_STATE.Trim() != "报废").Count > 0) |
| | | //{ |
| | | // continue; |
| | | //} |
| | | var _cl2 = rowlist.FindAll(x => x.N_CURRENT_NUM > 0).OrderBy(x => x.N_COL).LastOrDefault(); |
| | | endbit = rowlist.Find(x => x.N_COL > (_cl2?.N_COL ?? 0)); |
| | | if (endbit == null) continue; |
| | |
| | | endbit = null; |
| | | continue; |
| | | } |
| | | //} |
| | | //else |
| | | //{ |
| | | // endbit = null; |
| | | // continue; |
| | | //} |
| | | } |
| | | if (endbit != null) break; |
| | | } |
| | |
| | | var sign = Settings.GetTimeStamp(); |
| | | var res = TaskProcess.CreateTransport(sign, _cl.S_LOC_CODE, endbit.S_LOC_CODE, "原物料搬运-纸箱", _clrel.Select(x => x.S_CNTR_CODE).ToList(), 1, endbit.N_CURRENT_NUM + 1, 1, 50, Last);///, EdnRarea == "YWLYLTKQ" ? _clrel0.S_TYPE : ""); |
| | | LogHelper.Info($"{r.Key}原物料搬运 {sign} 任务 ,创建{res} "); |
| | | //if (CDlist.Contains(endbit.S_AREA_CODE) && res) |
| | | //{ |
| | | // LogHelper.Info($"添加内存排锁"); |
| | | // var ggf = inlockLis.Find(e => e.S_LOCK_SRC == cir1.S_ITEM_CODE + cir1.S_ITEM_NAME + cir1.S_CJ_NAME && e.S_AREA_CODE == endbit.S_AREA_CODE && e.N_ROW == endbit.N_ROW); |
| | | // LogHelper.Info($"添加内存排锁 是否查询到数据:{JsonConvert.SerializeObject(ggf)}"); |
| | | // if (ggf == null) |
| | | // { |
| | | // var rrrr = new RowLock { S_LOCK_SRC = cir1.S_ITEM_CODE + cir1.S_ITEM_NAME + cir1.S_CJ_NAME, T_LOCK_TIME = DateTime.Now, S_LOCK_STATE = "入库锁", S_AREA_CODE = endbit.S_AREA_CODE, N_ROW = endbit.N_ROW }; |
| | | // inlockLis.Add(rrrr); |
| | | // LogHelper.Info($"添加内存排锁 添加数据到内存排锁中:{JsonConvert.SerializeObject(inlockLis)}"); |
| | | // } |
| | | //} |
| | | //if (res && inlock == null && isCd) |
| | | //{ |
| | | // var rrrr = new RowLock { S_LOCK_SRC = cir1.S_ITEM_CODE + cir1.S_ITEM_NAME + cir1.S_CJ_NAME, T_LOCK_TIME = DateTime.Now, S_LOCK_STATE = "入库锁", S_AREA_CODE = endbit.S_AREA_CODE, N_ROW = endbit.N_ROW }; |
| | | // LogHelper.Info($"原物料入库 添加排锁信息{JsonConvert.SerializeObject(rrrr)} "); |
| | | // WCSHelper.Do(db => db.Insertable(rrrr).ExecuteCommand()); |
| | | //} |
| | | if (EdnRarea == "YWLWJJB") InworkLock = false; |
| | | break; |
| | | } |