BaoKai_202508-Wms-Jingwang..../WMS.Business/Stock/BussAdjustList.cs

242 lines
8.7 KiB
C#
Raw Permalink Normal View History

2025-08-24 09:35:55 +08:00
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using WMS.Model.Stock;
using WMS.IData;
using WMS.Common;
using WMS.Model.Base;
namespace WMS.Business.Stock
{
public class BussAdjustList : IBussFactory
{
#region
/// <summary>
/// 查询库存调整单
/// </summary>
/// <param name="model"></param>
/// <returns>实体集合</returns>
public List<AdjustListModel> GetAdjustList(AdjustListModel model)
{
DataTable dt = DataProvider.Instance.AdjustList.GetAdjustList(model);
List<AdjustListModel> list = ConvertHelper<AdjustListModel>.ConvertToList(dt);
return list;
}
#endregion
#region
/// <summary>
/// 新增或修改
/// </summary>
/// <param name="mode">mode 实体</param>
/// <param name="flg">工作标志 flg 0 新增1 修改</param>
public string ExecInsertUpdate(AdjustListModel mode, int flg)
{
Transaction = DataProvider.Instance.TranOracle;
if (flg == 0)
{
DataProvider.Instance.AdjustList.ExecListAdd(mode);
}
else
{
DataProvider.Instance.AdjustList.ExecListUpdate(mode);
}
logList.Add(DataProvider.Instance.logData);
TaCmtOrRak();
return this.ErrText;
}
#endregion
#region ()
/// <summary>
/// 新增或修改
/// </summary>
/// <param name="mode">主表</param>
/// <param name="list">明细实体集合</param>
/// <param name="flg">操作标志 0 新增1 修改</param>
/// <returns></returns>
public string InsertUpdate(AdjustListModel mode, List<AdjustListInfoModel> list, int flg,ref string listId)
{
if (flg == 0)//新增
{
#region Status改成已调整
//获取流水号
if (mode.List_reason == "0" && !string.IsNullOrEmpty(mode.Count_id))
{
CountingModel countModel = new CountingModel();
countModel.COUNT_ID = mode.Count_id;
countModel.COUNT_STATUS = "5";
DataProvider.Instance.Counting.Update(countModel);
}
#endregion
Transaction = DataProvider.Instance.TranOracle;
// DataProvider.Instance.Message.Add(messModel);
foreach (AdjustListInfoModel model in list)
{
model.LIST_ID = listId;
DataProvider.Instance.AdjustListInfo.ExecListAdd(model);
}
}
else//修改
{
//先删除之前的表
AdjustListInfoModel mode_info = new AdjustListInfoModel();
mode_info.LIST_ID = mode.List_id;
DataProvider.Instance.AdjustListInfo.DelList(mode_info);
Transaction = DataProvider.Instance.TranOracle;
//修改主表和插入新的明细
DataProvider.Instance.AdjustList.ExecListUpdate(mode);
foreach (AdjustListInfoModel model in list)
{
DataProvider.Instance.AdjustListInfo.ExecListAdd(model);
}
}
logList.Add(DataProvider.Instance.logData);
TaCmtOrRak();
return this.ErrText;
}
#endregion
#region
/// <summary>
/// 库存调整单审核
/// </summary>
/// <param name="adListmodel"></param>
/// <param name="userID"></param>
/// <returns></returns>
public string Check(AdjustListModel adListmodel, string userID)
{
Transaction = DataProvider.Instance.TranOracle;
DateTime dt_now = System.DateTime.Now.Date;
#region
adListmodel.Status = "2";
adListmodel.List_checkdate = dt_now;
adListmodel.List_checkper = userID;
DataProvider.Instance.AdjustList.Check(adListmodel);
#endregion
//查出调整单明细
AdjustListInfoModel adinfo_model = new AdjustListInfoModel();
adinfo_model.LIST_ID = adListmodel.List_id;
List<AdjustListInfoModel> adinfo_list = ConvertHelper<AdjustListInfoModel>.ConvertToList(DataProvider.Instance.AdjustListInfo.GetAdjustList(adinfo_model));
//库存实体、库位实体、商品实体
MIStockModel stoc = new MIStockModel();
StorageAreaLocationModel stoc_loc = new StorageAreaLocationModel();
GoodsInfoModel goods = new GoodsInfoModel();
foreach (AdjustListInfoModel _ad_info in adinfo_list)
{
//调整数量为0 的过滤
if (_ad_info.LIST_INFO_COUNT == 0)
{
continue;
}
#region
stoc = new MIStockModel();
stoc.STORAGE_ID = _ad_info.Storage_id;
stoc.AREA_ID = _ad_info.Area_id;
stoc.LOCATION_ID = _ad_info.LOC_ID;
stoc.GOODS_ID = _ad_info.LIST_INFO_GOODSID;
stoc.PROVIDER_NAME = _ad_info.PUTIN_ID;
//查询库存实体
DataTable dt_Stock = DataProvider.Instance.MIStock.GetMIStockDT(stoc);
stoc = ConvertHelper<MIStockModel>.ConvertToList(dt_Stock)[0];
//修改库存数量
stoc.SHELVES_NUM = _ad_info.NEWCOUNT;
DataProvider.Instance.MIStock.UpdateMIStock(stoc);
#endregion
#region
MIStockBackModel back_model = new MIStockBackModel();
back_model.ID = DataProvider.Instance.MIStockBack.GetSerialNum();
back_model.STOCK_ID = stoc.STOCK_ID;
back_model.STORAGE_ID = _ad_info.Storage_id;
back_model.AREA_ID = _ad_info.Area_id;
back_model.LOCATION_ID = _ad_info.LOC_ID;
back_model.GOODS_TYPEID = _ad_info.Goods_typeid;
back_model.GOODS_ID = _ad_info.LIST_INFO_GOODSID;
back_model.ORI_NUM = _ad_info.Oldcount;
back_model.CHANGE_NUM = _ad_info.NEWCOUNT;//改变后数量
back_model.GOODS_NUM = _ad_info.LIST_INFO_COUNT;
back_model.OPERATOR_DATE = dt_now;
back_model.OPERATOR_MAN = userID;
back_model.PRODUCTION_DATE = _ad_info.Production_date;
back_model.OPERATOR_TYPE = "2";//库存调整
back_model.REMARK = "库存调整";
DataProvider.Instance.MIStockBack.AddBMiStockack(back_model);
#endregion
#region
//查询商品单位体积
Decimal goods_Volume = Convert.ToDecimal(DataProvider.Instance.Goods.GetGoodsDataTable(_ad_info.LIST_INFO_GOODSID, "", "", "").Rows[0]["GVOLUME"].ToString());
stoc_loc = new StorageAreaLocationModel();
stoc_loc.STORAGE_ID = back_model.STORAGE_ID;
stoc_loc.STORAGE_AREA_ID = back_model.AREA_ID;
stoc_loc.LOCATION_ID = back_model.LOCATION_ID;
stoc_loc.HASVOLUME = back_model.CHANGE_NUM * goods_Volume;
DataProvider.Instance.StorageAreaLocation.UpdateLocHasVolume(stoc_loc);
#endregion
}
logList.Add(DataProvider.Instance.logData);
TaCmtOrRak();
return this.ErrText;
}
#endregion
#region
/// <summary>
/// 删除库存调整单(明细一起删除掉)
/// </summary>
/// <param name="model">model 实体</param>
/// <returns>影响行数</returns>
public string DelList(AdjustListModel model)
{
Transaction = DataProvider.Instance.TranOracle;
DataProvider.Instance.AdjustList.DelList(model);
//删除明细
AdjustListInfoModel info_model = new AdjustListInfoModel();
info_model.LIST_ID = model.List_id;
//主表
DataProvider.Instance.AdjustListInfo.DelList(info_model);
logList.Add(DataProvider.Instance.logData);
TaCmtOrRak();
return this.ErrText;
}
#endregion
}
}