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