杨张扬
2025-06-16 4a3a2c6ec04cb9680915d29b1a3c9cec6957bf60
core/Monitor.cs
@@ -375,7 +375,7 @@
                && SqlFunc.Subqueryable<TN_Loc_Container>().Where(b => b.S_LOC_CODE == a.S_CODE).NotAny()//不能有货
                );
                if (endLoc != null)
                if (endLoc == null)
                {
                    LogHelper.Info("终点库区已满或者已全部锁住");
                    return;
@@ -385,15 +385,15 @@
                    .LeftJoin<TN_Loc_Container>((o, i) => o.S_CNTR_CODE == i.S_CNTR_CODE)
                    .Where((o, i) => i.S_LOC_CODE == startLoc.S_CODE).First();
                if (WCSHelper.CreateTask(startLoc.S_CODE, endLoc.S_CODE, "复检自动合格回库", 3, cginfo.S_CNTR_CODE, out string taskNo, cginfo.S_SPE))//创建搬送任务,起点终点容器
                if (WCSHelper.CreateTask(startLoc.S_CODE, endLoc.S_CODE, "复检合格自动回库", 3, cginfo.S_CNTR_CODE, out string taskNo, cginfo.S_SPE))//创建搬送任务,起点终点容器
                {
                    LocationHelper.LockLoc(startLoc.S_CODE, 2);//起点出库锁,
                    LocationHelper.LockLoc(endLoc.S_CODE, 1);//终点入库锁
                    LogHelper.Info($"生成复检自动合格回库任务成功,容器号{cginfo.S_CNTR_CODE},起点{startLoc.S_CODE},终点{endLoc.S_CODE}");
                    LogHelper.Info($"生成复检合格自动回库任务成功,容器号{cginfo.S_CNTR_CODE},起点{startLoc.S_CODE},终点{endLoc.S_CODE}");
                    Task task99 = Task.Run(() =>
                    {
                        WMSHelper.InsertOpInfo("自动轮询", "复检自动合格回库", cginfo.S_CNTR_CODE);
                        WMSHelper.InsertOpInfo("自动轮询", "复检合格自动回库", cginfo.S_CNTR_CODE);
                    });
                    Task task27 = Task.Run(() =>
@@ -416,7 +416,7 @@
                }
                else
                {
                    LogHelper.Info($"生成复检自动合格回库任务失败,容器号{cginfo.S_CNTR_CODE},起点{startLoc.S_CODE},终点{endLoc.S_CODE}");
                    LogHelper.Info($"生成复检合格自动回库任务失败,容器号{cginfo.S_CNTR_CODE},起点{startLoc.S_CODE},终点{endLoc.S_CODE}");
                    return;
                }
@@ -614,7 +614,10 @@
              
                targetInM = db.Queryable<TN_InventoryM>().LeftJoin<TN_CG_Detail>((o, i) => o.S_ID == i.S_ID).
                   Where((o, i) => System.DateTime.Now >= o.EXPIRATION && i.S_ITEM_STATE == "待检" && i.N_ITEM_STATE == 1).First();
                   Where((o, i) => System.DateTime.Now >= o.EXPIRATION
                  && ((i.S_ITEM_STATE == "待检" && i.N_ITEM_STATE == 1)
                   || (i.S_ITEM_STATE == "合格" && i.N_ITEM_STATE == 0))
                   ).First();
                if (targetInM != null)//检测出已过期的货品
                {
@@ -629,7 +632,10 @@
                }
                targetInM = db.Queryable<TN_InventoryM>().LeftJoin<TN_CG_Detail>((o, i) => o.S_ID == i.S_ID).
                 Where((o, i) => System.DateTime.Now < o.EXPIRATION && i.S_ITEM_STATE == "待检" && i.N_ITEM_STATE == 1).First();
                 Where((o, i) => System.DateTime.Now < o.EXPIRATION
                   && ((i.S_ITEM_STATE == "待检" && i.N_ITEM_STATE == 1)
                   || (i.S_ITEM_STATE == "合格" && i.N_ITEM_STATE == 0))
                 ).First();
                if (targetInM != null)//检测出快过期的货品
                {
@@ -637,8 +643,8 @@
                    db.Updateable<TN_InventoryM>(targetInM).UpdateColumns(it => new { it.EXPIRATION_DAY }).ExecuteCommand();
                }
                targetInM = db.Queryable<TN_InventoryM>().First(a => Convert.ToInt32(a.EXPIRATION_DAY) > 0 && a.ITEMSTATE == "过期");//已过期的货品,剩余天数改为0
                if (targetInM != null)
                targetInM = db.Queryable<TN_InventoryM>().First(a => Convert.ToInt32(a.EXPIRATION_DAY) > 0 && a.ITEMSTATE == "过期");
                if (targetInM != null)//已过期的货品,剩余天数改为0
                {
                    targetInM.EXPIRATION_DAY = "0";
                    db.Updateable<TN_InventoryM>(targetInM).UpdateColumns(it => new { it.EXPIRATION_DAY }).ExecuteCommand();