| | |
| | | if (CDlist.Contains(EdnRarea)) |
| | | { |
| | | isCd = true; |
| | | inlock = LocationHelper.GetList<RowLock>(x => x.S_AREA_CODE == EdnRarea && x.S_LOCK_SRC == cir1.S_ITEM_CODE + cir1.S_ITEM_NAME && x.S_LOCK_STATE == "入库锁").FirstOrDefault(); |
| | | inlock = LocationHelper.GetList<RowLock>(x => x.S_AREA_CODE == EdnRarea && x.S_LOCK_SRC == cir1.S_ITEM_CODE + cir1.S_ITEM_NAME + cir1.S_CJ_NAME && x.S_LOCK_STATE == "入库锁").FirstOrDefault(); |
| | | if (inlock != null) |
| | | { |
| | | arloclist = arloclist.FindAll(x => x.N_ROW == inlock.N_ROW).ToList(); |
| | |
| | | if (s_clrel0 != null && string.IsNullOrEmpty(s_clrel0.S_TYPE)) |
| | | { |
| | | var cntrrel = ContainerHelper.GetCntrItemRel(rr_clrel.FirstOrDefault()?.S_CNTR_CODE).FirstOrDefault(); |
| | | if (cntrrel.S_ITEM_CODE == cir1.S_ITEM_CODE && cntrrel.S_ITEM_NAME == cir1.S_ITEM_NAME) |
| | | if (cntrrel.S_ITEM_CODE == cir1.S_ITEM_CODE && cntrrel.S_ITEM_NAME == cir1.S_ITEM_NAME && cntrrel.S_CJ_NAME == cir1.S_CJ_NAME) |
| | | { |
| | | if (_cl2.N_CURRENT_NUM < _cl2.N_CAPACITY) |
| | | endbit = _cl2; |
| | |
| | | var cntrrel = ContainerHelper.GetCntrItemRel(rel.FirstOrDefault()?.S_CNTR_CODE).FirstOrDefault(); |
| | | if (cntrrel == null) |
| | | continue; |
| | | if (cntrrel.S_ITEM_CODE == cir1.S_ITEM_CODE && cntrrel.S_ITEM_NAME == cir1.S_ITEM_NAME) |
| | | if (cntrrel.S_ITEM_CODE == cir1.S_ITEM_CODE && cntrrel.S_ITEM_NAME == cir1.S_ITEM_NAME && cntrrel.S_CJ_NAME == cir1.S_CJ_NAME) |
| | | { |
| | | LogHelper.Info($"入库库》使用{endbit.S_LOC_CODE}"); |
| | | } |
| | |
| | | LogHelper.Info($"{r.Key}原物料搬运 {sign} 任务 ,创建{res} "); |
| | | if (res && inlock == null && isCd) |
| | | { |
| | | var rrrr = new RowLock { S_LOCK_SRC = cir1.S_ITEM_CODE + cir1.S_ITEM_NAME, T_LOCK_TIME = DateTime.Now, S_LOCK_STATE = "入库锁", S_AREA_CODE = endbit.S_AREA_CODE, N_ROW = endbit.N_ROW }; |
| | | 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 }; |
| | | WCSHelper.Do(db => db.Insertable(rrrr).ExecuteCommand()); |
| | | } |
| | | if (EdnRarea == "YWLWJJB") InworkLock = false; |
| | |
| | | S_NOTE = cir.S_ITEM_CODE.Trim() + "&" + cir.S_ITEM_NAME.Trim(), |
| | | S_ITEM_CODE = cir.S_ITEM_CODE, |
| | | S_ITEM_NAME = cir.S_ITEM_NAME, |
| | | S_CJ_NAME = cir.S_CJ_NAME, |
| | | S_CNTR_CODE = cir.S_CNTR_CODE |
| | | }) |
| | | .ToList(); |
| | |
| | | if (tklist.Count() > 0) |
| | | { |
| | | var tk = tklist.FirstOrDefault(); |
| | | var Cjsj = LocationHelper.GetList<CjTimeOrder>(x => tklist.Select(c => c.S_CJ_NAME).ToList().Contains(x.S_CJ_NAME) && tklist.Select(c => c.SQL_ItemCode).ToList().Contains(x.S_ITEM_CODE)); |
| | | if (Cjsj.Count() > 0) |
| | | { |
| | | var Cj = Cjsj.OrderBy(e => e.T_CJ_TIME).ToList().FirstOrDefault(); |
| | | tk = tklist.Find(e => e.S_CJ_NAME == Cj.S_CJ_NAME && e.SQL_ItemCode == Cj.S_ITEM_CODE); |
| | | } |
| | | |
| | | var loc = LocationHelper.GetLoc(plc.location[0]); |
| | | if (loc.N_CURRENT_NUM > 0 && loc.S_LOCK_STATE == "无") |
| | | { |
| | |
| | | try |
| | | { |
| | | //return; |
| | | |
| | | |
| | | ///起点数据。 终点库区 堆叠层数。 |
| | | YwlPETK_CreInwork(PElocsFirst, "YWLTKMKQ", "提扣叉运", 1);//提扣入库 |
| | | YwlPETK_CreInwork(TKlocsFirst, "YWLTKMKQ", "收缩膜叉运"); // PE入库 |
| | | YwlPETK_CreInwork(PElocsFirst, "YWLTKMKQ", "提扣叉运", 3);//提扣入库--PE膜 |
| | | YwlPETK_CreInwork(TKlocsFirst, "YWLTKMKQ", "收缩膜叉运", 1); // PE入库 --提扣 |
| | | //YwlPETKtkOrder("YWLZSXBKQ", "YWLTKMKQ", "收缩膜叉运"); |
| | | //YwlPETKOutOrder("YWLTKMKQ", "YWLZSXBKQ", "收缩膜叉运");// PE中出库 |
| | | var tklist = LocationHelper.GetList<YWLWorkOrder>(x => x.SQL_PLineNo == "T2提升机-收缩膜" && x.WorkType == 1 && x.SQL_State == "执行中"); |
| | | if (tklist.Count() > 0) |
| | | { |
| | | var tk = tklist.FirstOrDefault(); |
| | | var Cjsj = LocationHelper.GetList<CjTimeOrder>(x => tklist.Select(c => c.S_CJ_NAME).ToList().Contains(x.S_CJ_NAME) && tklist.Select(c => c.SQL_ItemCode).ToList().Contains(x.S_ITEM_CODE)); |
| | | if (Cjsj.Count() > 0) |
| | | { |
| | | var Cj = Cjsj.OrderBy(e => e.T_CJ_TIME).ToList().FirstOrDefault(); |
| | | tk = tklist.Find(e => e.S_CJ_NAME == Cj.S_CJ_NAME && e.SQL_ItemCode == Cj.S_ITEM_CODE); |
| | | } |
| | | |
| | | |
| | | var loc = LocationHelper.GetLoc(plc.location[0]); |
| | | if (loc.N_CURRENT_NUM > 0 && loc.S_LOCK_STATE == "无") |
| | |
| | | var order = yuworders.FirstOrDefault(); |
| | | if (yuworders.Count() > 0) |
| | | { |
| | | var Cjsj = LocationHelper.GetList<CjTimeOrder>(x => yuworders.Select(c => c.S_CJ_NAME).ToList().Contains(x.S_CJ_NAME) && yuworders.Select(c => c.SQL_ItemCode).ToList().Contains(x.S_ITEM_CODE)); |
| | | if (Cjsj.Count() > 0) |
| | | { |
| | | var Cj = Cjsj.OrderBy(e => e.T_CJ_TIME).ToList().FirstOrDefault(); |
| | | order = yuworders.Find(e => e.S_CJ_NAME == Cj.S_CJ_NAME && e.SQL_ItemCode == Cj.S_ITEM_CODE); |
| | | } |
| | | //var Cjsj = LocationHelper.GetList<CjTimeOrder>(x => yuworders.Select(c => c.S_CJ_NAME).ToList().Contains(x.S_CJ_NAME) && yuworders.Select(c => c.SQL_ItemCode).ToList().Contains(x.S_ITEM_CODE)); |
| | | //if (Cjsj.Count() > 0) |
| | | //{ |
| | | // var Cj = Cjsj.OrderBy(e => e.T_CJ_TIME).ToList().FirstOrDefault(); |
| | | // order = yuworders.Find(e => e.S_CJ_NAME == Cj.S_CJ_NAME && e.SQL_ItemCode == Cj.S_ITEM_CODE); |
| | | //} |
| | | } |
| | | if (order != null) |
| | | { |
| | |
| | | var cirs = ContainerHelper.GetCntrItemRel(CNTR.FirstOrDefault().S_CNTR_CODE); |
| | | if (!cirs.Any()) continue; |
| | | cir = cirs.OrderByDescending(x => x.T_CREATE).FirstOrDefault(); |
| | | if (cir.S_ITEM_CODE == order.SQL_ItemCode && cir.S_ITEM_NAME == order.SQL_ItemName) |
| | | if (cir.S_ITEM_CODE == order.SQL_ItemCode && cir.S_ITEM_NAME == order.SQL_ItemName && cir.S_CJ_NAME == order.S_CJ_NAME) |
| | | { |
| | | |
| | | //plg 2025年6月13日 09:08:10 |
| | | Temp = new locCntItem |
| | | { |
| | | N_CURRENT_NUM = lastfull.N_CURRENT_NUM, |
| | | S_CNTR_CODE = cir.S_CNTR_CODE, |
| | | S_LOC_CODE = lastfull.S_LOC_CODE, |
| | | HalfOrFull = (cir.N_BQ_TRAY_TYPE == .5 ? 1 : (cir.N_BQ_TRAY_TYPE == .75 ? 2 : 3)), |
| | | S_NOTE = cir.S_ITEM_CODE.Trim() + "&" + cir.S_ITEM_NAME.Trim() |
| | | S_NOTE = cir.S_ITEM_CODE.Trim() + "&" + cir.S_ITEM_NAME.Trim(), |
| | | S_CJ_NAME = cir.S_CJ_NAME |
| | | }; |
| | | if (outlock != null) |
| | | { |
| | |
| | | var cirs = ContainerHelper.GetCntrItemRel(CNTR.FirstOrDefault().S_CNTR_CODE); |
| | | if (!cirs.Any()) continue; |
| | | cir = cirs.OrderByDescending(x => x.T_CREATE).FirstOrDefault(); |
| | | if (cir.S_ITEM_CODE == od.SQL_ItemCode && cir.S_ITEM_NAME == od.SQL_ItemName) |
| | | if (cir.S_ITEM_CODE == od.SQL_ItemCode && cir.S_ITEM_NAME == od.SQL_ItemName && cir.S_CJ_NAME == od.S_CJ_NAME) |
| | | { |
| | | //plg 2025年6月13日 09:09:25 |
| | | Temp = new locCntItem |
| | | { |
| | | N_CURRENT_NUM = lastfull.N_CURRENT_NUM, |
| | | S_CNTR_CODE = cir.S_CNTR_CODE, |
| | | S_LOC_CODE = lastfull.S_LOC_CODE, |
| | | HalfOrFull = (cir.N_BQ_TRAY_TYPE == .5 ? 1 : (cir.N_BQ_TRAY_TYPE == .75 ? 2 : 3)), |
| | | S_NOTE = cir.S_ITEM_CODE.Trim() + "&" + cir.S_ITEM_NAME.Trim() |
| | | S_NOTE = cir.S_ITEM_CODE.Trim() + "&" + cir.S_ITEM_NAME.Trim(), |
| | | S_CJ_NAME = cir.S_CJ_NAME |
| | | }; |
| | | if (outlock != null) |
| | | { |
| | |
| | | { |
| | | public string ItemCode { get; set; } |
| | | public string ItemName { get; set; } |
| | | |
| | | public string S_CJ_NAME { get; set; } |
| | | /// <summary> |
| | | /// 最高层 |
| | | /// </summary> |
| | |
| | | public string Row { get; set; } |
| | | |
| | | } |
| | | /// <summary> |
| | | /// 原物料纸箱出库 |
| | | /// </summary> |
| | | public static void AutoRun13TSJ() |
| | | { |
| | | var list = new List<string>() { "YWLAQWJ", "YWLBQWJ", "YWLCQSX", "YWLDQWJ" }; |
| | |
| | | source.SQL_PLineNo = source1.SQL_PLineNo; |
| | | source.FuLe_PLine_No = source1.FuLe_PLine_No; |
| | | source.SQL_LinkLineNO = source1.SQL_LinkLineNO; |
| | | source.SQL_Area = source1.SQL_Area; |
| | | source.SQL_Area = item; |
| | | source.SQL_UsingNow = source1.SQL_UsingNow; |
| | | source.SQL_State = source1.SQL_State; |
| | | source.SQL_WorkNo = source1.SQL_WorkNo; |
| | |
| | | { |
| | | if (dsi.TryGetValue(area, out var dictitems1)) |
| | | { |
| | | foreach (var d in dictitems1.FindAll(x => x.ItemCode == od.SQL_ItemCode && x.ItemName == od.SQL_ItemName)) |
| | | foreach (var d in dictitems1.FindAll(x => x.ItemCode == od.SQL_ItemCode && x.ItemName == od.SQL_ItemName && x.S_CJ_NAME == od.S_CJ_NAME)) |
| | | { |
| | | if (Lart == null) |
| | | Lart = d; |
| | |
| | | if (_clcntitem != null) |
| | | { |
| | | LogHelper.Info("相互是否匹配 _clcntitem S_ITEM_CODE:" + _clcntitem.S_ITEM_CODE + " od" + od.SQL_ItemCode + " _clcntitem S_ITEM_NAME:" + _clcntitem.S_ITEM_NAME + "od: " + od.SQL_ItemName); |
| | | if (_clcntitem.S_ITEM_CODE == od.SQL_ItemCode && _clcntitem.S_ITEM_NAME == od.SQL_ItemName) |
| | | if (_clcntitem.S_ITEM_CODE == od.SQL_ItemCode && _clcntitem.S_ITEM_NAME == od.SQL_ItemName && _clcntitem.S_CJ_NAME == od.S_CJ_NAME) |
| | | { |
| | | |
| | | StartBit = rl; |
| | |
| | | EndBit = locs1.FirstOrDefault().S_LOC_CODE; |
| | | } |
| | | } |
| | | 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); |
| | | 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) |
| | | { |
| | | |
| | |
| | | { |
| | | if (dsi.TryGetValue(area, out dictitems)) |
| | | { |
| | | var ill = dictitems.Find(x => x.ItemCode == _clcntitem.S_ITEM_CODE && x.ItemName == _clcntitem.S_ITEM_NAME); |
| | | var ill = dictitems.Find(x => x.ItemCode == _clcntitem.S_ITEM_CODE && x.ItemName == _clcntitem.S_ITEM_NAME && _clcntitem.S_CJ_NAME == x.S_CJ_NAME); |
| | | if (ill != null) |
| | | { |
| | | if (rl.N_CURRENT_NUM > ill.ItemLayer) |
| | |
| | | ItemName = _clcntitem.S_ITEM_NAME, |
| | | ItemCode = _clcntitem.S_ITEM_CODE, |
| | | ItemLayer = rl.N_CURRENT_NUM, |
| | | S_CJ_NAME = _clcntitem.S_CJ_NAME, |
| | | area = area, |
| | | Row = $"{rl.S_LOC_CODE}" |
| | | }); |
| | |
| | | ItemName = _clcntitem.S_ITEM_NAME, |
| | | ItemCode = _clcntitem.S_ITEM_CODE, |
| | | ItemLayer = rl.N_CURRENT_NUM, |
| | | S_CJ_NAME = _clcntitem.S_CJ_NAME, |
| | | area = area, |
| | | Row = $"{rl.S_LOC_CODE}" |
| | | }); |