BaoKai_202508-Wms-Jingwang..../WMS.Business/Base/BussStorageArea.cs

224 lines
8.7 KiB
C#
Raw Normal View History

2025-08-24 09:35:55 +08:00
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<StorageAreaModel> GetAreaInfoDS(StorageAreaModel areaInfoModel)
{
DataTable table = DataProvider.Instance.StorageArea.GetAreaInfoDS(areaInfoModel, string.Empty);
List<StorageAreaModel> model = ConvertHelper<StorageAreaModel>.ConvertToList(table);
if (DataLogErrWrite(table, "获取库区信息结果集"))
{
return model;
}
return null;
}
/// <summary>
/// 获取库区信息结果集
/// </summary>
/// <param name="areaInfoModel">库区信息</param>
/// <returns>库区信息结果集</returns>
public List<StorageAreaModel> GetAreaInfoDS(StorageAreaModel areaInfoModel, ref List<AreaGoodsTypeModel> areaGoodsTypeList)
{
DataTable table = DataProvider.Instance.StorageArea.GetAreaInfoDS(areaInfoModel,string.Empty);
List<StorageAreaModel> model = ConvertHelper<StorageAreaModel>.ConvertToList(table);
AreaGoodsTypeModel m = new AreaGoodsTypeModel();
m.AREA_ID = areaInfoModel.STORAGE_AREA_ID;
DataTable table2 = DataProvider.Instance.AreaGoodsType.GetAreaGoodsTypeDT(m);
areaGoodsTypeList = ConvertHelper<AreaGoodsTypeModel>.ConvertToList(table2);
if (DataLogErrWrite(table, "获取库区信息结果集"))
{
return model;
}
return null;
}
/// <summary>
/// 获取所有area区 如area="拣货区"
/// </summary>
/// <param name="areaInfoModel">库区信息</param>
/// <returns>库区信息结果集</returns>
public List<StorageAreaModel> GetAreaInfoDS(StorageAreaModel areaInfoModel,string area)
{
DataTable table = DataProvider.Instance.StorageArea.GetAreaInfoDS(areaInfoModel, area);
List<StorageAreaModel> model = ConvertHelper<StorageAreaModel>.ConvertToList(table);
if (DataLogErrWrite(table, "获取所有area区 如area='拣货区'"))
{
return model;
}
return null;
}
/// <summary>
/// 获取库区信息结果集(编号、名称)
/// </summary>
/// <param name="areaInfoModel">库区信息</param>
/// <returns>库区信息结果集(编号、名称)</returns>
public DataTable GetAreaInfoDSIdName(StorageAreaModel areaInfoModel)
{
DataTable table = DataProvider.Instance.StorageArea.GetAreaInfoDS(areaInfoModel, string.Empty);
if (DataLogErrWrite(table, "获取库区信息结果集(编号、名称)"))
{
return table;
}
return null;
}
/// <summary>
/// 新增或修改库区信息
/// </summary>
/// <param name="areaInfoModel">库位信息</param>
/// <param name="flag">flag 操作标示符 0新增 1:修改</param>
/// <returns>是否成功</returns>
public string InsOrUpdAreaInfo(StorageAreaModel areaInfoModel, int flag, List<AreaGoodsTypeModel> 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<AreaGoodsTypeModel> hadList = ConvertHelper<AreaGoodsTypeModel>.ConvertToList(table);//已存在的、之后变成将要被删除的
List<int> delList = new List<int>();//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<AreaGoodsTypeModel>.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;
}
/// <summary>
/// 删除库区信息
/// </summary>
/// <param name="strAreaInfoID"></param>
/// <returns>是否成功</returns>
public string DeleteAreaInfo(string strAreaInfoID)
{
DataProvider.Instance.StorageArea.DeleteAreaInfo(strAreaInfoID);
logList.Add(DataProvider.Instance.logData);
Transaction = DataProvider.Instance.TranOracle;
TaCmtOrRak();
return ErrText;
}
/// <summary>
/// 根据仓库编号停用或启用某库区
/// </summary>
/// <param name="strStorageInfoID">某仓库编号</param>
/// <param name="flag">0停用1正常</param>
/// <returns>是否成功</returns>
public string CloseAreaInfoByStorageInfoID(string strStorageInfoID, int flag)
{
DataProvider.Instance.StorageArea.CloseAreaInfoByStorageInfoID(strStorageInfoID,flag);
DataLogErrWrite("根据仓库编号停用或启用某库区");
return ErrText;
}
/// <summary>
/// 根据库区编号 删除该库区与属于它的库位信息
/// </summary>
/// <param name="strAreaInfoID">库区编号</param>
/// <returns>是否成功</returns>
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;
}
/// <summary>
/// 根据用户信息获得仓库库区信息结果集
/// </summary>
/// <param name="Model"></param>
/// <returns></returns>
public List<UserAreaModel> GetStorageAreaByUserIDandStorageID(UserDataModel Model)
{
DataTable dt = DataProvider.Instance.StorageArea.GetStorageAreaByUserIDandStorageID(Model);
List<UserAreaModel> list = null;
if (DataLogErrWrite(dt, "根据用户信息获取仓库库区工种信息结果集"))
{
list = ConvertHelper<UserAreaModel>.ConvertToList(dt);
}
else
{
return list;
}
return list;
}
}
}