服务端的TigerApi 框架,基于.NET6 2024 版本
Rodney Chen
2025-04-03 e163a27328c805ffec7c894259430f76f0881d00
Tiger.Business.WMS/ERP/U9C_WMS.cs
@@ -9,6 +9,7 @@
using Tiger.IBusiness;
using SqlSugar;
using System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder;
using Tiger.Model.Entitys.MES.U9C;
namespace Tiger.Business.WMS
{
@@ -129,9 +130,10 @@
                        ID = dtl.LineID.ToString(),
                        ITEM_CODE = dtl.ItemCode,
                        QTY_PACKING = dtl.PackQty.ToDouble(),
                        QTY = dtl.POQtyTU.ToDouble(),
                        QTY = dtl.ShipQtyTU.ToDouble(),
                        PO_QTY = dtl.POQtyTU,
                        SUPP_CODE = dtl.SupplierCode,
                        SUPP_LOTNO = dtl.SupplierLot,
                        SUPP_LOTNO = dtl.LotMater,
                        LOTNO = dtl.LotMater,
                        AUTH_ORG = orgs.FirstOrDefault(q => q.ID == dtl.Org.ToString())?.ORG_CODE,
                        CREATE_TIME = dtl.ModifiedOn,//--时间不更新
@@ -145,10 +147,12 @@
                foreach (var asn in asns)
                {
                    var snlist = db.Queryable<mes_MaterialBarCode>().Where(x => x.Segment1 == asn.ORDER_NO || x.Segment2 == asn.ORDER_NO).ToList();
                    foreach (var sn in snlist)
                    {
                        var barcode = new Barcode(sn.Code);
                        var dtl = dtls.First(q => q.LINE_NO == barcode.OrderLine);
                        var asnDtl = list.First(q => q.DocLineNo.ToString() == barcode.OrderLine);
                        BIZ_U9_ASN_SN info = new()
                        {
                            AUTH_ORG = asn.AUTH_ORG,
@@ -176,7 +180,7 @@
                                AUTH_ORG = asn.AUTH_ORG,
                                STATUS = WMS_ITEM.STATUSs.Incoming.GetValue(),
                                QTY = sn.WhQty,
                                PROD_DATE = barcode.ProdDate ?? DateTime.Now,
                                PROD_DATE = barcode.ProdDate ?? BarcodeAnalysis.GetDateTime(asnDtl.SupplierLot) ??DateTime.Now,
                                UNIT = barcode.Unit,
                                TRANS_CODE = nameof(BIZ_U9_ASN),
                                TRANS_NO = info.ORDER_NO,
@@ -223,7 +227,7 @@
                               .WhereColumns(t => new { t.ORDER_NO, t.GHOST_ROW })
                               .ToStorage();
                        y.AsInsertable.ExecuteCommand();
                        y.AsUpdateable.IgnoreColumns(x => x.ID).UpdateColumns(q => new { q.ORDER_NO, q.SUPP_CODE, q.SUPP_NAME, q.DELIVERY_DATE, q.PLANARRIVED_DATE, q.ORDER_DATE, q.CREATE_USER, q.UPDATE_TIME, q.AUTH_ORG, q.UPDATE_USER, }).ExecuteCommand();
                        y.AsUpdateable.IgnoreColumns(x => x.ID).UpdateColumns(q => new { q.ORDER_NO, q.SUPP_CODE, q.SUPP_NAME, q.DELIVERY_DATE,q.PLANARRIVED_DATE, q.ORDER_DATE, q.CREATE_USER, q.UPDATE_TIME, q.AUTH_ORG, q.UPDATE_USER, }).ExecuteCommand();
                    });
                }
                if (dtls.Any())
@@ -234,7 +238,7 @@
                               .WhereColumns(t => new { t.ORDER_NO, t.ID, t.GHOST_ROW })
                               .ToStorage();
                        y.AsInsertable.ExecuteCommand();
                        y.AsUpdateable.UpdateColumns(q => new { q.ORDER_NO, q.LINE_NO, q.SUPP_CODE, q.ID, q.ITEM_CODE, q.QTY_PACKING, q.QTY, q.SUPP_LOTNO, q.LOTNO, q.AUTH_ORG, q.CREATE_USER, q.UPDATE_TIME, q.UPDATE_USER, }).ExecuteCommand();
                        y.AsUpdateable.UpdateColumns(q => new { q.ORDER_NO, q.LINE_NO, q.SUPP_CODE, q.ID, q.ITEM_CODE, q.QTY_PACKING, q.QTY,q.PO_QTY, q.SUPP_LOTNO, q.LOTNO, q.AUTH_ORG, q.CREATE_USER, q.UPDATE_TIME, q.UPDATE_USER, }).ExecuteCommand();
                    });
                }
                if (sns.Any())
