服务端的TigerApi 框架,基于.NET6 2024 版本
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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
using MailKit.Search;
using Rhea.Common;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tiger.Business.WMS.Extensions;
using Tiger.Business.WMS.Transaction;
using Tiger.IBusiness;
using Tiger.Model;
using Tiger.Model.Entitys.MES.Position;
using Tiger.Model.Extensions;
 
namespace Tiger.Business.WMS.Common
{
    /// <summary>
    /// 备料任务单据
    /// </summary>
    public class Preparation : IPreparation
    {
        public Preparation(DbClient mainDB, string userCode, string orgCode)
        {
            MainDB = mainDB;
            UserCode = userCode;
            OrgCode = orgCode;
        }
 
        #region Propertys & Variables
        private static object AddOrderLock { get; } = new object();
        public DbClient MainDB { get; set; }
        public string UserCode { get; set; }
        public string OrgCode { get; set; }
        public BIZ_WMS_PREP Order { get; set; }
        public BIZ_WMS_PREP.BIZ_TYPEs BizType => Order.BIZ_TYPE.GetEnum<BIZ_WMS_PREP.BIZ_TYPEs>();
        #endregion Propertys & Variables
 
        #region Functions
        /// <summary>
        /// 备料任务添加单据
        /// </summary>
        /// <param name="bizType"></param>
        /// <param name="orderNo"></param>
        /// <returns></returns>
        public ApiAction<ScanOutput> AddOrder(BIZ_WMS_PREP.BIZ_TYPEs bizType, string orderNo)
        {
            lock(AddOrderLock)
            {
                var action = new ApiAction<ScanOutput>(new ScanOutput());
    
                // 查询是否已存在备料任务
                var src = MainDB.Queryable<BIZ_WMS_PREP_SRC>().Where(q => q.SOURCE_ORDER == orderNo && 
                                        SqlFunc.Subqueryable<BIZ_WMS_PREP>().Where(p => p.STATUS < BIZ_WMS_PREP.STATUSs.Sended.GetValue()).Any()).First();
                if (Order.IsNullOrEmpty())
                {
                    if (!src.IsNullOrEmpty())
                    {
                        Order = MainDB.Queryable<BIZ_WMS_PREP>().Where(q => q.ORDER_NO == src.ORDER_NO).IncludesAllFirstLayer().First();
                        //action.LocaleMsg = Biz.L("备料任务[{0}添加]单据[{1}]成功,请选择备料的物料行");
                        action.LocaleMsg = Biz.L("WMS.Out_BIZ_WMS_PREP.AddOrder.LoadSuccess", Order?.ORDER_NO, orderNo);
                        return action;
                    }
                    else
                    {
                        Order = new BIZ_WMS_PREP()
                        {
                            AUTH_ORG = OrgCode,
                            ORDER_NO = $"MP{DateTime.Now:yyMMdd}{(DateTime.Now - DateTime.Today).TotalSeconds:00000}",
                            BIZ_TYPE = bizType.GetValue(),
                            STATUS = BIZ_WMS_PREP.STATUSs.Init.GetValue(),
                        };
                    }
                }
                //合并发料只适用于包装车间工单发料,雅达包装车间编码:1002310010030758
                else if (Order.WS_CODE != "1002310010030758")
                {
                    action.IsSuccessed = false;
                    //action.LocaleMsg = Biz.L("备料任务[{0}]不是包装车间工单发料,无法合并单据发料");
                    action.LocaleMsg = Biz.L("WMS.Out_BIZ_WMS_PREP.AddOrder.PrepNot1002310010030758", Order.ORDER_NO);
                    return action;
                }
 
                if (!src.IsNullOrEmpty() && src.ORDER_NO != Order.ORDER_NO)
                {
                    action.IsSuccessed = false;
                    //action.LocaleMsg = Biz.L("单据[{0}]已属于备料任务[{1}],无法添加到当前备料任务[{2}]中,如需切换备料业务,请退出后重新选择");
                    action.LocaleMsg = Biz.L("WMS.Out_BIZ_WMS_PREP.AddOrder.NoFound", orderNo, src.ORDER_NO, Order.ORDER_NO);
                    return action;
                }
 
                // 查询单据明细,并合并到备料单的备料明细中
                var dtls = bizType.GetPickList(orderNo);
                if (dtls.Sum(q => q.QTY_ACT_REQ) <= 0)
                {
                    action.IsSuccessed = false;
                    //action.LocaleMsg = Biz.L("单据[{0}]未找到需要备料的行明细,请扫描正确的单据");
                    action.LocaleMsg = Biz.L("WMS.Out_BIZ_WMS_PREP.AddOrder.NoNeedPrep", orderNo);
                    return action;
                }
                //合并发料只适用于包装车间工单发料
                if (src.IsNullOrEmpty() && Order.BIZ_TYPE == BIZ_WMS_PREP.BIZ_TYPEs.WorkOrder.GetValue())
                {
                    var wo = Biz.Db.Queryable<BIZ_MES_WO>().Where(q => q.ORDER_NO == orderNo).First();
                    //雅达包装车间编码:1002310010030758
                    if (wo?.WS_CODE == "1002310010030758")
                    {
                        Order.WS_CODE = wo.WS_CODE;
                    }
                    else
                    {
                        action.IsSuccessed = false;
                        //action.LocaleMsg = Biz.L("单据[{0}]不是包装车间工单,无法合并单据发料");
                        action.LocaleMsg = Biz.L("WMS.Out_BIZ_WMS_PREP.AddOrder.WoNot1002310010030758", orderNo);
                        return action;
                    }
                }
 
                Order.SourceOrders = Order.SourceOrders ?? new();
                Order.SourceDetails = Order.SourceDetails ?? new();
                Order.Details = Order.Details ?? new();
                Order.Batchs = Order.Batchs ?? new();
                Order.SnList = Order.SnList ?? new();
                var srcOrder = new BIZ_WMS_PREP_SRC()
                {
                    AUTH_ORG = OrgCode,
                    ORDER_NO = Order.ORDER_NO,
                    SOURCE_CODE = bizType.GetSourceCode(),
                    SOURCE_ORDER = orderNo,
                    ADD_TIME = DateTime.Now,
                };
                Order.SourceOrders.Add(srcOrder);
                foreach (var dtl in dtls)
                {
                    dtl.AUTH_ORG = OrgCode;
                    var pdtl = Order.Details.Where(q => q.ITEM_CODE == dtl.ITEM_CODE).FirstOrDefault();
                    if (pdtl.IsNullOrEmpty())
                    {
                        pdtl = new ()
                        {
                            AUTH_ORG = OrgCode,
                            ORDER_NO = Order.ORDER_NO,
                            ORDER_LINE = (Order.Details.Max(q => q.LINE_CODE.ToInt32()) + 1).ToString(),
                            ITEM_CODE = dtl.ITEM_CODE,
                            SUBITEM_CODE = dtl.SUBITEM_CODE,
                            UNIT = dtl.UNIT,
                            PLAN_LOSS_QTY = dtl.PLAN_LOSS_QTY,
                            PLAN_LOSS_RATE = dtl.PLAN_LOSS_RATE,
                            IS_CALC_LOSS = dtl.IS_CALC_LOSS,
                            IS_WHOLE = dtl.IS_WHOLE,
                            SOURCE_CODE = dtl.SOURCE_CODE,
                            SOURCE_ORDER = dtl.SOURCE_ORDER,
                            SOURCE_LINE = dtl.SOURCE_LINE,
                            STATUS = BIZ_WMS_PREP_DTL.STATUSs.UnCalc.GetValue(),
                            FTY_CODE = dtl.FTY_CODE,
                            WS_CODE = dtl.WS_CODE,
                            LINE_CODE = dtl.LINE_CODE,
                            POST_CODE = dtl.POST_CODE,
                            OPER_CODE = dtl.OPER_CODE,
                            SEGMENT = dtl.SEGMENT,
                            SMT_NO = dtl.SMT_NO,
                            STATION_NO = dtl.STATION_NO,
                            FEEDER_NO = dtl.FEEDER_NO,
                            FEEDER_TYPE = dtl.FEEDER_TYPE,
                        };
                        Order.Details.Add(pdtl);
                    }
                    pdtl.QTY_REQ += dtl.QTY_ACT_REQ;
                    Order.SourceDetails.Add(dtl);
                }
                var srcInfo = Order.SourceOrders.Select(q => new { q.SOURCE_CODE, q.SOURCE_ORDER }).DistinctBy(q => q.SOURCE_ORDER).OrderBy(q => q.SOURCE_ORDER);
                Order.SOURCE_CODE = string.Join(",", srcInfo.Select(q => q.SOURCE_CODE));
                Order.SOURCE_ORDER = string.Join(",", srcInfo.Select(q => q.SOURCE_ORDER));
                if (Order.CurBatch.IsNullOrEmpty())
                {
                    var bacth = new BIZ_WMS_PREP_BTH()
                    {
                        AUTH_ORG = OrgCode,
                        ORDER_NO = Order.ORDER_NO,
                        BATCH = Order.Batchs.Max(q => q.BATCH) + 1,
                        PREP_MODE = BIZ_WMS_PREP_BTH.PREP_MODEs.Whole.GetValue(),
                        DLVY_MODE = BIZ_WMS_PREP_BTH.DLVY_MODEs.Supply.GetValue(),
                        STATUS = BIZ_WMS_PREP_BTH.STATUSs.WaitPick.GetValue(),
                        CALL_TIME = DateTime.Now,
                        PRIORITY = 4,
                    };
                    bacth.PLAN_TIME = bacth.CALL_TIME.AddHours(1);
                    Order.Batchs.Add(bacth);
                }
 
                //使用统一的事务DB对象
                var db = Biz.Db;
                var dbTran = db.UseTran(() =>
                {
                    var o = db.Storageable(Order, UserCode).WhereColumns(t => new { t.ORDER_NO, t.GHOST_ROW }).ToStorage();
                    o.AsInsertable.ExecuteCommand();
                    o.AsUpdateable.IgnoreColumns(q => q.ID).UpdateColumns(q => new { q.WS_CODE, q.SOURCE_CODE, q.SOURCE_ORDER, q.UPDATE_TIME, q.UPDATE_USER }).ExecuteCommand();
                    db.Storageable(Order.SourceOrders, UserCode).WhereColumns(t => new { t.ORDER_NO, t.SOURCE_ORDER, t.GHOST_ROW }).ToStorage().AsInsertable.ExecuteCommand();
                    db.Storageable(Order.SourceDetails, UserCode).WhereColumns(t => new { t.ORDER_NO, t.ITEM_CODE, t.GHOST_ROW }).ToStorage().AsInsertable.ExecuteCommand();
                    var d = db.Storageable(Order.Details, UserCode).WhereColumns(t => new { t.ORDER_NO, t.ITEM_CODE, t.GHOST_ROW }).ToStorage();
                    d.AsInsertable.ExecuteCommand();
                    d.AsUpdateable.IgnoreColumns(q => q.ID).UpdateColumns(q => new { q.QTY_REQ, q.UPDATE_TIME, q.UPDATE_USER }).ExecuteCommand();
                    db.Storageable(Order.Batchs, UserCode).WhereColumns(t => new { t.ORDER_NO, t.BATCH, t.GHOST_ROW }).ToStorage().AsInsertable.ExecuteCommand();
                });
                if (dbTran.IsSuccess)
                {
                    //action.LocaleMsg = Biz.L("备料任务[{0}添加]单据[{1}]成功,请选择备料的物料行");
                    action.LocaleMsg = Biz.L("WMS.Out_BIZ_WMS_PREP.AddOrder.LoadSuccess", Order?.ORDER_NO, orderNo);
                }
                else
                {
                    Logger.Default.Fatal(dbTran.ErrorException, "Database transaction save exception");
                    //抛出异常
                    throw dbTran.ErrorException;
                }
                return action;
            }
        }
 
