| | |
| | | |
| | | return result; |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | return result; |
| | | } |
| | | |
| | | #endregion |
| | |
| | | for (int i = 0; i < list.Count; i++) |
| | | { |
| | | //如果锁了或者容量满了 当前数量 容器容量 |
| | | if (list[i].N_LOCK_STATE != 0 || list[i].N_CURRENT_NUM >= list[i].N_CAPACITY) |
| | | if (list[i].N_LOCK_STATE != 0|| list[i].C_ENABLE != "Y" || list[i].N_CURRENT_NUM >= list[i].N_CAPACITY) |
| | | { |
| | | loca.Add(list[i].S_CODE); |
| | | LogHelper.Info($"InWorkTransport 满或者锁上的货位:{list[i].S_CODE},状态{list[i].N_LOCK_STATE}"); |
| | | } |
| | | } |
| | | //移除 |
| | |
| | | //符合条件的排序选第一个 先找第一个 |
| | | if (list.Count > 0) |
| | | { |
| | | result = list.OrderBy(s => s.N_ROW).ThenBy(x => x.N_COL).FirstOrDefault(); |
| | | //立库的随机分配 |
| | | if (reservoirs != null && reservoirs.areaCode.Equals(area)) |
| | | { |
| | | // 立库随机分配算法 |
| | | var random = new Random(); |
| | | result = list.OrderBy(x => random.Next()).FirstOrDefault(); |
| | | LogHelper.Info($"立库随机分配选择货位:{result?.S_CODE},状态{result?.N_LOCK_STATE}"); |
| | | |
| | | } |
| | | else |
| | | { |
| | | result = list.OrderBy(s => s.N_ROW).ThenBy(x => x.N_COL).FirstOrDefault(); |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | |
| | | for (int i = 0; i < list.Count; i++) |
| | | { |
| | | //判断货位是否被锁住了 与 是否有托盘 |
| | | if (list[i].N_LOCK_STATE == 0) |
| | | if (list[i].N_LOCK_STATE == 0&& list[i].C_ENABLE =="Y") |
| | | { |
| | | var locCntrRel = db.Queryable<LocCntrRel>().Where(s => s.S_LOC_CODE == list[i].S_CODE).First(); |
| | | |
| | |
| | | { |
| | | return locations |
| | | .Where(l => targetAreas.Any(area => l.S_CODE.Contains(area))) |
| | | .Where(l => l.N_LOCK_STATE == 0 && l.N_CURRENT_NUM < l.N_CAPACITY) |
| | | .Where(l => l.N_LOCK_STATE == 0&& l.C_ENABLE == "Y" && l.N_CURRENT_NUM < l.N_CAPACITY) |
| | | .ToList(); |
| | | } |
| | | |
| | |
| | | result = db.Queryable<Location>().OrderBy(a => a.N_COL) |
| | | .Where(a => a.S_AREA_CODE.Trim() == area && a.N_ROW == list[i].N_ROW |
| | | && a.N_COL > list[i].N_COL).First(); |
| | | if (result != null && result.N_LOCK_STATE == 0) |
| | | if (result != null && result.N_LOCK_STATE == 0 && result.C_ENABLE == "Y") |
| | | { |
| | | return result; |
| | | } |
| | |
| | | else |
| | | { |
| | | result = db.Queryable<Location>(). |
| | | Where(a => a.S_AREA_CODE.Trim() == area && a.N_LOCK_STATE == 0 && a.N_CURRENT_NUM == 0) |
| | | Where(a => a.S_AREA_CODE.Trim() == area && a.N_LOCK_STATE == 0 && a.C_ENABLE == "Y" && a.N_CURRENT_NUM == 0) |
| | | .OrderBy(a => a.N_COL).OrderBy(a => a.N_ROW).First(); |
| | | } |
| | | } |
| | |
| | | { |
| | | //校验起点货位是否存在/锁住 |
| | | var loc = db.Queryable<Location>().Where(a => a.S_CODE == model.START_LOC).First(); |
| | | if (loc == null || loc.N_LOCK_STATE != 0) |
| | | if (loc == null || loc.N_LOCK_STATE != 0 || loc.C_ENABLE != "Y") |
| | | { |
| | | return new Results { Code = "1", Message = $"{model.START_LOC}库位已被锁定!", Data = null }; |
| | | } |
| | |
| | | } |
| | | //校验终点货位是否存在/锁定 |
| | | var loc = db.Queryable<Location>().Where(a => a.S_CODE == model.END_LOC).First(); |
| | | if (loc == null || loc.N_LOCK_STATE != 0) |
| | | if (loc == null || loc.N_LOCK_STATE != 0 || loc.C_ENABLE != "Y") |
| | | { |
| | | return new Results { Code = "1", Message = $"{model.END_LOC}库位已被锁定!", Data = null }; |
| | | } |
| | |
| | | if (!string.IsNullOrEmpty(model.START_LOC)) |
| | | { |
| | | var loc = db.Queryable<Location>().Where(a => a.S_CODE == model.START_LOC).First(); |
| | | if (loc == null || loc.N_LOCK_STATE != 0) |
| | | if (loc == null || loc.N_LOCK_STATE != 0 || loc.C_ENABLE != "Y") |
| | | { |
| | | return new Results { Code = "1", Message = $"{model.START_LOC}库位已被锁定!", Data = null }; |
| | | } |
| | |
| | | LogHelper.Info($"有物料{itemCode}的货位编号{JsonConvert.SerializeObject(locCntrs)}"); |
| | | //找常规送检区内含有查出物料货位的货位 |
| | | var locList = db.Queryable<Location>() |
| | | .Where(p => p.S_AREA_CODE == areaCode && p.N_LOCK_STATE == 0) |
| | | .Where(p => p.S_AREA_CODE == areaCode && p.N_LOCK_STATE == 0 && p.C_ENABLE == "Y") |
| | | .Where(s => locCntrs.Contains(s.S_CODE.Trim())) |
| | | .ToList(); |
| | | |
| | |
| | | //找到该点位的库区 |
| | | var loc = db.Queryable<Location>().Where(a => a.S_CODE == model.PointCode).First(); |
| | | //没锁再继续走 |
| | | if (loc.N_LOCK_STATE == 0 && loc != null) |
| | | if (loc.N_LOCK_STATE == 0 && loc.C_ENABLE =="Y" && loc != null) |
| | | { |
| | | var reservoirs = Settings.ReservoirAreas.Where(s => s.areaName == "送检入库区").FirstOrDefault(); |
| | | //如果是送检入库区 |
| | |
| | | { |
| | | //创建任务 从空托缓存区到拆托机 |
| | | var list = db.Queryable<Location>().Where(a => a.S_AREA_CODE.Trim() == loc.S_AREA_CODE |
| | | && a.N_CURRENT_NUM > 0 && a.N_LOCK_STATE == 0).OrderByDescending(a => a.N_ROW) |
| | | && a.N_CURRENT_NUM > 0 && a.N_LOCK_STATE == 0 && a.C_ENABLE == "Y").OrderByDescending(a => a.N_ROW) |
| | | .OrderByDescending(a => a.N_COL).First(); |
| | | var startLoc = list.S_CODE; |
| | | |
| | |
| | | } |
| | | //终点 |
| | | var endloc = db.Queryable<Location>().Where(a => a.S_CODE == model.END_LOC).First(); |
| | | if (endloc == null || endloc.N_LOCK_STATE != 0) |
| | | if (endloc == null || endloc.N_LOCK_STATE != 0 || endloc.C_ENABLE != "Y") |
| | | { |
| | | return new Results { Code = "1", Message = $"{model.END_LOC}库位已被锁定!", Data = null }; |
| | | } |
| | |
| | | try |
| | | { |
| | | var loc = db.Queryable<Location>().Where(a => a.S_CODE == model.BIND_LOC).First(); |
| | | if (loc == null || loc.N_LOCK_STATE != 0) |
| | | if (loc == null || loc.N_LOCK_STATE != 0 || loc.C_ENABLE != "Y") |
| | | { |
| | | return new Results { Code = "1", Message = $"绑定货位不存在或已被锁", Data = null }; |
| | | |
| | |
| | | { |
| | | //校验起点货位是否存在/锁住 |
| | | var loc = db.Queryable<Location>().Where(a => a.S_CODE == startLoc).First(); |
| | | if (loc == null || loc.N_LOCK_STATE != 0) |
| | | if (loc == null || loc.N_LOCK_STATE != 0 || loc.C_ENABLE != "Y") |
| | | { |
| | | LogHelper.Info("起点货位不存在或已锁" + startLoc); |
| | | return false; |
| | |
| | | { |
| | | //校验终点货位是否锁 |
| | | var endloc = db.Queryable<Location>().Where(a => a.S_CODE == endLoc).First(); |
| | | if (endloc == null || endloc.N_LOCK_STATE != 0) |
| | | if (endloc == null || endloc.N_LOCK_STATE != 0 || endloc.C_ENABLE != "Y") |
| | | { |
| | | LogHelper.Info("终点货位已锁" + endLoc); |
| | | return false; |