@@ -328,16 +332,18 @@
                {
                    BIZ_U9_RECEIPT_DTL info = new()
                    {
                        STATUS = BIZ_U9_RETURN.STATUSs.Imported.GetValue(), //状态
                        STATUS = BIZ_U9_RMA.STATUSs.Imported.GetValue(), //状态
                        ORDER_NO = item.DocNo,  //单据号
                        LINE_NO = item.DocLineNo.ToString(), //单据行号
                        ITEM_CODE = item.ItemCode, //物料编码
                        QTY = item.RtnFillQtyTU.ToDouble(), // mes单据数量 --U9退补数量
                        QTY = item.EyeballingQtyTU.ToDouble(), // mes单据数量 --U9退补数量
                        AUTH_ORG = orgs.FirstOrDefault(q => q.ID == item.Org.ToString())?.ORG_CODE,  //生产单元授权标识字符
                        CREATE_TIME = item.ModifiedOn,//--时间不更新
                        CREATE_USER = UserCode,
                       UPDATE_TIME = item.ModifiedOn,
                        UPDATE_USER = UserCode
                        UPDATE_TIME = item.ModifiedOn,
                        UPDATE_USER = UserCode,
                        ERP_STATUS_CODE = item.Status.ToString(),
                        ERP_STATUS_NAME = item.StatusName,
                    };
                    resultDt.Add(info);
                }
@@ -363,7 +369,7 @@
                               .WhereColumns(t => new { t.ORDER_NO, t.LINE_NO, t.GHOST_ROW })
                               .ToStorage();
                        y.AsInsertable.ExecuteCommand();
                        y.AsUpdateable.UpdateColumns(q => new { q.STATUS, q.ORDER_NO, q.LINE_NO, q.ITEM_CODE, q.QTY, q.AUTH_ORG, q.CREATE_USER, q.UPDATE_USER, q.UPDATE_TIME }).ExecuteCommand();
                        y.AsUpdateable.UpdateColumns(q => new { q.STATUS, q.ORDER_NO, q.LINE_NO, q.ITEM_CODE, q.QTY, q.AUTH_ORG, q.ERP_STATUS_CODE, q.ERP_STATUS_NAME, q.CREATE_USER, q.CREATE_TIME, q.UPDATE_USER, q.UPDATE_TIME }).ExecuteCommand();
                    });
                }
                Logger.Scheduler.Info($"收货单表头信息存入数据库,总数:[{resultDt.Count}]");
@@ -387,13 +393,13 @@
            string UserCode = "U9C_In_GetReturn";
            var list = db.Queryable<mes_ReturnedDocInfo>().Where(x => x.SplitFlag == 0 && x.ReceivementType == 1 && x.ModifiedOn > input.startTime.ToDateTime() && x.ModifiedOn < input.endTime.ToDateTime()).ToList();
            var orgs = Biz.Db.Queryable<SYS_ORGANIZATION>().ToList();
            List<BIZ_U9_RETURN> result = new();
            List<BIZ_U9_RETURN_DTL> resultDt = new();
            List<BIZ_U9_RMA> result = new();
            List<BIZ_U9_RMA_DTL> resultDt = new();
            if (list != null && list.Count > 0)
            {
                result = list
                .GroupBy(x => new { x.DocNo })
                .Select(x => new BIZ_U9_RETURN
                .Select(x => new BIZ_U9_RMA
                {
                    STATUS = BIZ_U9_RECEIPT.STATUSs.Init.GetValue(),  //状态
                    ORDER_NO = x.Key.DocNo,   //单号
@@ -413,9 +419,9 @@
                Logger.Scheduler.Info($"退货单表头信息存入实体中,总数:[{result.Count}]");
                foreach (var item in list)
                {
                    BIZ_U9_RETURN_DTL info = new()
                    BIZ_U9_RMA_DTL info = new()
                    {
                        STATUS = BIZ_U9_RETURN.STATUSs.Imported.GetValue(), //状态
                        STATUS = BIZ_U9_RMA.STATUSs.Imported.GetValue(), //状态
                        ORDER_NO = item.DocNo,  //单据号
                        LINE_NO = item.DocLineNo.ToString(), //单据行号
                        ITEM_CODE = item.ItemCode, //物料编码
@@ -617,7 +623,7 @@
                    {
                        ORDER_NO = item.DocNo,  //单据号
                        LINE_NO = item.DocLineNo.ToString(), //单据行号
                        STATUS = BIZ_U9_RETURN.STATUSs.Imported.GetValue(), //状态
                        STATUS = BIZ_U9_RMA.STATUSs.Imported.GetValue(), //状态
                        ITEM_CODE = item.ItemCode, //物料编码
                       UNIT =item.StoreUOM,// UNIT 单位 
                       QTY = item.StoreUOMQty,//QTY 单据数量