服务端的TigerApi 框架,基于.NET6 2024 版本
Ben Lin
4 分钟以前 0c0309afae85b72746bd2431c10c7f5982e210e3
Tiger.Business.WMS/Transaction/PrintSemiProdLabel.cs
@@ -16,6 +16,8 @@
using Tiger.Model.MES.Yada;
using Apache.NMS.ActiveMQ.Commands;
using System.Diagnostics;
using static Microsoft.CodeAnalysis.CSharp.SyntaxTokenParser;
using Tiger.Model.Entitys.MES.U9C;
namespace Tiger.Business.WMS.Transaction
{
@@ -24,6 +26,7 @@
    /// </summary>
    public class PrintSemiProdLabel : WMSTransactionBase, IPrintSemiProdLabel
    {
        private readonly IMES_U9C _IMES_U9C = DI.Resolve<IMES_U9C>();
        public IPrintSemiProdLabel Init(string id, string userCode, string apiHost, string orgCode)
        {
            TransID = id;
@@ -58,36 +61,74 @@
                    return SetOutPutMqttMsg(action, input.Locale);
                }
                var DocLines = Biz.DataSource["YadaU9C"].Client.Ado.SqlQuery<mes_RcvRptDocLine>($"select * from mes_RcvRptDocLine where DocNo = '{input.SN}'");
                var temps = new List<TemplateInput>();
                var temps = new List<SemiTemplateInput>();
                foreach (var item in DocLines)
                {
                    var temp = new TemplateInput
                    var temp = new SemiTemplateInput
                    {
                        custCode="",
                        itemCode= item.ItemCode,
                        itemDesc= item.ItemDescription,
                        sapItemCode= "",
                        RcvRptDocId = item.ID.ToString(),
                        ItemCode = item.ItemCode,
                        ItemDesc = item.ItemDescription,
                        SapItemCode = "",
                        WoBatch = item.LotCode,
                        batchQty= item.PackQty,
                        qrCode="",
                        PackQty = item.PackQty.ToDouble(),
                        Qty = item.RcvQtyByWhUOM.ToDouble(),
                        DocNo = item.DocNo,
                        WorkOrder = item.Mo
                    };
                    temps.Add(temp);
                }
                //var y = Biz.Db.Storageable(DocLines, UserCode)
                //               .WhereColumns(t => new { t.ItemCode, t.LotCode })
                //               .ToStorage();
                //y.AsInsertable.ExecuteCommand();
                //y.AsUpdateable.IgnoreColumns(x => x.ID).ExecuteCommand();
                action.Data.Data = temps;
                action.LocaleMsg = Biz.L("WMS.PrintSemiProdLabel.Scan.ScanSuccessed");
                action.LocaleMsg = Biz.L("WMS.PrintSemiProdLabel.Scan.ScanSuccessed", input.SN);
            }
            catch (Exception ex)
            {
                //action.CatchExceptionWithLog(ex, $"扫描[{input.SN}]异常");
                action.CatchExceptionWithLog(ex, Biz.L("WMS.RePrint.Scan.ScanException", input.SN));
                action.CatchExceptionWithLog(ex, Biz.L("WMS.PrintSemiProdLabel.Scan.ScanException", input.SN));
            }
            return SetOutPutMqttMsg(action, input.Locale);
        }
        /// <summary>
        /// 扫码提交
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public async Task<ApiAction<ScanOutput>> ScanItem(BaseInput input)
        {
            var action = new ApiAction<ScanOutput>(new ScanOutput());
            try
            {
                var semiTemplate = (input.Data ?? "").JsonToObject<SemiTemplateInput>() ?? new SemiTemplateInput();
                //生成条码
                BarcodeCreateByAssignQtyInput barcodeCreateInput = new()
                {
                    RevDocId = semiTemplate.RcvRptDocId,
                    userId = input.AuthOption.UserId,
                    token = "",
                    IsLogin = true,
                    CreateBarCodeItemQty = semiTemplate.Qty,
                    LabelQty = semiTemplate.PackQty,
                };
                var snList = await _IMES_U9C.U9CCreateBarCodeByAssignQty(barcodeCreateInput);
                action.Data.Data = snList;
                //action.Data.Data = new List<string> {
                //    "YDRKD241200014/10/20051210.0013.00/YDMB241254400/0001",
                //    "YDRKD241200014/10/20051210.0013.00/YDMB241254400/0002",
                //    "YDRKD241200014/10/20051210.0013.00/YDMB241254400/0003",
                //    "YDRKD241200014/10/20051210.0013.00/YDMB241254400/0004"
                //};
            }
            catch (Exception ex)
            {
                //action.CatchExceptionWithLog(ex, $"扫描[{input.SN}]提交异常");
                action.CatchExceptionWithLog(ex, Biz.L("WMS.PrintSemiProdLabel.ScanItem.ScanItemException", input.SN));
            }
            return SetOutPutMqttMsg(action, input.Locale);
        }