        /// <summary>
        /// 生成领料单:调用领料单接口
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        //public async Task<ApiAction> GenerateRequisition(BaseInput input)
        //{
        //    var action = new ApiAction();
        //    var orderNo = input.Data;
        //    try
        //    {
        //        var order = await MainDB.Queryable<BIZ_U9_ASN>().Where(q => q.ORDER_NO == orderNo).Includes(q => q.Details, d => d._ItemInfos).IncludesAllFirstLayer().FirstAsync();
        //        if (order.IsNullOrEmpty())
        //        {
        //            action.IsSuccessed = false;
        //            //action.LocaleMsg = Biz.L($"找不到送货单[{0}]的单据信息,请提交正确的单号");
        //            action.LocaleMsg = Biz.L("WMS.Count_BIZ_U9_ASN.GenerateReceipt.ASNNotExists", orderNo);
        //            return action;
        //        }
        //        //验证条码是否正确
        //        if (order.STATUS != BIZ_U9_ASN.STATUSs.Counting.GetValue())
        //        {
        //            action.IsSuccessed = false;
        //            //action.LocaleMsg = Biz.L("生成收货单:送货单状态[{0}]异常");
        //            action.LocaleMsg = Biz.L("WMS.Count_BIZ_U9_ASN.GenerateReceipt.StatusException", order.STATUS.GetEnumDesc<BIZ_U9_ASN.STATUSs>());
        //            return action;
        //        }
 
