服务端的TigerApi 框架,基于.NET6 2024 版本
Rodney Chen
2024-07-21 f656805650f0024d30ede19d8c32070f319ed507
Tiger.Business/MES/Biz.WorkBatch.cs
@@ -31,7 +31,9 @@
            #region Propertys & Variables
            public string OrderNo { get; set; }
            public BIZ_MES_WO WO { get; set; }
            public BAS_ITEM Product { get; set; }
            public BIZ_MES_WO_BATCH Batch { get; set; }
            public BAS_CUSTOMER Customer { get; set; }
            public List<BIZ_MES_WO_SN> WoSNs { get; set; }
            public List<MES_WO_EDGE> Edges { get; set; }
            public List<MES_WO_NODE> Nodes { get; set; }
@@ -55,8 +57,10 @@
            public WorkBatch Init(string lineCode)
            {
                WO = Biz.Db.Queryable<BIZ_MES_WO>().Where(q => q.ORDER_NO == OrderNo).First();
                Product = Biz.Db.Queryable<BAS_ITEM>().Where(q => q.ITEM_CODE == WO.ITEM_CODE && q.AUTH_ORG == WO.AUTH_ORG).First();
                Batch = Biz.Db.Queryable<BIZ_MES_WO_BATCH>().Where(q => q.ORDER_NO == OrderNo && q.ACT_LINE == lineCode 
                                        && (q.STATUS == BIZ_MES_WO_BATCH.STATUSs.Release.GetValue() || q.STATUS == BIZ_MES_WO_BATCH.STATUSs.Working.GetValue())).First();
                Customer = Biz.Db.Queryable<BAS_CUSTOMER>().Where(q => q.CUST_CODE == WO.CUST_CODE).First();
                WoSNs = Biz.Db.Queryable<BIZ_MES_WO_SN>().Where(q => q.WORK_ORDER == OrderNo).ToList();
                Edges = Biz.Db.Queryable<MES_WO_EDGE>().Where(q => q.WORK_ORDER == OrderNo).ToList();
                Nodes = Biz.Db.Queryable<MES_WO_NODE>().Where(q => q.WORK_ORDER == OrderNo).ToList();
@@ -76,7 +80,7 @@
            /// <returns></returns>
            public bool StartWorking(string user)
            {
                if (Batch.STATUS == BIZ_MES_WO_BATCH.STATUSs.Working.GetValue() || Batch.STATUS == BIZ_MES_WO_BATCH.STATUSs.Paused.GetValue())
                if (Batch.STATUS == BIZ_MES_WO_BATCH.STATUSs.Release.GetValue() || Batch.STATUS == BIZ_MES_WO_BATCH.STATUSs.Paused.GetValue())
                {
                   WO.STATUS = BIZ_MES_WO.STATUSs.Working.GetValue();
                   WO.ACT_START_TIME = WO.ACT_START_TIME < new DateTime(2000, 1, 1) ? DateTime.Now : WO.ACT_START_TIME;
@@ -99,6 +103,33 @@
            }
            /// <summary>
            /// 工单暂停
            /// </summary>
            /// <param name="user"></param>
            /// <returns></returns>
            public bool PausedWorking(string user)
            {
                if (Batch.STATUS == BIZ_MES_WO_BATCH.STATUSs.Working.GetValue())
                {
                    WO.STATUS = BIZ_MES_WO.STATUSs.Paused.GetValue();
                    Batch.STATUS = BIZ_MES_WO_BATCH.STATUSs.Paused.GetValue();
                    //保存数据库
                    var db = Biz.Db;
                    var dbTran = db.UseTran(() =>
                    {
                        db.Updateable(WO, user).UpdateColumns(q => new { q.UPDATE_TIME, q.UPDATE_USER, q.STATUS }).ExecuteCommand();
                        db.Updateable(Batch, user).UpdateColumns(q => new { q.UPDATE_TIME, q.UPDATE_USER, q.STATUS }).ExecuteCommand();
                    });
                    if (!dbTran.IsSuccess)
                    {
                        //throw dbTran.ErrorException;
                        return false;
                    }
                }
                return true;
            }
            /// <summary>
            /// 根据岗位编码判断是不是首站
            /// </summary>
            /// <param name="postCode"></param>