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

350 lines
12 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 BussGoods:IBussFactory
{
/// <summary>
/// 通过商品编号集合获取商品信息集合
/// </summary>
/// <returns></returns>
public List<JWGoodsInfoModel> GetGoodsListByIDList(List<string> goodsIDList)
{
DataTable dt = DataProvider.Instance.Goods.GetGoodsDTByIDList(goodsIDList);
List<JWGoodsInfoModel> list = null;
if (DataLogErrWrite(dt, ""))
{
list = ConvertHelper<JWGoodsInfoModel>.ConvertToList(dt);
}
else
{
return list;
}
return list;
}
/// <summary>
/// 获取商品信息
/// </summary>
/// <returns></returns>
public List<JWGoodsInfoModel> GetGoodsList(string strGoodsID, string strGoodsName, string strPyName, string strProviderName)
{
try
{
DataTable dt = DataProvider.Instance.Goods.GetGoodsDataTable(strGoodsID, strGoodsName, strPyName, strProviderName);
if (dt != null)
{
List<JWGoodsInfoModel> list = ConvertHelper<JWGoodsInfoModel>.ConvertToList(dt);
return list;
}
}
catch (Exception ex)
{
return null;
}
return null;
}
/// <summary>
/// 获取商品可选UNIT
/// </summary>
/// <returns></returns>
public DataTable GetGoodsUnit(string goodsID)
{
DataTable dt = DataProvider.Instance.Goods.GetGoodsUnit(goodsID);
if (DataLogErrWrite(dt, "获取商品可选UNIT"))
{
return dt;
}
else
{
return null;
}
}
/// <summary>
/// 获取商品UNIT
/// </summary>
/// <returns></returns>
public List<GoodsMeasureModel> GetGoodsMeasureDataTable(string strGoodsID)
{
DataTable dt = DataProvider.Instance.Goods.GetGoodsMeasureDataTable(strGoodsID);
List<GoodsMeasureModel> list = null;
if (DataLogErrWrite(dt, ""))
{
list = ConvertHelper<GoodsMeasureModel>.ConvertToList(dt);
}
else
{
return list;
}
return list;
}
/// <summary>
/// 获取商品供应商
/// </summary>
/// <returns></returns>
public List<GoodsProviderModel> GetGoodsPrividerDataTale(string strGoodsID)
{
DataTable dt = DataProvider.Instance.Goods.GetGoodsPrividerDataTale(strGoodsID);
List<GoodsProviderModel> list = null;
if (DataLogErrWrite(dt, ""))
{
list = ConvertHelper<GoodsProviderModel>.ConvertToList(dt);
}
else
{
return list;
}
return list;
}
/// <summary>
/// 柳汽增加接口
/// </summary>
/// <param name="GoodsModel"></param>
/// <returns></returns>
public string AddGoodsInfolq(JWGoodsInfoModel GoodsModel)
{
string goodsId = GoodsModel.INVENTORY_ITEM_ID;
List<JWGoodsInfoModel> li_goodsInfo = GetGoodsList(goodsId, "", "", "");
if (li_goodsInfo != null)
{
if (li_goodsInfo.Count > 0)
{
return "该商品编号已经存在!请重新输入";
}
}
///写入商品表
DataProvider.Instance.Goods.AddGoodsInfo(GoodsModel);
Transaction = DataProvider.Instance.TranOracle;
logList.Add(DataProvider.Instance.logData);
TaCmtOrRak();
return this.ErrText;
}
/// <summary>
/// 增加商品基础信息
/// </summary>
/// <param name="ListMeasureModel"></param>
/// <returns></returns>
public string AddGoodsMeasure(GoodsMeasureModel ListMeasureModel)
{
string measure_Id = DataProvider.Instance.DocumentTable.GetSeq("SEQ_BASE_MEASURE_ID");
ListMeasureModel.GOODS_MEASURE_ID = measure_Id;
DataProvider.Instance.GoodsMeasure.AddGoodsMeasure(ListMeasureModel);
Transaction = DataProvider.Instance.TranOracle;
logList.Add(DataProvider.Instance.logData);
TaCmtOrRak();
return this.ErrText;
}
public string UpGoodsMeaSure(GoodsMeasureModel Measure)
{
DataProvider.Instance.GoodsMeasure.UpGoodsMeaSure(Measure);
return ErrText;
}
/// <summary>
/// 新增商品信息
/// </summary>
/// <param name="GoodsModel"></param>
/// <param name="ListMeasureModel"></param>
/// <param name="ListProviderModel"></param>
/// <returns></returns>
public string AddGoodsInfo(JWGoodsInfoModel GoodsModel, List<GoodsMeasureModel> ListMeasureModel, List<GoodsProviderModel> ListProviderModel )
{
//string val= DataProvider.Instance.SystemParam. GetParamValue("autoGoodsID");
//if (val=="1")
//{
// GoodsModel.INVENTORY_ITEM_ID = IBussFactory<WMS.Business.Base.BussDocumentTable>.Instance().GetDocumentStream("商品编号"); ;
//}
string goodsId = GoodsModel.INVENTORY_ITEM_ID;
List<JWGoodsInfoModel> li_goodsInfo = GetGoodsList(goodsId, "", "", "");
if (li_goodsInfo.Count > 0)
{
return "该商品编号已经存在!请重新输入";
}
///写入商品表
DataProvider.Instance.Goods.AddGoodsInfo(GoodsModel);
Transaction = DataProvider.Instance.TranOracle;
logList.Add(DataProvider.Instance.logData);
//if (ListMeasureModel != null)
//{
// foreach (var item in ListMeasureModel)
// {
// item.INVENTORY_ITEM_ID = GoodsModel.INVENTORY_ITEM_ID;
// DataProvider.Instance.GoodsMeasure.AddGoodsMeasure(item);
// logList.Add(DataProvider.Instance.logData);
// }
//}
//if (ListProviderModel != null)
//{
// foreach (var item in ListProviderModel)
// {
// item.INVENTORY_ITEM_ID = GoodsModel.INVENTORY_ITEM_ID;
// DataProvider.Instance.GoodProvider.AddProviderGoods(item);
// logList.Add(DataProvider.Instance.logData);
// }
//}
TaCmtOrRak();
return this.ErrText;
}
/// <summary>
/// 批量增加商品
/// </summary>
/// <param name="goodsModelList"></param>
/// <returns></returns>
public List<int> AddGoodsInfoList(List<JWGoodsInfoModel> goodsModelList,ref int hadNum,ref int length,ref string error,bool fuGai)
{
List<int> errorIndex = new List<int>();
StringBuilder strHad = new StringBuilder();
StringBuilder strLength = new StringBuilder();
StringBuilder strError = new StringBuilder();
for (int i = 0; i < goodsModelList.Count; i++)
{
if (fuGai)
{
List<JWGoodsInfoModel> listGoods = ConvertHelper<JWGoodsInfoModel>.ConvertToList(DataProvider.Instance.Goods.GetGoodsDataTable(goodsModelList[i].INVENTORY_ITEM_ID, "", "", ""));
if (listGoods != null && listGoods.Count > 0)
{
DataProvider.Instance.Goods.UpdateGoodsInfo(goodsModelList[i]);
}
else
{
DataProvider.Instance.Goods.AddGoodsInfo(goodsModelList[i]);
}
}
else {
logList.Add(DataProvider.Instance.logData);
Transaction = DataProvider.Instance.TranOracle;
DataProvider.Instance.Goods.AddGoodsInfo(goodsModelList[i]);
}
if (!DataLogErrWrite("批量增加商品:"))
{
errorIndex.Add(i);
if (ErrText.Contains("存在") || ErrText.Contains("ORA-00001"))
{
strHad.AppendLine("编号为" + goodsModelList[i].INVENTORY_ITEM_ID + "的商品已存在。");
hadNum++;
}
else if (ErrText.Contains("长") || ErrText.Contains("ORA-12899"))
{
strLength.AppendLine("编号为" + goodsModelList[i].INVENTORY_ITEM_ID + "的商品数据长度过长。");
length++;
}
else {
strError.AppendLine(ErrText);
}
}
}
TaCmtOrRak();
error += strHad.ToString() + strLength.ToString() + strError.ToString();
return errorIndex;
}
/// <summary>
/// 修改商品信息
/// </summary>
/// <param name="GoodsModel"></param>
/// <returns></returns>
public string UpdateGoodsInfo(JWGoodsInfoModel GoodsModel)
{
DataProvider.Instance.Goods.UpdateGoodsInfo(GoodsModel);
Transaction = DataProvider.Instance.TranOracle;
logList.Add(DataProvider.Instance.logData);
TaCmtOrRak();
return ErrText;
}
/// <summary>
/// 修改商品信息包括UNIT转换、供应商
/// </summary>
/// <param name="GoodsModel"></param>
/// <param name="ListMeasureModel"></param>
/// <param name="ListProviderModel"></param>
/// <returns></returns>
public string UpdateGoodsInfo(JWGoodsInfoModel GoodsModel, List<GoodsMeasureModel> ListMeasureModel, List<GoodsProviderModel> ListProviderModel)
{
// DataProvider.Instance.Goods.UpdateGoodsInfo(GoodsModel);
DataProvider.Instance.Goods.UpdateGoodsInfo(GoodsModel);
Transaction = DataProvider.Instance.TranOracle;
logList.Add(DataProvider.Instance.logData);
//DataProvider.Instance.Goods.DeleteGoodsInfoMeasure(GoodsModel.INVENTORY_ITEM_ID);
//logList.Add(DataProvider.Instance.logData);
//foreach (GoodsMeasureModel Measure in ListMeasureModel)
//{
// DataProvider.Instance.Goods.UpdateGoodsInfo(GoodsModel);
// logList.Add(DataProvider.Instance.logData);
//}
//foreach (GoodsProviderModel provider in ListProviderModel)
//{
// DataProvider.Instance.Goods.UpdateGoodsInfoProVider(GoodsModel, provider);
// logList.Add(DataProvider.Instance.logData);
//}
TaCmtOrRak();
return ErrText;
}
public string DeleteMeasure(string strGoodsId,string GOODS_MEASURE_ID)
{
DataProvider.Instance.Goods.DeleteMeasure(strGoodsId, GOODS_MEASURE_ID);
logList.Add(DataProvider.Instance.logData);
TaCmtOrRak();
return ErrText;
}
/// <summary>
/// 删除商品信息
/// </summary>
/// <param name="strGoodsID">商品编号</param>
/// <returns></returns>
public string DeleteGoodsInfo(string strGoodsID)
{
DataProvider.Instance.Goods.InsertGoodsBak(strGoodsID);
Transaction = DataProvider.Instance.TranOracle;
DataProvider.Instance.Goods.DeleteGoods(strGoodsID);
logList.Add(DataProvider.Instance.logData);
//DataProvider.Instance.Goods.DeleteGoodsInfo(strGoodsID);
//logList.Add(DataProvider.Instance.logData);
TaCmtOrRak();
return ErrText;
}
}
}