        //        //查询是否清点完成
        //        var noFinish = order.Details.Where(q => q.QTY != order.SnList.Where(s => s.LINE_NO == q.LINE_NO && (s.STATUS == WMS_ITEM.STATUSs.Counted.GetValue() || q.STATUS == WMS_ITEM.STATUSs.Rejected.GetValue())).Sum(s => s.QTY));
        //        if (noFinish.Any())
        //        {
        //            action.IsSuccessed = false;
        //            //action.LocaleMsg = Biz.L("送货单[{0}]未清点完成,请先清点完成,未完成清点的行号如下:{1}");
        //            action.LocaleMsg = Biz.L("WMS.Count_BIZ_U9_ASN.GenerateReceipt.NoFinishCounting", orderNo, string.Join(",", noFinish.Select(q => q.LINE_NO)));
        //            return action;
        //        }
 
        //        var iInput = new CreateRcvBySrcASNInput
        //        {
        //            userId = UserCode,
        //            IsLogin = true,
        //            CreateRcvBySrcASNParam = new()
        //            {
        //                aSNToRcvTransDTOs = order.Details.Select(q => new ASNToRcvTransDTO
        //                {
        //                    ASNLineKey = q.ID,
        //                    TransQty = new() { m_amount1 = q.QTY },
        //                    BinInfoList = new() { new() { Bin = new() { m_code = q.ItemInfo.DEFAULT_LOCATION }, LocationQtySU = q.QTY, LocationQtyTU = q.QTY } },
        //                }).ToList(),
        //            }
        //        };
        //        var result = await DI.Resolve<IWMS_U9C>().CreateRcvBySrcASN(iInput);
        //        if (!result.IsSuccessed)
        //        {
        //            action.IsSuccessed = false;
        //            action.LocaleMsg = result.LocaleMsg;
        //            return action;
        //        }
 
