BaoKai_202508_Wms_Jingwang_.../WMS.Business/Base/BussStorageInfo.cs
2025-08-24 21:52:42 +08:00

229 lines
9.2 KiB
C#
Raw Permalink 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 WMS.Model.Base;
using WMS.IData;
using System.Data;
using WMS.Common;
using WMS.Model.SystemManage;
namespace WMS.Business.Base
{
public class BussStorageInfo : IBussFactory
{
/// <summary>
/// 获取仓库信息结果集
/// </summary>
/// <param name="storageInfoModel">仓库信息</param>
/// <returns>仓库信息结果集</returns>
public List<StorageInfoModel> GetStorageInfoDS(StorageInfoModel storageInfoModel)
{
DataTable table = DataProvider.Instance.StorageInfo.GetStorageInfoDS(storageInfoModel);
List<StorageInfoModel> model = ConvertHelper<StorageInfoModel>.ConvertToList(table);
if (DataLogErrWrite(table, "获取仓库信息结果集"))
{
return model;
}
return null;
}
/// <summary>
/// 获取仓库信息结果集
/// </summary>
/// <param name="storageInfoModel">仓库信息</param>
/// <returns>仓库信息结果集</returns>
public List<StorageInfoModel> GetStorageInfoDS(StorageInfoModel storageInfoModel,ref List<StorageOrderModel> storOrderList)
{
DataTable table = DataProvider.Instance.StorageInfo.GetStorageInfoDS(storageInfoModel);
List<StorageInfoModel> model = ConvertHelper<StorageInfoModel>.ConvertToList(table);
if (storageInfoModel != null)
{
if (!string.IsNullOrEmpty(storageInfoModel.STORAGE_ID))
{
StorageOrderModel m = new StorageOrderModel();
m.STORAGE_ID = storageInfoModel.STORAGE_ID;
table = DataProvider.Instance.StorageOrder.GetStorOrderDT(m);
storOrderList = ConvertHelper<StorageOrderModel>.ConvertToList(table);
}
}
if (DataLogErrWrite(table, "获取仓库信息结果集"))
{
return model;
}
return null;
}
/// <summary>
/// 获取仓库订单关系结果集
/// </summary>
/// <param name="storOrderModel">仓库订单关系</param>
/// <returns>仓库订单关系结果集</returns>
public List<StorageOrderModel> GetStorageOrderDS(StorageOrderModel storOrderModel)
{
DataTable table = DataProvider.Instance.StorageOrder.GetStorOrderDT(storOrderModel);
List<StorageOrderModel> storOrderList = ConvertHelper<StorageOrderModel>.ConvertToList(table);
if(table!=null)
{
return storOrderList;
}
return null;
}
/// <summary>
/// 插入或更改仓库信息
/// </summary>
/// <param name="storageTypeModel"></param>
/// <param name="flag">flag 操作标示符 0新增 1:修改</param>
/// <returns>是否成功</returns>
public string InsOrUpdStorageInfo(StorageInfoModel storageInfoModel, int flag, List<StorageOrderModel> list)
{
storageInfoModel.STORAGE_ID = DataProvider.Instance.StorageInfo.InsOrUpdStorageInfo(storageInfoModel, flag);
logList.Add(DataProvider.Instance.logData);
if (flag == 1) {
CompanyModel model = new CompanyModel();
model.COM_ADD = storageInfoModel.ADDRESS;
model.COM_CITY = storageInfoModel.CITY_ID;
model.COM_FAX = storageInfoModel.FAX;
model.USER_ID = storageInfoModel.LINKMAN;
model.COM_PHONE = storageInfoModel.PHONE;
model.COM_ZIP = storageInfoModel.POSTCODE;
model.COM_PROVINCE = storageInfoModel.PROVINCE_ID;
model.SHORT = storageInfoModel.PY_NAME;
model.COM_ORDER = storageInfoModel.SORT;
model.COM_STATUS = storageInfoModel.STATUS;
model.COM_ID = storageInfoModel.STORAGE_ID;
model.COM_NAME = storageInfoModel.STORAGE_NAME;
model.COM_SNAME = storageInfoModel.STORAGE_SHORT_NAME;
model.COM_TOWN = storageInfoModel.TOWN_ID;
DataProvider.Instance.Company.UpdateCompanyData(model);
logList.Add(DataProvider.Instance.logData);
}
Transaction = DataProvider.Instance.TranOracle;
StorageOrderModel m = new StorageOrderModel();
if (string.IsNullOrEmpty(storageInfoModel.STORAGE_ID))
{
storageInfoModel.STORAGE_ID = IBussFactory<WMS.Business.Base.BussDocumentTable>.Instance().GetDocumentStream("仓库编号");
}
m.STORAGE_ID = storageInfoModel.STORAGE_ID;
DataTable table = DataProvider.Instance.StorageOrder.GetStorOrderDT(m);
List<StorageOrderModel> hadList = ConvertHelper<StorageOrderModel>.ConvertToList(table);//已存在的、之后变成将要被删除的
List<int> delList = new List<int>();//hadList中将被删除的Model的序号
//增加仓库订单范围
foreach (StorageOrderModel item in list)
{
DataTable dt = DataProvider.Instance.StorageOrder.GetStorOrderDT(item);
if (dt.Rows.Count == 0)//如果存在 不再增加
{
DataProvider.Instance.StorageOrder.InsertStorageOrder(item);
logList.Add(DataProvider.Instance.logData);
}
else
{
StorageOrderModel had = ConvertHelper<StorageOrderModel>.ConvertToList(dt)[0];
for (int i = 0; i < hadList.Count; i++)//将已存在且未被删除的序号记录
{
if (hadList[i].STORAGE_ID == item.STORAGE_ID && hadList[i].STORAGE_ID == item.STORAGE_ID)
{
delList.Add(i);
}
}
}
}
//将需要从已存在中移除的移除
for (int i = delList.Count - 1; i >= 0; i--)
{
hadList.RemoveAt(delList[i]);
}
//删除
foreach (StorageOrderModel item in hadList)
{
DataProvider.Instance.StorageOrder.DeleteStorageOrderByStorageID(item);
logList.Add(DataProvider.Instance.logData);
}
//if (flag == 0) { //新增加库区
// StorageAreaModel areaModel = new StorageAreaModel();
// //仓库用于List显示
// areaModel.STORAGE_AREA_ID = storageInfoModel.STORAGE_ID;
// areaModel.STORAGE_AREA_NAME = storageInfoModel.STORAGE_NAME;
// DataProvider.Instance.StorageArea.InsOrUpdAreaInfo(areaModel, 0);
// logList.Add(DataProvider.Instance.logData);
// areaModel.EDIT = "0";
// areaModel.OPERATORID = storageInfoModel.OPERATORID;
// areaModel.STATUS = "0";
// areaModel.STORAGE_ID = storageInfoModel.STORAGE_ID;
// areaModel.PARENT_ID = storageInfoModel.STORAGE_ID;
// areaModel.STORAGE_NAME = storageInfoModel.STORAGE_NAME;
// areaModel.VERSION = "Verson 1.0";
// areaModel.STORAGE_AREA_ID = null;
//}
TaCmtOrRak();
return ErrText;
}
/// <summary>
/// 删除仓库信息
/// </summary>
/// <param name="strStorageTypeID">仓库信息编号</param>
/// <returns>是否成功</returns>
public string DeleteStorageInfo(string strStorageInfoID)
{
DataProvider.Instance.StorageInfo.DeleteStorageInfo(strStorageInfoID);
logList.Add(DataProvider.Instance.logData);
DataProvider.Instance.Company.DeleteCompanyData(strStorageInfoID);
logList.Add(DataProvider.Instance.logData);
DataProvider.Instance.StorageArea.DeleteAreaInfo(strStorageInfoID);
logList.Add(DataProvider.Instance.logData);
Transaction = DataProvider.Instance.TranOracle;
TaCmtOrRak();
return ErrText;
}
/// <summary>
/// 删除某仓库及属于它的库区信息与库位信息
/// </summary>
/// <param name="strStorageInfoID">某仓库编号</param>
/// <returns>是否成功</returns>
public string DeleteStorageAndAreaAndLocation(string strStorageInfoID)
{
DataProvider.Instance.StorageInfo.DeleteStorageInfo(strStorageInfoID);
logList.Add(DataProvider.Instance.logData);
Transaction = DataProvider.Instance.TranOracle;
DataProvider.Instance.StorageArea.DeleteAreaInfoByStorageInfoID(strStorageInfoID);
logList.Add(DataProvider.Instance.logData);
DataProvider.Instance.StorageAreaLocation.DeleteLocationInfoByStorageInfoID(strStorageInfoID);
logList.Add(DataProvider.Instance.logData);
TaCmtOrRak();
return ErrText;
}
}
}