杨前锦
2025-06-13 b7308bba3d7ffad271ce7fc7a93c8c45d76be87d
HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/wms/WMSHelper.cs
@@ -165,18 +165,39 @@
        }
        /// <summary>
        ///
        /// 查询成型机返料货位
        /// </summary>
        /// <param name="locCode"></param>
        /// <returns></returns>
        public static string getReturnMaterialLocCode(string locCode)
        public static SideLocConfig getReturnMaterialLocCode(string locCode)
        {
            var db = new SqlHelper<object>().GetInstance();
            var returnMaterialLoc = db.Queryable<SideLocConfig>().Where(a => a.S_LOC_CODE.Trim() == locCode).First();
            if (returnMaterialLoc != null) {
                return returnMaterialLoc.S_RETURN_LOC_CODE;
            return db.Queryable<SideLocConfig>().Where(a => a.S_LOC_CODE.Trim() == locCode).First();
            }
            return null;
        /// <summary>
        /// 查询成型机叫料位
        /// </summary>
        /// <param name="jtNo"></param>
        /// <returns></returns>
        public static Location getCallMaterialLocCode(string jtNo)
        {
            var db = new SqlHelper<object>().GetInstance();
            Location loc = null;
            var returnMaterialLocs = db.Queryable<SideLocConfig>().Where(a => a.EQP.Trim() == jtNo).ToList();
            if (returnMaterialLocs.Count > 0)
            {
                foreach (var item in returnMaterialLocs)
                {
                    loc = LocationHelper.GetLoc(item.S_LOC_CODE);
                    if (loc.N_CURRENT_NUM == 0 && loc.N_LOCK_STATE == 0)
                    {
                        break;
                    }
                }
            }
            return loc;
        }
        // --------------------------------------------------------福建佳通-----------------------------------------
@@ -239,6 +260,34 @@
                .OrderBy(a => a.S_PRI)
                .First();
            return logicConfig;
        }
        /// <summary>
        /// 查询某个物料在中转库的库存信息
        /// </summary>
        /// <param name="itemCode"></param>
        /// <returns></returns>
        public static List<CntrItemRel> getZZKInventoryInfo(string itemCode)
        {
            var db = new SqlHelper<object>().GetInstance();
            List < CntrItemRel > cntrItemRels = new List<CntrItemRel>();
            string areaCode = Settings.areaPropertyList.Where(a => a.areaName.Contains("中转库")).Select(a => a.areaCode).FirstOrDefault();
            if (areaCode != null)
            {
                cntrItemRels = db.Queryable<CntrItemRel>()
                    .LeftJoin<LocCntrRel>((a, b) => a.S_CNTR_CODE == b.S_CNTR_CODE)
                    .LeftJoin<Location>((a, b, c) => b.S_LOC_CODE == c.S_CODE)
                    .LeftJoin<Container>((a, b, c, d) => a.S_CNTR_CODE == d.S_CODE)
                    .Where((a, b, c, d) => c.S_AREA_CODE == areaCode
                                            && c.N_CURRENT_NUM == 1
                                            && c.N_LOCK_STATE == 0
                                            && a.S_ITEM_CODE == itemCode
                                            && d.N_E_STATE == 0             // 托盘正常
                    )
                    .OrderBy((a, b, c, d) => a.T_INBOUND_TIME)
                    .ToList();
            }
            return cntrItemRels;
        }
        /// <summary>
@@ -392,6 +441,11 @@
                };
                result = db.Insertable<AlarmRecord>(alarmRecord).ExecuteCommand() > 0;
            }
            else
            {
                alarmRecord.T_MODIFY = DateTime.Now;
                result = db.Updateable<AlarmRecord>(alarmRecord).ExecuteCommand() > 0;
            }
            return result;
        }
@@ -412,12 +466,12 @@
        /// <summary>
        /// 查询成型机线边
        /// </summary>
        /// <param name="locCode"></param>
        /// <param name="jtNo"></param>
        /// <returns></returns>
        public static SideLocConfig GetLineSideLoc(string locCode)
        public static SideLocConfig GetLineSideLoc(string jtNo)
        {
            var db = new SqlHelper<object>().GetInstance();
            return db.Queryable<SideLocConfig>().Where(a => a.S_LOC_CODE.Trim() == locCode).First();
            return db.Queryable<SideLocConfig>().Where(a => a.EQP.Trim() == jtNo).First();
        }
        /// <summary>