        //        //根据接口返回收货单单号查询单据明细,并创建条码明细
        //        var receipt = new BIZ_U9_RECEIPT();
        //        receipt.Details = new();
        //        receipt.SnList = new();
        //        DbClient U9Cdb = Biz.DataSource["YadaU9C"].Client;
        //        var list = U9Cdb.Queryable<mes_ReturnedDocInfo>().Where(x => x.RcvId == result.Data[0].ID.ToDouble() && x.DocNo == result.Data[0].Code && x.SplitFlag != 1).ToList();
 
        //        if (list != null && list.Count > 0)
        //        {
        //            receipt.ID = list.First().RcvId.ToString();
        //            receipt.AUTH_ORG = order.AUTH_ORG;
        //            receipt.STATUS = BIZ_U9_RECEIPT.STATUSs.InQC.GetValue();
        //            receipt.ORDER_NO = list.First().DocNo;
        //            receipt.SUPP_CODE = list.First().SupplierCode;
        //            receipt.SUPP_NAME = list.First().SupplierName;
        //            receipt.RECEIVER = UserCode;
        //            receipt.RECEIVE_DATE = DateTime.Now;
        //            receipt.ASN_ID = order.ID;
        //            receipt.ASN_NO = order.ORDER_NO;
        //            receipt.ORDER_DATE = list.First().ModifiedOn;
        //            receipt.HANDLED = 0;
        //            receipt.HANDLED_DATE = DateTime.Now;
 
