cjs
2 天以前 648f4270f4f56c5ca284dbcfa650de05e46a7052
HH.WCS.Mobox3.NongFuLinZhi/wms/WCSHelper.cs
@@ -1,4 +1,5 @@
using HH.WCS.Mobox3.NFLZ.util;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -13,11 +14,16 @@
            var date = DateTime.Now.ToString("yyMMdd");
            return $"TN{date}{id.ToString().PadLeft(4, '0')}";
        }
        internal static bool UpdateStatus(WCSTask task, string status) {
        internal static bool UpdateStatus(WCSTask task, string status, string S_AGV_NO = "") {
            Console.WriteLine("开始取货");
            var res = false;
            var db = new SqlHelper<WCSTask>().GetInstance();
            task.S_B_STATE = status;
            db.Updateable(task).UpdateColumns(it => new { it.S_B_STATE,it.N_B_STATE }).ExecuteCommand();
            if (S_AGV_NO != "")
            {
                task.S_EQ_NO = S_AGV_NO;
            }
            db.Updateable(task).UpdateColumns(it => new { it.S_B_STATE,it.N_B_STATE,it.S_EQ_NO }).ExecuteCommand();
            return res;
        }
        internal static bool UpdatePrioryty(WCSTask task,int Prioryty) {
@@ -117,7 +123,7 @@
        }
        internal static bool CheckActionRecordExist(string no, int code) {
            var db = new SqlHelper<TaskAction>().GetInstance();
            return db.Queryable<TaskAction>().Count(a => a.S_TASK_CODE == no&& a.N_ACTION_CODE == code) > 0;
            return db.Queryable<TaskAction>().Count(a => a.S_TASK_CODE == no && a.N_ACTION_CODE == code) > 0;
        }
        internal static void Begin(WCSTask task) {
            var db = new SqlHelper<WCSTask>().GetInstance();
@@ -147,6 +153,13 @@
                task.N_B_STATE = 5;
                task.S_B_STATE = WCSTask.GetStateStr(task.N_B_STATE);
                db.Updateable(task).UpdateColumns(it => new { it.N_B_STATE, it.S_B_STATE }).ExecuteCommand();
                var op = WMSHelper.GetWmsTask(task.S_OP_CODE);
                if (op != null)
                {
                    op.N_B_STATE = 2;
                    WMSHelper.UpdateTaskState(op);
                }
            }
        }
        internal static bool CreateTask(WCSTask TN_Task) {
@@ -206,5 +219,115 @@
        {
            //var order1 = new SqlHelper<OI_SYS_MAXID>().CreateTable();
        }
        #region 林芝WCS业务处理
        /// <summary>
        /// 林芝-查询工单信息--执行中或者暂停
        /// </summary>
        /// <param name="lineNo"></param>
        /// <returns></returns>
        public static LinZhiWorkOrder GetLinZhiWorkOrder(string lineNo)
        {
            var db = new SqlHelper<object>().GetInstance();
            var order = db.Queryable<LinZhiWorkOrder>().Where(a => a.S_PLineNo == lineNo && a.S_WorkState == "执行中").First();
            //var order = new SqlHelper<LinJiangWorkOrder>().Get(a => a.S_PLineNo == lineNo && (a.S_WorkState == "执行中"), a => a.T_CREATE, true);
            return order;
        }
        internal List<YiKuWorkOrder> GetLinJianglysisOrderWork(string orderType)
        {
            var order = new SqlHelper<YiKuWorkOrder>().GetList(a => a.S_ORDER_TYPE == orderType && a.S_WorkState == "执行中");
            return order;
        }
        internal static void CreateLinJiangMiddleTableTest()
        {
            var order4 = new SqlHelper<OI_SYS_MAXID>().CreateTable();//HTTP接口调用失败重发中间表
        }
        /// <summary>
        /// 林芝-查询当前设备信息
        /// </summary>
        /// <param name="lineNo"></param>
        /// <returns></returns>
        public static LinZhiDeviceState GetLinJiangDeviceState(string deviceName)
        {
            var order = new SqlHelper<LinZhiDeviceState>().Get(a => a.DeviceName == deviceName, a => a.DeviceTime, true);
            return order;
        }
        internal static bool UpdateLinJiangDeviceState(LinZhiDeviceState deviceInfo, string status, string dateTime, string extData = "")
        {
            var res = false;
            var db = new SqlHelper<LinZhiDeviceState>().GetInstance();
            deviceInfo.DeviceState = status;
            deviceInfo.DeviceTime = dateTime;
            db.Updateable(deviceInfo).UpdateColumns(it => new { it.DeviceState, it.DeviceTime }).ExecuteCommand();
            return res;
        }
        /// <summary>
        /// 林芝-插入设备信息
        /// </summary>
        /// <param name="wmsTask"></param>
        /// <returns></returns>
        internal static bool LinJiangInsertDeviceState(LinZhiDeviceState deviceState)
        {
            var db = new SqlHelper<LinZhiDeviceState>().GetInstance();
            return db.Insertable(deviceState).ExecuteCommand() > 0;
        }
        /// <summary>
        /// 林芝-查询托盘信息-下线时间之前的数据
        /// </summary>
        /// <param name="lineNo"></param>
        /// <returns></returns>
        public static List<LinZhiTrayInfo> GetLinZhiTrayInfoList(string dateTime, string deviceName)
        {
            var db = new SqlHelper<object>().GetInstance();
            var order = new SqlHelper<LinZhiTrayInfo>().GetList(a => Convert.ToDateTime(a.dateTime.Trim()) < Convert.ToDateTime(dateTime) && a.deviceName == deviceName);
            var trayInfo = new SqlHelper<LinZhiTrayInfo>().GetInstance().Queryable<LinZhiTrayInfo>().ToList();
            LogHelper.Info("富乐托盘表全部数据:" + JsonConvert.SerializeObject(trayInfo));
            //if (order != null && order.Count > 0)
            //{
            //    //删除当前产线下线时间前10分钟的托盘数据
            //    for (int i = order.Count - 1; i >= 0; i--)
            //    {
            //    }
            //}
            return order;
        }
        /// <summary>
        /// 林芝-更改工单信息:托规、批次号、物料层数
        /// </summary>
        /// <param name="task"></param>
        /// <param name="status"></param>
        /// <returns></returns>
        internal static bool UpdateWorkInfo(LinZhiWorkOrder task, string trayRule = "", string batchNo = "", string itemLayer = "")
        {
            var res = false;
            var db = new SqlHelper<LinZhiWorkOrder>().GetInstance();
            task.S_TrayRules = trayRule;
            task.S_BatchNo = batchNo;
            task.S_ItemLayer = itemLayer;
            db.Updateable(task).UpdateColumns(it => new { it.S_TrayRules, it.S_BatchNo, it.S_ItemLayer }).ExecuteCommand();
            return res;
        }
        /// <summary>
        /// 林芝-查询托盘信息-全部-为了对比当前是否为正常下线
        /// </summary>
        /// <param name="lineNo"></param>
        /// <returns></returns>
        public static List<LinZhiTrayInfo> GetLinJiangTrayInfoAllList(string deviceName)
        {
            var order = new SqlHelper<LinZhiTrayInfo>().GetList(a => a.deviceName == deviceName);
            return order;
        }
        #endregion
    }
}