224 lines
8.7 KiB
C#
224 lines
8.7 KiB
C#
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;
|
||
}
|
||
|
||
}
|
||
}
|