服务端的TigerApi 框架,基于.NET6 2024 版本
Rodney Chen
2024-05-12 a405d2ed23559cac53dc6efa1d558447d4155023
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
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
}