@@ -701,7 +755,20 @@
        }
        /// <summary>
        /// 查询MES叫料任务
        /// 根据机台号查询MES任务
        /// </summary>
        /// <param name="jtNo"></param>
        /// <returns></returns>
        internal static LjMesTask getLjMesTaskByJtNo(string jtNo)
        {
            // 1.查询MES任务表
            var db = new SqlHelper<object>().GetInstance();
            var mesTask = db.Queryable<LjMesTask>().Where(a => a.EQP.Trim() == jtNo && a.RECEIVE_FLAG.Trim() == "PENDING").OrderByDescending(a => a.T_CREATE).First();
            return mesTask;
        }
        /// <summary>
        /// 根据点位编号查询MES叫料任务
        /// </summary>
        /// <param name="positionId"></param>
        /// <returns></returns>
@@ -722,8 +789,6 @@
        {
            bool result = false;
            var db = new SqlHelper<object>().GetInstance();
            mesTask.RECEIVE_FLAG = "COMPLETE";
            mesTask.RECEIVE_DATE = DateTime.Now.ToString("yyyy-MM-dd");
            result = db.Updateable(mesTask).ExecuteCommand() > 0;
            return result;
        }
@@ -898,30 +963,29 @@
        /// <summary>
        /// 下发XC任务
        /// </summary>
        /// <param name="mesTaksId"></param>
        /// <param name="mesTask"></param>
        /// <returns></returns>
        public static bool addLjXcTask(int mesTaksId)
        public static bool addLjXcTask(LjMesTask mesTask)
        {
            bool result = false;
            var db = new SqlHelper<object>().GetInstance();
            var ljMesTask = GetLjMesTaskById(mesTaksId);
            if (ljMesTask != null) {
            if (mesTask != null) {
                LjXcTask ljXcTask = new LjXcTask() { 
                    ID = ljMesTask.ID,
                    POSITION_ID = ljMesTask.POSITION_ID,
                    RETURN_CODE = ljMesTask.RETURN_CODE,
                    MSG_TYPE = ljMesTask.MSG_TYPE,
                    PALLET_TYPE = ljMesTask.PALLET_TYPE,
                    MATERIAL_NAME = ljMesTask.MATERIAL_NAME,
                    MATERIAL_CODE = ljMesTask.MATERIAL_CODE,
                    QTY = ljMesTask.QTY,
                    YCL_BATCH = ljMesTask.YCL_BATCH,
                    PALLET_ID = ljMesTask.PALLET_ID,
                    AGVORDER_ID = ljMesTask.AGVORDER_ID,
                    ID = mesTask.ID,
                    POSITION_ID = mesTask.POSITION_ID,
                    RETURN_CODE = mesTask.RETURN_CODE,
                    MSG_TYPE = mesTask.MSG_TYPE,
                    PALLET_TYPE = mesTask.PALLET_TYPE,
                    MATERIAL_NAME = mesTask.MATERIAL_NAME,
                    MATERIAL_CODE = mesTask.MATERIAL_CODE,
                    QTY = mesTask.QTY,
                    YCL_BATCH = mesTask.YCL_BATCH,
                    PALLET_ID = mesTask.PALLET_ID,
                    AGVORDER_ID = mesTask.AGVORDER_ID,
                    CREATION_DATE = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                    RECEIVE_FLAG = ljMesTask.RECEIVE_FLAG,
                    EQP = ljMesTask.EQP,
                    PLAN_ID = ljMesTask.PLAN_ID
                    RECEIVE_FLAG = mesTask.RECEIVE_FLAG,
                    EQP = mesTask.EQP,
                    PLAN_ID = mesTask.PLAN_ID
                };
                result = db.Insertable<LjXcTask>(ljXcTask).ExecuteCommand() > 0;
            }