        //            foreach (var item in list)
        //            {
        //                var asnDtl = order.Details.First(q => q.ID == item.SrcASNDocLineId.ToString());
        //                BIZ_U9_RECEIPT_DTL receiptDt = new()
        //                {
        //                    ID = item.RcvLineId.ToString(),
        //                    AUTH_ORG = receipt.AUTH_ORG,
        //                    STATUS = BIZ_U9_RECEIPT.STATUSs.InQC.GetValue(),
        //                    ORDER_NO = item.DocNo,
        //                    LINE_NO = item.DocLineNo.ToString(),
        //                    ITEM_CODE = item.ItemCode,
        //                    QTY = item.EyeballingQtyTU.ToDouble(), // mes单据数量 --U9退补数量
        //                    QTY_GIFT = asnDtl.QTY_GIFT,
        //                    ASN_ID = item.SrcASNDocId.ToString(),
        //                    ASN_NO = asnDtl.ORDER_NO,
        //                    ASN_LINE_ID = item.SrcASNDocLineId.ToString(),
        //                    ASN_LINE = asnDtl.LINE_NO,
        //                    ERP_CODE = item.ItemCode1,
        //                };
        //                receipt.Details.Add(receiptDt);
        //            }
 
        //            foreach (var sn in order.SnList)
        //            {
        //                var dtl = receipt.Details.First(q => q.ASN_LINE == sn.LINE_NO);
        //                BIZ_U9_RECEIPT_SN receiptSn = new()
        //                {
        //                    AUTH_ORG = dtl.AUTH_ORG,
        //                    ORDER_NO = dtl.ORDER_NO,
        //                    LINE_NO = dtl.LINE_NO,
        //                    SN = sn.SN,
        //                    META_SN = sn.META_SN,
        //                    ITEM_CODE = sn.ITEM_CODE,
        //                    STATUS = WMS_ITEM.STATUSs.WaitIn.GetValue(),
        //                    QTY = sn.QTY,
        //                    UNIT = sn.UNIT,
        //                    IS_OK = sn.IS_OK,
        //                    IS_IN = sn.IS_IN,
        //                    LOTNO = sn.LOTNO,
        //                    CARTON_NO = sn.CARTON_NO,
        //                    PALLET_NO = sn.PALLET_NO,
        //                };
        //                receipt.SnList.Add(receiptSn);
        //            }
        //        }
 
