using System; using System.Linq; using System.Collections.Generic; using System.Text; using System.Data; using System.ServiceModel; using SiaSun.LMS.Model; namespace SiaSun.LMS.Implement { public class StorageBase : S_BaseService { /// /// 生成库存 /// /// /// /// public bool StorageCreate(int MANAGE_ID, out string sResult) { bool bResult = true; sResult = string.Empty; try { SiaSun.LMS.Model.MANAGE_MAIN mMANAGE_MAIN = this._P_MANAGE_MAIN.GetModel(MANAGE_ID); if (null == mMANAGE_MAIN) { bResult = false; sResult = string.Format("管理任务索引 {0} 不存在", MANAGE_ID); return bResult; } IList lsMANAGE_LIST = this._P_MANAGE_LIST.GetListManageID(MANAGE_ID); SiaSun.LMS.Model.STORAGE_MAIN mSTORAGE_MAIN; SiaSun.LMS.Model.STORAGE_LIST mSTORAGE_LIST; foreach (SiaSun.LMS.Model.MANAGE_LIST mMANAGE_LIST in lsMANAGE_LIST) { mSTORAGE_LIST = this._P_STORAGE_LIST.GetModel(mMANAGE_LIST.STORAGE_LIST_ID); if (mSTORAGE_LIST != null) { mSTORAGE_LIST.STORAGE_LIST_QUANTITY += mMANAGE_LIST.MANAGE_LIST_QUANTITY; mSTORAGE_LIST.UPDATE_TIME = SiaSun.LMS.Common.StringUtil.GetDateTime(); if (mSTORAGE_LIST.STORAGE_LIST_QUANTITY == 0) this._P_STORAGE_LIST.Delete(mSTORAGE_LIST.STORAGE_LIST_ID); else this._P_STORAGE_LIST.Update(mSTORAGE_LIST); } else { mSTORAGE_MAIN = this._P_STORAGE_MAIN.GetModelStockBarcode(mMANAGE_MAIN.STOCK_BARCODE); if (null == mSTORAGE_MAIN) { mSTORAGE_MAIN = new SiaSun.LMS.Model.STORAGE_MAIN(); mSTORAGE_MAIN.CELL_ID = mMANAGE_MAIN.END_CELL_ID; mSTORAGE_MAIN.GOODS_TEMPLATE_ID = mMANAGE_MAIN.GOODS_TEMPLATE_ID; mSTORAGE_MAIN.STOCK_BARCODE = mMANAGE_MAIN.STOCK_BARCODE; mSTORAGE_MAIN.CELL_MODEL = mMANAGE_MAIN.CELL_MODEL; mSTORAGE_MAIN.STORAGE_REMARK = mMANAGE_MAIN.MANAGE_REMARK; mSTORAGE_MAIN.STORAGE_OPERATOR = mMANAGE_MAIN.MANAGE_OPERATOR; this._P_STORAGE_MAIN.Add(mSTORAGE_MAIN); } else { mSTORAGE_MAIN.CELL_ID = mMANAGE_MAIN.END_CELL_ID; this._P_STORAGE_MAIN.Update(mSTORAGE_MAIN); } mSTORAGE_LIST = new SiaSun.LMS.Model.STORAGE_LIST(); mSTORAGE_LIST.STORAGE_ID = mSTORAGE_MAIN.STORAGE_ID; mSTORAGE_LIST.PLAN_LIST_ID = mMANAGE_LIST.PLAN_LIST_ID; mSTORAGE_LIST.BOX_BARCODE = ""; mSTORAGE_LIST.STORAGE_LIST_QUANTITY = mMANAGE_LIST.MANAGE_LIST_QUANTITY; mSTORAGE_LIST.GOODS_ID = mMANAGE_LIST.GOODS_ID; bResult = this._S_GoodsService.GoodsPropertySetValue(mMANAGE_LIST.GOODS_ID, mSTORAGE_LIST, mMANAGE_LIST, out sResult); if (!bResult) { return bResult; } mSTORAGE_LIST.ENTRY_TIME = SiaSun.LMS.Common.StringUtil.GetDateTime(); mSTORAGE_LIST.UPDATE_TIME = SiaSun.LMS.Common.StringUtil.GetDateTime(); mSTORAGE_LIST.STORAGE_LIST_REMARK = mMANAGE_LIST.MANAGE_LIST_REMARK; mSTORAGE_LIST.BOX_BARCODE = mMANAGE_LIST.BOX_BARCODE; mSTORAGE_LIST.GOODS_PROPERTY1 = mMANAGE_LIST.GOODS_PROPERTY1; mSTORAGE_LIST.GOODS_PROPERTY2 = mMANAGE_LIST.GOODS_PROPERTY2; mSTORAGE_LIST.GOODS_PROPERTY3 = mMANAGE_LIST.GOODS_PROPERTY3; mSTORAGE_LIST.GOODS_PROPERTY4 = mMANAGE_LIST.GOODS_PROPERTY4; mSTORAGE_LIST.GOODS_PROPERTY5 = mMANAGE_LIST.GOODS_PROPERTY5; mSTORAGE_LIST.GOODS_PROPERTY6 = mMANAGE_LIST.GOODS_PROPERTY6; mSTORAGE_LIST.GOODS_PROPERTY7 = mMANAGE_LIST.GOODS_PROPERTY7; mSTORAGE_LIST.GOODS_PROPERTY8 = mMANAGE_LIST.GOODS_PROPERTY8; mSTORAGE_LIST.GOODS_PROPERTY9 = mMANAGE_LIST.GOODS_PROPERTY9; this._P_STORAGE_LIST.Add(mSTORAGE_LIST); } mMANAGE_LIST.STORAGE_LIST_ID = mSTORAGE_LIST.STORAGE_LIST_ID; this._P_MANAGE_LIST.Update(mMANAGE_LIST); } SiaSun.LMS.Model.STORAGE_MAIN mSTORAGE_MAIN_EXIST = this._P_STORAGE_MAIN.GetModelStockBarcode(mMANAGE_MAIN.STOCK_BARCODE); if (mSTORAGE_MAIN_EXIST != null) { if (this._P_STORAGE_LIST.GetListStorageID(mSTORAGE_MAIN_EXIST.STORAGE_ID).Count == 0) { this._P_STORAGE_MAIN.Delete(mSTORAGE_MAIN_EXIST.STORAGE_ID); } } } catch (Exception ex) { bResult = false; sResult = ex.Message; } return bResult; } /// /// 删除库存 /// /// /// /// public bool StorageDelete(int MANAGE_ID, out string sResult) { bool bResult = true; sResult = string.Empty; SiaSun.LMS.Model.MANAGE_MAIN mMANAGE_MAIN = this._P_MANAGE_MAIN.GetModel(MANAGE_ID); if (null == mMANAGE_MAIN) { bResult = false; sResult = string.Format("管理任务索引 {0} 不存在", MANAGE_ID); return bResult; } IList lsMANAGE_LIST = this._P_MANAGE_LIST.GetListManageID(MANAGE_ID); SiaSun.LMS.Model.STORAGE_MAIN mSTORAGE_MAIN = null; SiaSun.LMS.Model.STORAGE_LIST mSTORAGE_LIST = null; try { foreach (SiaSun.LMS.Model.MANAGE_LIST mMANAGE_LIST in lsMANAGE_LIST) { mSTORAGE_LIST = this._P_STORAGE_LIST.GetModel(mMANAGE_LIST.STORAGE_LIST_ID); if (null == mSTORAGE_LIST) { bResult = false; sResult = string.Format("库存索引 {0} 不存在", mMANAGE_LIST.STORAGE_LIST_ID); return bResult; } mSTORAGE_LIST.STORAGE_LIST_QUANTITY -= mMANAGE_LIST.MANAGE_LIST_QUANTITY; if (mSTORAGE_LIST.STORAGE_LIST_QUANTITY > 0) { this._P_STORAGE_LIST.Update(mSTORAGE_LIST); } else { this._P_STORAGE_LIST.Delete(mSTORAGE_LIST.STORAGE_LIST_ID); if (this._P_STORAGE_LIST.GetListStorageID(mSTORAGE_LIST.STORAGE_ID).Count == 0) { mSTORAGE_MAIN = this._P_STORAGE_MAIN.GetModel(mSTORAGE_LIST.STORAGE_ID); if (null != mSTORAGE_MAIN) { if (this._P_STORAGE_MAIN.GetListCellID(mSTORAGE_MAIN.CELL_ID).Count == 0) { this._S_CellService.CellUpdateStatus(mSTORAGE_MAIN.CELL_ID, SiaSun.LMS.Enum.CELL_STATUS.Nohave.ToString(), string.Empty, out sResult); } this._P_STORAGE_MAIN.Delete(mSTORAGE_MAIN.STORAGE_ID); bResult = this._S_CellService.CellUpdateStatus(mMANAGE_MAIN.START_CELL_ID, SiaSun.LMS.Enum.CELL_STATUS.Nohave.ToString(), SiaSun.LMS.Enum.RUN_STATUS.Enable.ToString(), out sResult); } } } } } catch (Exception ex) { bResult = false; sResult = ex.Message; } return bResult; } /// /// 库存转移 /// /// /// /// public bool StorageMove(int MANAGE_ID, out string sResult) { bool bResult = true; sResult = string.Empty; try { SiaSun.LMS.Model.MANAGE_MAIN mMANAGE_MAIN = this._P_MANAGE_MAIN.GetModel(MANAGE_ID); if (null == mMANAGE_MAIN) { bResult = false; sResult = string.Format("管理任务索引 {0} 不存在", MANAGE_ID); return bResult; } SiaSun.LMS.Model.STORAGE_MAIN mSTORAGE_MAIN; SiaSun.LMS.Model.STORAGE_LIST mSTORAGE_LIST; IList lsMANAGE_LIST = this._P_MANAGE_LIST.GetListManageID(MANAGE_ID); foreach (SiaSun.LMS.Model.MANAGE_LIST mMANAGE_LIST in lsMANAGE_LIST) { mSTORAGE_LIST = this._P_STORAGE_LIST.GetModel(mMANAGE_LIST.STORAGE_LIST_ID); if (null == mSTORAGE_LIST) { bResult = false; sResult = string.Format("库存索引 {0} 不存在", mMANAGE_LIST.STORAGE_LIST_ID); return bResult; } mSTORAGE_LIST.STORAGE_LIST_QUANTITY -= mMANAGE_LIST.MANAGE_LIST_QUANTITY; if (mSTORAGE_LIST.STORAGE_LIST_QUANTITY > 0) { this._P_STORAGE_LIST.Update(mSTORAGE_LIST); } else { this._P_STORAGE_LIST.Delete(mSTORAGE_LIST.STORAGE_LIST_ID); if (this._P_STORAGE_LIST.GetListStorageID(mSTORAGE_LIST.STORAGE_ID).Count == 0) { mSTORAGE_MAIN = this._P_STORAGE_MAIN.GetModel(mSTORAGE_LIST.STORAGE_ID); if (null != mSTORAGE_MAIN) { if (this._P_STORAGE_MAIN.GetListCellID(mSTORAGE_MAIN.CELL_ID).Count == 0) { this._S_CellService.CellUpdateStatus(mSTORAGE_MAIN.CELL_ID, SiaSun.LMS.Enum.CELL_STATUS.Nohave.ToString(), string.Empty, out sResult); } this._P_STORAGE_MAIN.Delete(mSTORAGE_MAIN.STORAGE_ID); } } } mSTORAGE_MAIN = this._P_STORAGE_MAIN.GetModelCellIDStockBarcode(mMANAGE_MAIN.END_CELL_ID, mMANAGE_MAIN.STOCK_BARCODE); if (null == mSTORAGE_MAIN) { mSTORAGE_MAIN = new SiaSun.LMS.Model.STORAGE_MAIN(); mSTORAGE_MAIN.GOODS_TEMPLATE_ID = mMANAGE_MAIN.GOODS_TEMPLATE_ID; mSTORAGE_MAIN.CELL_ID = mMANAGE_MAIN.END_CELL_ID; mSTORAGE_MAIN.STOCK_BARCODE = mMANAGE_MAIN.STOCK_BARCODE; mSTORAGE_MAIN.CELL_MODEL = mMANAGE_MAIN.CELL_MODEL; mSTORAGE_MAIN.STORAGE_REMARK = mMANAGE_MAIN.MANAGE_REMARK; this._P_STORAGE_MAIN.Add(mSTORAGE_MAIN); } else { mSTORAGE_MAIN.CELL_ID = mMANAGE_MAIN.END_CELL_ID; mSTORAGE_MAIN.CELL_MODEL = mMANAGE_MAIN.CELL_MODEL; this._P_STORAGE_MAIN.Update(mSTORAGE_MAIN); } mSTORAGE_LIST = new SiaSun.LMS.Model.STORAGE_LIST(); mSTORAGE_LIST.STORAGE_ID = mSTORAGE_MAIN.STORAGE_ID; mSTORAGE_LIST.PLAN_LIST_ID = mMANAGE_LIST.PLAN_LIST_ID; mSTORAGE_LIST.BOX_BARCODE = string.Empty; mSTORAGE_LIST.STORAGE_LIST_QUANTITY = mMANAGE_LIST.MANAGE_LIST_QUANTITY; mSTORAGE_LIST.GOODS_ID = mMANAGE_LIST.GOODS_ID; bResult = this._S_GoodsService.GoodsPropertySetValue(mMANAGE_LIST.GOODS_ID, mSTORAGE_LIST, mMANAGE_LIST, out sResult); if (!bResult) { return bResult; } mSTORAGE_LIST.ENTRY_TIME = SiaSun.LMS.Common.StringUtil.GetDateTime(); mSTORAGE_LIST.UPDATE_TIME = SiaSun.LMS.Common.StringUtil.GetDateTime(); mSTORAGE_LIST.STORAGE_LIST_REMARK = mMANAGE_LIST.MANAGE_LIST_REMARK; this._P_STORAGE_LIST.Add(mSTORAGE_LIST); } } catch (Exception ex) { bResult = false; sResult = ex.Message; } return bResult; } /// /// 库存转移 /// /// /// /// public bool StorageMove(string STOCK_BARCODE, int START_CELL_ID,int END_CELL_ID, out string sResult) { bool bResult = true; sResult = string.Empty; try { SiaSun.LMS.Model.STORAGE_MAIN mSTORAGE_MAIN = null; mSTORAGE_MAIN = this._P_STORAGE_MAIN.GetModelStockBarcode(STOCK_BARCODE); Model.MANAGE_MAIN mANAGE_MAIN = this._P_MANAGE_MAIN.GetModelStockBarcode(STOCK_BARCODE); IList lsSTORAGE_LIST = this._P_STORAGE_LIST.GetListStorageID(mSTORAGE_MAIN.STORAGE_ID); foreach (SiaSun.LMS.Model.STORAGE_LIST mSTORAGE_LIST in lsSTORAGE_LIST) { mSTORAGE_LIST.ENTRY_TIME = string.IsNullOrEmpty(mSTORAGE_LIST.ENTRY_TIME) ? SiaSun.LMS.Common.StringUtil.GetDateTime() : mSTORAGE_LIST.ENTRY_TIME; mSTORAGE_LIST.UPDATE_TIME = SiaSun.LMS.Common.StringUtil.GetDateTime(); this._P_STORAGE_LIST.Update(mSTORAGE_LIST); } if (null == mSTORAGE_MAIN) { bResult = false; sResult = string.Format("未找到库存{0}", STOCK_BARCODE); return bResult; } mSTORAGE_MAIN.CELL_ID = END_CELL_ID; mSTORAGE_MAIN.CELL_MODEL = mANAGE_MAIN.CELL_MODEL; this._P_STORAGE_MAIN.Update(mSTORAGE_MAIN); } catch (Exception ex) { bResult = false; sResult = ex.Message; } return bResult; } } }