服务端的TigerApi 框架,基于.NET6 2024 版本
Ben Lin
2024-05-12 0684e4f282dc5bc1bc6b0e449de8ab9c27d57f01
Smt上料事务
已添加4个文件
189 ■■■■■ 文件已修改
Tiger.Business/MES/Transaction/LoadingMaterial.cs 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business/MES/Transaction/MESTransactionBase.cs 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.IBusiness/MES/Transaction/ILoadingMaterial.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.IBusiness/MES/Transaction/IMESTransaction.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business/MES/Transaction/LoadingMaterial.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,109 @@
using Rhea.Common;
using Tiger.IBusiness;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Tiger.Model;
using Tiger.Model.Sharetronic.Shelf;
namespace Tiger.Business.MES.Transaction
{
    /// <summary>
    /// SMT上料调度事务
    /// </summary>
    public class LoadingMaterial : MESTransactionBase, ILoadingMaterial
    {
        public ILoadingMaterial Init(string id, string userCode, string apiHost, string orgCode)
        {
            TransID = id;
            UserCode = userCode;
            ApiHost = apiHost;
            OrgCode = orgCode;
            Logger.Console.Info($"Start {this.GetType().Name} Transaction[ID: {TransID}]");
            return this;
        }
        #region Propertys & Variables
        public string UserCode { get; set; }
        public long UserId { get; set; }
        public string OrgCode { get; set; }
        public bool his_isComplete { get; set; }
        public bool isManual { get; set; }
        public decimal cutQty { get; set; }
        #endregion Propertys & Variables
        #region Functions
        /// <summary>
        /// æ‰«ææ¡ç ä¸Šæ–™
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public async Task<ApiAction<ProdReqOutput>> ScanItem(BaseCodeInput input)
        {
            var action = new ApiAction<ProdReqOutput>();
            try
            {
                if (input.Code.IsNullOrEmpty())
                {
                    action.IsSuccessed = false;
                    action.LocaleMsg = Biz.L("条码不能为空");
                    return action;
                }
                //action.Data = new ProdReqOutput()
                //{
                //    SN = CurInv.SN,
                //    ItemCode = CurInv.ItemInfo.ITEM_CODE,
                //    Qty = CurInv.CurPkg.QTY,
                //    CutQty = CurInv.CurPkg.QTY - cutQty,
                //    isCutting = isCutting,
                //    isExceed = isExceed,
                //    ReqNo = req.BILLCODE,
                //    regionCode = CurInv.Region.REGION_CODE,
                //    locationCode = CurInv.Location?.LOCATION_CODE,
                //};
            }
            catch (Exception ex)
            {
                action.CatchExceptionWithLog(ex, $"扫描物料[{input.Code}]复核异常");
            }
            return action;
        }
        /// <summary>
        /// æ·»åŠ ä¸€ä¸ªApiAction的历史记录
        /// </summary>
        /// <param name="action"></param>
        public override void AddHistory<T>(Microsoft.AspNetCore.Http.HttpRequest request, ApiAction<T> action)
        {
            var his = action.History();
            //his.TraceDic.Add("CurReqType", CurReqType);
            //his.TraceDic.Add("CurInv", CurInv);
            //his.TraceDic.Add("req", req);
            //his.TraceDic.Add("toMes", toMes);
            //his.TraceDic.Add("CurPoolList", CurPoolList);
            //his.TraceDic.Add("isComplete", his_isComplete);
            //ActionHistoryList.Add($"{request.HttpContext.TraceIdentifier} at {action.Timestamp:yyyy/MM/dd HH:mm:ss.fff}: {request.Path}", his);
            LastActionTime = DateTime.Now;
        }
        #endregion Functions
        public override bool Close(bool needSaveHistoryLog = false)
        {
            //needSaveHistoryLog = true;
            //保存操作日志
            this.IsFinished = true;
            return IsFinished ? base.Close(needSaveHistoryLog) : IsFinished;
        }
    }//endClass
}
Tiger.Business/MES/Transaction/MESTransactionBase.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,47 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tiger.Business.WMS.Transaction;
using Tiger.IBusiness;
namespace Tiger.Business.MES.Transaction
{
    /// <summary>
    /// MES事务基类
    /// </summary>
    public abstract class MESTransactionBase : TransactionBase, IMESTransaction
    {
        /// <summary>
        /// MES事务基类
        /// </summary>
        public MESTransactionBase()
        {
        }
        /// <summary>
        /// å…³é—­äº‹åŠ¡
        /// </summary>
        /// <param name="needSaveHistoryLog"></param>
        /// <returns></returns>
        public override bool Close(bool needSaveHistoryLog = false)
        {
            return base.Close(needSaveHistoryLog);
        }
        public override void Dispose()
        {
            try
            {
                Logger.Console.Info($"Dispose Transaction(ID: {TransID}]");
            }
            catch (System.Exception ex)
            {
                Logger.Console.Fatal(ex, $"Dispose Transaction Exception(ID: {TransID}]");
            }
            base.Dispose();
        }
    }
}
Tiger.IBusiness/MES/Transaction/ILoadingMaterial.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
using Org.BouncyCastle.Ocsp;
using Rhea.Common;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tiger.Model;
using Tiger.Model.Sharetronic.Shelf;
namespace Tiger.IBusiness
{
    public interface ILoadingMaterial : IMESTransaction
    {
        public ILoadingMaterial Init(string id, string userCode, string apiHost, string orgCode);
        public bool Close(bool needSaveHistoryLog = false);
    }
}
Tiger.IBusiness/MES/Transaction/IMESTransaction.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
using Newtonsoft.Json;
using Rhea.Common;
using System;
namespace Tiger.IBusiness
{
    /// <summary>
    /// MES事务基类
    /// </summary>
    public interface IMESTransaction : ITransaction
    {
    }
}