| | |
| | | .ToList(); |
| | | if (locInfo.Count > 0) |
| | | { |
| | | if(areaName == "瓶坯即产满框缓存") |
| | | { |
| | | locInfo = locInfo.Where(a => a.N_ROW == 1 || a.N_ROW == 2).ToList(); |
| | | } |
| | | LogHelper.Info($"入库算法02:查询到可入货位的数量为:{locInfo.Count}"); |
| | | foreach (var a in locInfo) |
| | | { |
| | |
| | | var locList = db.Queryable<Location>().Where(a => a.S_AREA_CODE == it.areaCode && a.N_CURRENT_NUM > 0).OrderBy(a => a.N_ROW).OrderByDescending(a => a.N_COL).Take(1).PartitionBy(a => a.N_ROW).Includes(a => a.LocCntrRel).ToList(); |
| | | if (locList.Count > 0) |
| | | { |
| | | if(areaName == "瓶坯即产满框缓存" && string.IsNullOrEmpty(itemCode)) |
| | | { |
| | | locList = locList.Where(a => a.N_ROW == 3).ToList(); |
| | | } |
| | | LogHelper.Info($"出库算法02:查询到可出货位数量:{locList.Count}"); |
| | | foreach (var a in locList) |
| | | { |
| | |
| | | { |
| | | LogHelper.Info($"{endAreaName}未配置"); |
| | | } |
| | | |
| | | if(result == null) |
| | | { |
| | | if(endAreaName == "翻斗机库存空托下线(瓶坯)") |
| | | { |
| | | //瓶坯非即产空托下线 如果非即产空框库区无法入库,则下线到瓶坯即产满框缓存 4 5 排 |
| | | areaInfo = Settings.areaInfos.Where(a => a.areaName == "瓶坯即产满框缓存" && a.enable == 1).FirstOrDefault(); |
| | | if (areaInfo != null) |
| | | { |
| | | var locList = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && (a.N_ROW == 4 || a.N_ROW == 5) && a.N_CURRENT_NUM == 0).OrderBy(a => a.N_ROW).OrderBy(a => a.N_COL).Take(1).PartitionBy(a => a.N_ROW).ToList(); |
| | | if (locList.Count > 0) |
| | | { |
| | | foreach (var a in locList) |
| | | { |
| | | var rowInfo = db.Queryable<RowLock>().Where(b => b.S_AREA_CODE == a.S_AREA_CODE && b.S_ROW == a.S_ROW && a.S_LOCK_STATE == "无").First(); |
| | | if (rowInfo != null && a.S_LOCK_STATE == "无") |
| | | { |
| | | result = a; |
| | | break; |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info("瓶坯即产满框缓存未配置"); |
| | | } |
| | | } |
| | | if(endAreaName == "翻斗机即产空托下线(瓶坯)") |
| | | { |
| | | //瓶坯即产空托下线 如果即产空框库区无法入库,则下线到瓶坯即产满框缓存 3 排 |
| | | areaInfo = Settings.areaInfos.Where(a => a.areaName == "瓶坯即产满框缓存" && a.enable == 1).FirstOrDefault(); |
| | | if (areaInfo != null) |
| | | { |
| | | var locInfo = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_ROW == 3 && a.N_CURRENT_NUM == 0).OrderBy(a => a.N_COL).First(); |
| | | if (locInfo != null ) |
| | | { |
| | | var rowInfo = db.Queryable<RowLock>().Where(b => b.S_AREA_CODE == locInfo.S_AREA_CODE && b.S_ROW == locInfo.S_ROW && locInfo.S_LOCK_STATE == "无").First(); |
| | | if (rowInfo != null && locInfo.S_LOCK_STATE == "无") |
| | | { |
| | | result = locInfo; |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info("瓶坯即产满框缓存未配置"); |
| | | } |
| | | if(result == null) |
| | | { |
| | | BCPEmptyOut(db, "翻斗机库存空托下线(瓶坯)"); |
| | | } |
| | | } |
| | | } |
| | | return result; |
| | | } |
| | | |
| | |
| | | { |
| | | var cir = new LocCntrRel { S_LOC_CODE = loc, S_CNTR_CODE = cntrCode, S_SRC = deviceName }; |
| | | if (db.Insertable<LocCntrRel>(cir).ExecuteCommand() > 0) LogHelper.Info($"货位容器表绑定成功,货位号:{loc},托盘号:{cntrCode}"); |
| | | BindCntrItem(cntrCode, itemCode, batchNo, itemlayer); |
| | | var Con = db.Queryable<Container>().Where(a => a.S_CODE == cntrCode).First(); |
| | | if(Con == null) |
| | | { |
| | | if(db.Insertable<Container>(new Container |
| | | { |
| | | S_CODE = cntrCode, |
| | | N_TYPE = 1, |
| | | N_DETAIL_COUNT = 1 |
| | | }).ExecuteCommand() > 0) |
| | | { |
| | | LogHelper.Info($"容器表绑定成功,托盘号:{cntrCode}"); |
| | | } |
| | | } |
| | | if (!string.IsNullOrEmpty(itemCode)) |
| | | { |
| | | BindCntrItem(cntrCode, itemCode, batchNo, itemlayer); |
| | | } |
| | | } |
| | | } |
| | | }); |
| | |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 计算瓶坯非即产空托起点 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | internal static Location FJCKTLoc() |
| | | { |
| | | var db = new SqlHelper<object>().GetInstance(); |
| | | Location result = null; |
| | | //在瓶坯即产满框 查询 4 5两排的空框 |
| | | var areaInfo = Settings.areaInfos.Where(a => a.areaName == "瓶坯即产满框缓存" && a.enable == 1).FirstOrDefault(); |
| | | if(areaInfo != null) |
| | | { |
| | | var locList = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && (a.N_ROW == 4 || a.N_ROW == 5) && a.N_CURRENT_NUM > 0).OrderBy(a => a.N_ROW).OrderByDescending(a => a.N_COL).Take(1).PartitionBy(a => a.N_ROW).ToList(); |
| | | if(locList.Count > 0) |
| | | { |
| | | foreach (var a in locList) |
| | | { |
| | | var rowInfo = db.Queryable<RowLock>().Where(b => b.S_AREA_CODE == a.S_AREA_CODE && b.S_ROW == a.S_ROW && b.S_LOCK_STATE == "无").First(); |
| | | if(rowInfo != null && a.S_LOCK_STATE == "无") |
| | | { |
| | | result = a; |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | if(result == null) |
| | | { |
| | | result = TaskProcess.BCPInOrOut(db, false, "瓶坯库区", ""); |
| | | } |
| | | |
| | | return result; |
| | | } |
| | | } |
| | | } |