using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using WMS.Model.Base; using WMS.IData; using WMS.Common; namespace WMS.Business.Base { public class BussStorageArea : IBussFactory { public List GetAreaInfoDS(StorageAreaModel areaInfoModel) { DataTable table = DataProvider.Instance.StorageArea.GetAreaInfoDS(areaInfoModel, string.Empty); List model = ConvertHelper.ConvertToList(table); if (DataLogErrWrite(table, "获取库区信息结果集")) { return model; } return null; } /// /// 获取库区信息结果集 /// /// 库区信息 /// 库区信息结果集 public List GetAreaInfoDS(StorageAreaModel areaInfoModel, ref List areaGoodsTypeList) { DataTable table = DataProvider.Instance.StorageArea.GetAreaInfoDS(areaInfoModel,string.Empty); List model = ConvertHelper.ConvertToList(table); AreaGoodsTypeModel m = new AreaGoodsTypeModel(); m.AREA_ID = areaInfoModel.STORAGE_AREA_ID; DataTable table2 = DataProvider.Instance.AreaGoodsType.GetAreaGoodsTypeDT(m); areaGoodsTypeList = ConvertHelper.ConvertToList(table2); if (DataLogErrWrite(table, "获取库区信息结果集")) { return model; } return null; } /// /// 获取所有area区 如area="拣货区" /// /// 库区信息 /// 库区信息结果集 public List GetAreaInfoDS(StorageAreaModel areaInfoModel,string area) { DataTable table = DataProvider.Instance.StorageArea.GetAreaInfoDS(areaInfoModel, area); List model = ConvertHelper.ConvertToList(table); if (DataLogErrWrite(table, "获取所有area区 如area='拣货区'")) { return model; } return null; } /// /// 获取库区信息结果集(编号、名称) /// /// 库区信息 /// 库区信息结果集(编号、名称) public DataTable GetAreaInfoDSIdName(StorageAreaModel areaInfoModel) { DataTable table = DataProvider.Instance.StorageArea.GetAreaInfoDS(areaInfoModel, string.Empty); if (DataLogErrWrite(table, "获取库区信息结果集(编号、名称)")) { return table; } return null; } /// /// 新增或修改库区信息 /// /// 库位信息 /// flag 操作标示符 0:新增 1:修改 /// 是否成功 public string InsOrUpdAreaInfo(StorageAreaModel areaInfoModel, int flag, List list) { if (string.IsNullOrEmpty(areaInfoModel.PARENT_ID)) { areaInfoModel.PARENT_ID = areaInfoModel.STORAGE_ID;//父ID为仓库ID } areaInfoModel.STORAGE_AREA_ID = DataProvider.Instance.StorageArea.InsOrUpdAreaInfo(areaInfoModel, flag); logList.Add(DataProvider.Instance.logData); Transaction = DataProvider.Instance.TranOracle; if (flag == 0) { foreach (AreaGoodsTypeModel item in list) { item.AREA_ID = areaInfoModel.STORAGE_AREA_ID; DataProvider.Instance.AreaGoodsType.InsertAreaGoodsType(item); logList.Add(DataProvider.Instance.logData); } } if (flag == 1) { /*修改库区商品分类关联*/ AreaGoodsTypeModel m = new AreaGoodsTypeModel(); m.AREA_ID = areaInfoModel.STORAGE_AREA_ID; DataTable table = DataProvider.Instance.AreaGoodsType.GetAreaGoodsTypeDT(m); List hadList = ConvertHelper.ConvertToList(table);//已存在的、之后变成将要被删除的 List delList = new List();//hadList中将被删除的Model的序号 //添加 foreach (AreaGoodsTypeModel item in list) { DataTable dt = DataProvider.Instance.AreaGoodsType.GetAreaGoodsTypeDT(item); if (dt.Rows.Count == 0)//如果存在 不再增加 { DataProvider.Instance.AreaGoodsType.InsertAreaGoodsType(item); logList.Add(DataProvider.Instance.logData); } else { AreaGoodsTypeModel had = ConvertHelper.ConvertToList(dt)[0]; for (int i = 0; i < hadList.Count; i++)//将已存在且未被删除的序号记录 { if (hadList[i].AREA_ID == item.AREA_ID && hadList[i].GOODS_TYPE_ID == item.GOODS_TYPE_ID) { delList.Add(i); } } } } //将需要从已存在中移除的移除 for (int i = delList.Count - 1; i >= 0; i--) { hadList.RemoveAt(delList[i]); } //删除 foreach (AreaGoodsTypeModel item in hadList) { DataProvider.Instance.AreaGoodsType.DeleteAreaGoodsType(item); logList.Add(DataProvider.Instance.logData); } } TaCmtOrRak(); return ErrText; } /// /// 删除库区信息 /// /// /// 是否成功 public string DeleteAreaInfo(string strAreaInfoID) { DataProvider.Instance.StorageArea.DeleteAreaInfo(strAreaInfoID); logList.Add(DataProvider.Instance.logData); Transaction = DataProvider.Instance.TranOracle; TaCmtOrRak(); return ErrText; } /// /// 根据仓库编号停用或启用某库区 /// /// 某仓库编号 /// 0停用1正常 /// 是否成功 public string CloseAreaInfoByStorageInfoID(string strStorageInfoID, int flag) { DataProvider.Instance.StorageArea.CloseAreaInfoByStorageInfoID(strStorageInfoID,flag); DataLogErrWrite("根据仓库编号停用或启用某库区"); return ErrText; } /// /// 根据库区编号 删除该库区与属于它的库位信息 /// /// 库区编号 /// 是否成功 public string DeleteAreaAndLocation(string strAreaInfoID) { DataProvider.Instance.StorageArea.DeleteAreaInfo(strAreaInfoID); logList.Add(DataProvider.Instance.logData); Transaction = DataProvider.Instance.TranOracle; DataProvider.Instance.StorageAreaLocation.DeleteLocationInfoByAreaInfoID(strAreaInfoID); logList.Add(DataProvider.Instance.logData); TaCmtOrRak(); return ErrText; } /// /// 根据用户信息获得仓库库区信息结果集 /// /// /// public List GetStorageAreaByUserIDandStorageID(UserDataModel Model) { DataTable dt = DataProvider.Instance.StorageArea.GetStorageAreaByUserIDandStorageID(Model); List list = null; if (DataLogErrWrite(dt, "根据用户信息获取仓库库区工种信息结果集")) { list = ConvertHelper.ConvertToList(dt); } else { return list; } return list; } } }