| | |
| | | { |
| | | foreach (var item in masterData) |
| | | { |
| | | item.SOURCECODE = item.BILLCODE; |
| | | item.SOURCE_ORDER = item.ORDER_NO; |
| | | } |
| | | } |
| | | var detailSource = new List<TrasferInfoDetailDTO>(); |
| | |
| | | //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; |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | 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; |
| | | } |
| | |
| | | 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) |
| | | { |