        //        //更新库存表信息
        //        var items = MainDB.Queryable<WMS_ITEM>().Where(q => SqlFunc.Subqueryable<BIZ_U9_ASN_SN>().Where(s => s.SN == q.SN && s.ORDER_NO == order.ORDER_NO).Any()).ToList();
        //        var historys = new List<WMS_ITEM_HIS>();
        //        foreach (var item in items)
        //        {
        //            item.AUTH_ORG = receipt.AUTH_ORG;
        //            item.STATUS = WMS_ITEM.STATUSs.WaitIn.GetValue();
        //            item.SOURCE_CODE = item.TRANS_CODE;
        //            item.SOURCE_ORDER = item.TRANS_NO;
        //            item.SOURCE_LINE = item.TRANS_LINE;
        //            item.TRANS_CODE = nameof(BIZ_U9_RECEIPT);
        //            item.TRANS_NO = receipt.ORDER_NO;
        //            item.TRANS_LINE = receipt.SnList.First(q => q.SN == item.SN).LINE_NO;
        //            historys.Add(new WMS_ITEM_HIS(item, $"送货单[{order.ORDER_NO}]的条码[{item.SN}]生成收货单[{receipt.ORDER_NO}],待检验完成后可入库"));
        //        }
        //        var pkgs = MainDB.Queryable<WMS_ITEM_PKG>().Where(q => SqlFunc.Subqueryable<BIZ_U9_ASN_SN>().Where(s => s.SN == q.SN && s.ORDER_NO == order.ORDER_NO).Any()).ToList();
        //        foreach (var item in pkgs)
        //        {
        //            item.AUTH_ORG = receipt.AUTH_ORG;
        //            item.SOURCE_CODE = item.TRANS_CODE;
        //            item.SOURCE_ORDER = item.TRANS_NO;
        //            item.SOURCE_LINE = item.TRANS_LINE;
        //            item.TRANS_CODE = nameof(BIZ_U9_RECEIPT);
        //            item.TRANS_NO = receipt.ORDER_NO;
        //            item.TRANS_LINE = receipt.SnList.First(q => q.SN == item.SN).LINE_NO;
        //        }
        //        order.STATUS = BIZ_U9_ASN.STATUSs.Finished.GetValue();
        //        order.RECEIVER_ID = receipt.ID;
        //        order.RECEIVER_NO = receipt.ORDER_NO;
        //        order.RECEIVER = UserCode;
        //        order.RECEIVE_DATE = DateTime.Now;
 
        //        //使用统一的事务DB对象
        //        var db = GetCommitDB();
        //        var dbTran = db.UseTran(() =>
        //        {
        //            db.Updateable(items, UserCode).UpdateColumns(q => new { q.UPDATE_TIME, q.UPDATE_USER, q.AUTH_ORG, q.STATUS, q.TRANS_CODE, q.TRANS_NO, q.TRANS_LINE, q.SOURCE_CODE, q.SOURCE_ORDER, q.SOURCE_LINE }).ExecuteCommand();
        //            db.Updateable(pkgs, UserCode).UpdateColumns(q => new { q.UPDATE_TIME, q.UPDATE_USER, q.AUTH_ORG, q.TRANS_CODE, q.TRANS_NO, q.TRANS_LINE, q.SOURCE_CODE, q.SOURCE_ORDER, q.SOURCE_LINE }).ExecuteCommand();
        //            db.Insertable(historys, UserCode).ExecuteCommand();
        //            db.Updateable(order, UserCode).UpdateColumns(q => new { q.UPDATE_TIME, q.UPDATE_USER, q.STATUS, q.RECEIVER, q.RECEIVE_DATE, q.RECEIVER_ID, q.RECEIVER_NO }).ExecuteCommand();
        //            db.Insertable(receipt, UserCode).ExecuteCommand();
        //            db.Insertable(receipt.Details, UserCode).ExecuteCommand();
        //            db.Insertable(receipt.SnList, UserCode).ExecuteCommand();
        //        });
        //        if (dbTran.IsSuccess)
        //        {
        //            //action.LocaleMsg = Biz.L($"送货单[{0}]生成收货单[{1}]成功");
        //            action.LocaleMsg = Biz.L("WMS.Count_BIZ_U9_ASN.GenerateReceipt.Success", order.ORDER_NO, receipt.ORDER_NO);
        //        }
        //        else
        //        {
        //            Logger.Default.Fatal(dbTran.ErrorException, "Database transaction save exception");
        //            //抛出异常
        //            throw dbTran.ErrorException;
        //        }
        //    }
        //    catch (System.Exception ex)
        //    {
        //        //return action.CatchExceptionWithLog(ex, Biz.L("送货单[{0}]生成收货单异常"));
        //        return action.CatchExceptionWithLog(ex, Biz.L("WMS.Count_BIZ_U9_ASN.GenerateReceiptException", orderNo));
        //    }
        //    return action;
        //}        
        #endregion Functions
    }
}