BaoKai_202508-Wms-Jingwang..../WMS.Business/Base/BussStorageArea.cs
2025-08-24 09:35:55 +08:00

224 lines
8.7 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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;
}
}
}