服务端的TigerApi 框架,基于.NET6 2024 版本
Rodney Chen
2025-03-24 459d4a2b2bd5390a5d02947e75a934207fb9ad0c
Tiger.Business.WMS/T100ToWMS/TrasferInfoBusiness.cs
@@ -27,7 +27,7 @@
            {
                foreach (var item in masterData)
                {
                    item.SOURCECODE = item.BILLCODE;
                    item.SOURCE_ORDER = item.ORDER_NO;
                }
            }
            var detailSource = new List<TrasferInfoDetailDTO>();
@@ -54,32 +54,32 @@
            //var db = Biz.Db;// 区分正式库还是测试库
            var db = Biz.DataSource["WMS57"].Client; // 区分正式库还是测试库
            var BILLCODELst = masterData.Select(i => i.BILLCODE).Distinct().ToList();
            var BILLCODELst = masterData.Select(i => i.ORDER_NO).Distinct().ToList();
            #region 区分主表需要插入及更新的数据
            var hostoryMasterData = db.Queryable<BIZ_WMS_TRANSFER>().Where(i => BILLCODELst.Contains(i.BILLCODE)).ToList();// 获取主表旧数据
            var resMaster = hostoryMasterData.Select(i => i.BILLCODE).Distinct().ToList();
            var masterNeedInsert = masterData.Where(i => !resMaster.Contains(i.BILLCODE)).ToList();// 需要插入的数据
            var masterNeedUpdate = masterData.Where(i => resMaster.Contains(i.BILLCODE)).ToList();// 需要更新的数据
            var hostoryMasterData = db.Queryable<BIZ_WMS_TRANSFER>().Where(i => BILLCODELst.Contains(i.ORDER_NO)).ToList();// 获取主表旧数据
            var resMaster = hostoryMasterData.Select(i => i.ORDER_NO).Distinct().ToList();
            var masterNeedInsert = masterData.Where(i => !resMaster.Contains(i.ORDER_NO)).ToList();// 需要插入的数据
            var masterNeedUpdate = masterData.Where(i => resMaster.Contains(i.ORDER_NO)).ToList();// 需要更新的数据
            foreach (var item in masterNeedUpdate)
            {
                item.ID = hostoryMasterData.Where(i => i.BILLCODE == item.BILLCODE).FirstOrDefault()?.ID;
                item.ID = hostoryMasterData.Where(i => i.ORDER_NO == item.ORDER_NO).FirstOrDefault()?.ID;
            }
            #endregion 区分主表需要插入及更新的数据
            #region 区分明细表需要插入及更新的数据
            var hostoryDetailData = db.Queryable<BIZ_WMS_TRANSFER_DTL>().Where(i => BILLCODELst.Contains(i.BILLCODE)).ToList();// 获取明细表旧数据   剔除状态为2的数据
            var hostoryDetailData = db.Queryable<BIZ_WMS_TRANSFER_DTL>().Where(i => BILLCODELst.Contains(i.ORDER_NO)).ToList();// 获取明细表旧数据   剔除状态为2的数据
            var resDetail = hostoryDetailData.Select(i => i.ITEM_CODE).Distinct().ToList();// 获取所有的物料编号
            var ignoreCode = hostoryDetailData.Where(i => i.LINESTATUS == 2 || i.LINESTATUS == 3).Select(i => i.ITEM_CODE).Distinct().ToList();// 需要忽略的物料编号
            var ignoreCode = hostoryDetailData.Where(i => i.STATUS == 2 || i.STATUS == 3).Select(i => i.ITEM_CODE).Distinct().ToList();// 需要忽略的物料编号
            var needInsertData = detailData.Where(i => !resDetail.Contains(i.ITEM_CODE) && !ignoreCode.Contains(i.ITEM_CODE)).ToList();// 需要插入的数据
            if (type == "1")
            {
                foreach (var item in needInsertData)
                {
                    item.OUTQTY = 0;
                    item.QTY_OUT = 0;
                }
            }
@@ -87,9 +87,9 @@
            foreach (var item in needUpdateDetail)
            {
                if (item.LINESTATUS == 0 && type == "1")
                if (item.STATUS == 0 && type == "1")
                {
                    item.OUTQTY = 0;
                    item.QTY_OUT = 0;
                }
                item.AUTH_ORG = input[0].AUTH_ORG;
            }
@@ -97,7 +97,7 @@
            var exceptCode = detailData.Select(i => i.ITEM_CODE).Distinct().ToList();
            var deletecode = resDetail.Except(exceptCode).ToList();
            var needDeleteData = hostoryDetailData.Where(i => deletecode.Contains(i.ITEM_CODE) && BILLCODELst.Contains(i.BILLCODE)).ToList();
            var needDeleteData = hostoryDetailData.Where(i => deletecode.Contains(i.ITEM_CODE) && BILLCODELst.Contains(i.ORDER_NO)).ToList();
            foreach (var item in needUpdateDetail)
            {