You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
651 lines
26 KiB
651 lines
26 KiB
using System;
|
|
using System.Linq;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using System.Data;
|
|
using System.ServiceModel;
|
|
using SiaSun.LMS.Model;
|
|
using System.Reflection;
|
|
using SiaSun.LMS.Implement.localhost1;
|
|
|
|
namespace SiaSun.LMS.Implement
|
|
{
|
|
|
|
public class StorageBase : S_BaseService,SiaSun.LMS.Interface.I_StorageService
|
|
{
|
|
/// <summary>
|
|
/// 库存增加(入库)
|
|
/// </summary>
|
|
/// <param name="MANAGE_ID"></param>
|
|
/// <param name="sResult"></param>
|
|
/// <returns></returns>
|
|
public bool StorageCreate(int MANAGE_ID, out string sResult)
|
|
{
|
|
bool bResult = true;
|
|
|
|
sResult = string.Empty;
|
|
|
|
SiaSun.LMS.Model.STORAGE_LIST mSTORAGE_LIST;
|
|
|
|
string sGOODS_PROPERTY_CONDITION = string.Empty;
|
|
|
|
try
|
|
{
|
|
SiaSun.LMS.Model.MANAGE_MAIN mMANAGE_MAIN = this._P_MANAGE_MAIN.GetModel(MANAGE_ID);
|
|
|
|
if (null == mMANAGE_MAIN)
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = string.Format("管理任务索引 {0} 不存在", MANAGE_ID);
|
|
|
|
return bResult;
|
|
}
|
|
|
|
//查看托盘条码是否存在暂存区库存-存在,则更新库存位置为当前任务的终止位置
|
|
SiaSun.LMS.Model.STORAGE_MAIN mSTORAGE_MAIN_STOCK_BARCODE = this._P_STORAGE_MAIN.GetModelStockBarcode(mMANAGE_MAIN.STOCK_BARCODE);
|
|
|
|
if (mSTORAGE_MAIN_STOCK_BARCODE != null)
|
|
{
|
|
Model.WH_CELL mWH_CELL_STOCK_BARCODE = this._P_WH_CELL.GetModel(mSTORAGE_MAIN_STOCK_BARCODE.CELL_ID);
|
|
|
|
if (mWH_CELL_STOCK_BARCODE != null)
|
|
{
|
|
Model.WH_AREA mWH_AREA_STOCK_BARCODE = this._P_WH_AREA.GetModel(mWH_CELL_STOCK_BARCODE.AREA_ID);
|
|
|
|
if ((mWH_AREA_STOCK_BARCODE != null) && (mWH_AREA_STOCK_BARCODE.AREA_TYPE.Equals(LMS.Enum.AREA_TYPE.XuNiKu.ToString())))
|
|
{
|
|
mSTORAGE_MAIN_STOCK_BARCODE.CELL_ID = mMANAGE_MAIN.END_CELL_ID;
|
|
|
|
this._P_STORAGE_MAIN.Update(mSTORAGE_MAIN_STOCK_BARCODE);
|
|
}
|
|
}
|
|
}
|
|
|
|
//查看是否有相同条件STORGE_MAIN
|
|
SiaSun.LMS.Model.STORAGE_MAIN mSTORAGE_MAIN = this._P_STORAGE_MAIN.GetModelCellIDStockBarcode(mMANAGE_MAIN.END_CELL_ID, mMANAGE_MAIN.STOCK_BARCODE);
|
|
|
|
//生成STORAGE_MAIN
|
|
if (null == mSTORAGE_MAIN)
|
|
{
|
|
mSTORAGE_MAIN = new SiaSun.LMS.Model.STORAGE_MAIN();
|
|
|
|
mSTORAGE_MAIN.GOODS_TEMPLATE_ID = mMANAGE_MAIN.GOODS_TEMPLATE_ID;
|
|
|
|
mSTORAGE_MAIN.CELL_ID = mMANAGE_MAIN.END_CELL_ID;
|
|
|
|
mSTORAGE_MAIN.STOCK_BARCODE = mMANAGE_MAIN.STOCK_BARCODE;
|
|
|
|
//mSTORAGE_MAIN.FULL_FLAG = string.IsNullOrEmpty(mMANAGE_MAIN.STOCK_BARCODE) ? SiaSun.LMS.Enum.FULL_FLAG.PART.ToString("d") : mMANAGE_MAIN.FULL_FLAG;
|
|
mSTORAGE_MAIN.FULL_FLAG = mMANAGE_MAIN.FULL_FLAG;
|
|
|
|
mSTORAGE_MAIN.CELL_MODEL = mMANAGE_MAIN.CELL_MODEL;
|
|
|
|
mSTORAGE_MAIN.STORAGE_REMARK = mMANAGE_MAIN.MANAGE_REMARK;
|
|
|
|
this._P_STORAGE_MAIN.Add(mSTORAGE_MAIN);
|
|
}
|
|
else
|
|
{
|
|
//mSTORAGE_MAIN.FULL_FLAG = string.IsNullOrEmpty(mMANAGE_MAIN.STOCK_BARCODE) ? SiaSun.LMS.Enum.FULL_FLAG.PART.ToString("d") : mMANAGE_MAIN.FULL_FLAG;
|
|
mSTORAGE_MAIN.FULL_FLAG = mMANAGE_MAIN.FULL_FLAG;
|
|
|
|
mSTORAGE_MAIN.CELL_MODEL = mMANAGE_MAIN.CELL_MODEL;
|
|
|
|
mSTORAGE_MAIN.STORAGE_REMARK = mMANAGE_MAIN.MANAGE_REMARK;
|
|
|
|
this._P_STORAGE_MAIN.Update(mSTORAGE_MAIN);
|
|
}
|
|
|
|
IList<SiaSun.LMS.Model.MANAGE_LIST> lsMANAGE_LIST = this._P_MANAGE_LIST.GetListManageID(MANAGE_ID);
|
|
|
|
foreach (SiaSun.LMS.Model.MANAGE_LIST mMANAGE_LIST in lsMANAGE_LIST)
|
|
{
|
|
bResult = this._S_GoodsService.GetGoodsPropertyCondition(mMANAGE_LIST.GOODS_ID, true, mMANAGE_LIST, out sGOODS_PROPERTY_CONDITION, out sResult);
|
|
|
|
if (!bResult)
|
|
{
|
|
return bResult;
|
|
}
|
|
|
|
string strSQL = string.Format(@"SELECT * FROM V_STORAGE_LIST
|
|
WHERE 1=1
|
|
AND CELL_ID = {0}
|
|
AND STORAGE_ID = {1}
|
|
AND GOODS_ID = {2}
|
|
AND {3}",
|
|
mMANAGE_MAIN.END_CELL_ID,
|
|
mSTORAGE_MAIN.STORAGE_ID,
|
|
mMANAGE_LIST.GOODS_ID,
|
|
sGOODS_PROPERTY_CONDITION);
|
|
|
|
DataTable dtSTORAGE_LIST = base.GetList(strSQL);
|
|
if (dtSTORAGE_LIST.Rows.Count > 0)
|
|
{
|
|
//取得STORAGE_LIST
|
|
mSTORAGE_LIST = this._P_STORAGE_LIST.GetModel(Convert.ToInt32(dtSTORAGE_LIST.Rows[0]["STORAGE_LIST_ID"].ToString()));
|
|
|
|
mSTORAGE_LIST.STORAGE_LIST_QUANTITY += mMANAGE_LIST.MANAGE_LIST_QUANTITY;
|
|
|
|
mSTORAGE_LIST.UPDATE_TIME = SiaSun.LMS.Common.StringUtil.GetCurDateTimeString();
|
|
|
|
this._P_STORAGE_LIST.Update(mSTORAGE_LIST);
|
|
}
|
|
else
|
|
{
|
|
//生成STORAGE_LIST
|
|
mSTORAGE_LIST = new SiaSun.LMS.Model.STORAGE_LIST();
|
|
|
|
mSTORAGE_LIST.STORAGE_ID = mSTORAGE_MAIN.STORAGE_ID;
|
|
|
|
mSTORAGE_LIST.PLAN_LIST_ID = mMANAGE_LIST.PLAN_LIST_ID;
|
|
|
|
mSTORAGE_LIST.BOX_BARCODE = mMANAGE_LIST.BOX_BARCODE;
|
|
|
|
mSTORAGE_LIST.STORAGE_LIST_QUANTITY = mMANAGE_LIST.MANAGE_LIST_QUANTITY;
|
|
|
|
mSTORAGE_LIST.GOODS_ID = mMANAGE_LIST.GOODS_ID;
|
|
//批次号
|
|
mSTORAGE_LIST.GOODS_PROPERTY1 = mMANAGE_LIST.GOODS_PROPERTY1;
|
|
//GY GK等
|
|
mSTORAGE_LIST.GOODS_PROPERTY2 = mMANAGE_LIST.GOODS_PROPERTY2;
|
|
|
|
mSTORAGE_LIST.GOODS_PROPERTY3 = mMANAGE_LIST.GOODS_PROPERTY3;
|
|
//ljc
|
|
mSTORAGE_LIST.GOODS_PROPERTY6 = "未翻转";
|
|
bResult = this._S_GoodsService.GoodsPropertySetValue(mMANAGE_LIST.GOODS_ID, mSTORAGE_LIST, mMANAGE_LIST, out sResult);
|
|
|
|
if (!bResult)
|
|
{
|
|
return bResult;
|
|
}
|
|
|
|
mSTORAGE_LIST.ENTRY_TIME = SiaSun.LMS.Common.StringUtil.GetCurDateTimeString();
|
|
|
|
mSTORAGE_LIST.UPDATE_TIME = SiaSun.LMS.Common.StringUtil.GetCurDateTimeString();
|
|
|
|
mSTORAGE_LIST.STORAGE_LIST_REMARK = mMANAGE_LIST.MANAGE_LIST_REMARK;
|
|
|
|
this._P_STORAGE_LIST.Add(mSTORAGE_LIST);
|
|
}
|
|
|
|
//生成STORAGE_DETAIL
|
|
IList<SiaSun.LMS.Model.MANAGE_DETAIL> lsMANAGE_DETAIL = this._P_MANAGE_DETAIL.GetListManageListID(mMANAGE_LIST.MANAGE_LIST_ID);
|
|
foreach (SiaSun.LMS.Model.MANAGE_DETAIL mMANAGE_DETAIL in lsMANAGE_DETAIL)
|
|
{
|
|
SiaSun.LMS.Model.STORAGE_DETAIL mSTORAGE_DETAIL = new SiaSun.LMS.Model.STORAGE_DETAIL();
|
|
|
|
mSTORAGE_DETAIL.STORAGE_LIST_ID = mSTORAGE_LIST.STORAGE_LIST_ID;
|
|
|
|
mSTORAGE_DETAIL.GOODS_BARCODE = mMANAGE_DETAIL.GOODS_BARCODE;
|
|
|
|
mSTORAGE_DETAIL.BOX_BARCODE = mMANAGE_DETAIL.BOX_BARCODE;
|
|
|
|
mSTORAGE_DETAIL.STORAGE_DETAIL_REMARK = mMANAGE_DETAIL.MANAGE_DETAIL_REMARK;
|
|
|
|
this._P_STORAGE_DETAIL.Add(mSTORAGE_DETAIL);
|
|
}
|
|
//更新mMANAGE_LIST.STORAGE_LIST_ID(生成RECORD_LIST的时候记录)
|
|
mMANAGE_LIST.STORAGE_LIST_ID = mSTORAGE_LIST.STORAGE_LIST_ID;
|
|
|
|
this._P_MANAGE_LIST.Update(mMANAGE_LIST);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = ex.Message;
|
|
|
|
this._log.Fatal(string.Format("调用方法{0}发生异常。", MethodBase.GetCurrentMethod().Name), ex);
|
|
}
|
|
|
|
return bResult;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 库存减少(出库)
|
|
/// </summary>
|
|
/// <param name="MANAGE_ID"></param>
|
|
/// <param name="sResult"></param>
|
|
/// <returns></returns>
|
|
public bool StorageDelete(int MANAGE_ID, out string sResult)
|
|
{
|
|
bool bResult = true;
|
|
|
|
sResult = string.Empty;
|
|
|
|
try
|
|
{
|
|
SiaSun.LMS.Model.MANAGE_MAIN mMANAGE_MAIN = this._P_MANAGE_MAIN.GetModel(MANAGE_ID);
|
|
|
|
if (null == mMANAGE_MAIN)
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = string.Format("管理任务索引 {0} 不存在", MANAGE_ID);
|
|
|
|
return bResult;
|
|
}
|
|
|
|
IList<SiaSun.LMS.Model.MANAGE_LIST> lsMANAGE_LIST = this._P_MANAGE_LIST.GetListManageID(MANAGE_ID);
|
|
|
|
SiaSun.LMS.Model.STORAGE_LIST mSTORAGE_LIST = null;
|
|
|
|
SiaSun.LMS.Model.STORAGE_MAIN mSTORAGE_MAIN_OLD;
|
|
|
|
foreach (SiaSun.LMS.Model.MANAGE_LIST mMANAGE_LIST in lsMANAGE_LIST)
|
|
{
|
|
mSTORAGE_LIST = this._P_STORAGE_LIST.GetModel(mMANAGE_LIST.STORAGE_LIST_ID);
|
|
|
|
if (null == mSTORAGE_LIST)
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = string.Format("库存索引{0}不存在", mMANAGE_LIST.STORAGE_LIST_ID);
|
|
|
|
return bResult;
|
|
}
|
|
|
|
//校验任务数量是否大于库存数量
|
|
if (mMANAGE_LIST.MANAGE_LIST_QUANTITY > mSTORAGE_LIST.STORAGE_LIST_QUANTITY)
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = string.Format("任务数量大于库存数量");
|
|
|
|
return bResult;
|
|
}
|
|
|
|
mSTORAGE_MAIN_OLD = this._P_STORAGE_MAIN.GetModel(mSTORAGE_LIST.STORAGE_ID);
|
|
|
|
if (!string.IsNullOrEmpty(mSTORAGE_MAIN_OLD.STOCK_BARCODE))
|
|
{
|
|
mSTORAGE_MAIN_OLD.FULL_FLAG = SiaSun.LMS.Enum.FULL_FLAG.FULL.ToString("d");
|
|
}
|
|
|
|
// this._P_STORAGE_MAIN.Update(mSTORAGE_MAIN_OLD);
|
|
|
|
//更新库存列表的库存数量
|
|
mSTORAGE_LIST.STORAGE_LIST_QUANTITY -= mMANAGE_LIST.MANAGE_LIST_QUANTITY;
|
|
|
|
if (mSTORAGE_LIST.STORAGE_LIST_QUANTITY > 0)
|
|
{
|
|
this._P_STORAGE_LIST.Update(mSTORAGE_LIST);
|
|
///下架移至暂存区ljc
|
|
mSTORAGE_MAIN_OLD.CELL_ID = 16644;
|
|
|
|
this._P_STORAGE_MAIN.Update(mSTORAGE_MAIN_OLD);
|
|
|
|
}
|
|
else
|
|
{
|
|
this._P_STORAGE_LIST.Delete(mSTORAGE_LIST.STORAGE_LIST_ID);
|
|
|
|
if (this._P_STORAGE_LIST.GetListStorageID(mSTORAGE_LIST.STORAGE_ID).Count == 0)
|
|
{
|
|
this._P_STORAGE_MAIN.Delete(mSTORAGE_LIST.STORAGE_ID);
|
|
}
|
|
else
|
|
{
|
|
///下架移至暂存区ljc
|
|
mSTORAGE_MAIN_OLD.CELL_ID = 16644;
|
|
|
|
this._P_STORAGE_MAIN.Update(mSTORAGE_MAIN_OLD);
|
|
|
|
}
|
|
}
|
|
|
|
IList<SiaSun.LMS.Model.MANAGE_DETAIL> lsMANAGE_DETAIL = this._P_MANAGE_DETAIL.GetListManageListID(mMANAGE_LIST.MANAGE_LIST_ID);
|
|
foreach (SiaSun.LMS.Model.MANAGE_DETAIL mMANAGE_DETAIL in lsMANAGE_DETAIL)
|
|
{
|
|
SiaSun.LMS.Model.STORAGE_DETAIL mSTORAGE_DETAIL = this._P_STORAGE_DETAIL.GetModelGoodsBarcode(mMANAGE_DETAIL.GOODS_BARCODE);
|
|
if (mSTORAGE_DETAIL != null)
|
|
{
|
|
this._P_STORAGE_DETAIL.Delete(mSTORAGE_DETAIL.STORAGE_DETAIL_ID);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = ex.Message;
|
|
|
|
this._log.Fatal(string.Format("调用方法{0}发生异常。", MethodBase.GetCurrentMethod().Name), ex);
|
|
}
|
|
|
|
return bResult;
|
|
}
|
|
|
|
/// <summary>库存移动(上架,下架)
|
|
/// 库存-移动
|
|
/// </summary>
|
|
/// <param name="MANAGE_ID"></param>
|
|
/// <param name="sResult"></param>
|
|
/// <returns></returns>
|
|
public bool StorageMove(int MANAGE_ID, out string sResult)
|
|
{
|
|
bool bResult = true;
|
|
|
|
sResult = string.Empty;
|
|
|
|
try
|
|
{
|
|
SiaSun.LMS.Model.MANAGE_MAIN mMANAGE_MAIN = this._P_MANAGE_MAIN.GetModel(MANAGE_ID);
|
|
|
|
if (null == mMANAGE_MAIN)
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = string.Format("管理任务索引 {0} 不存在", MANAGE_ID);
|
|
|
|
return bResult;
|
|
}
|
|
|
|
SiaSun.LMS.Model.STORAGE_MAIN mSTORAGE_MAIN;
|
|
|
|
SiaSun.LMS.Model.STORAGE_LIST mSTORAGE_LIST;
|
|
|
|
IList<SiaSun.LMS.Model.MANAGE_LIST> lsMANAGE_LIST = this._P_MANAGE_LIST.GetListManageID(MANAGE_ID);
|
|
|
|
foreach (SiaSun.LMS.Model.MANAGE_LIST mMANAGE_LIST in lsMANAGE_LIST)
|
|
{
|
|
mSTORAGE_LIST = this._P_STORAGE_LIST.GetModel(mMANAGE_LIST.STORAGE_LIST_ID);
|
|
|
|
if (null == mSTORAGE_LIST)
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = string.Format("库存列表索引{0}不存在", mMANAGE_LIST.STORAGE_LIST_ID);
|
|
|
|
return bResult;
|
|
}
|
|
|
|
mSTORAGE_MAIN = this._P_STORAGE_MAIN.GetModel(mSTORAGE_LIST.STORAGE_ID);
|
|
|
|
if (null == mSTORAGE_MAIN)
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = string.Format("库存索引{0}不存在", mSTORAGE_LIST.STORAGE_ID);
|
|
|
|
return bResult;
|
|
}
|
|
|
|
mSTORAGE_MAIN.CELL_MODEL = mMANAGE_MAIN.CELL_MODEL;
|
|
|
|
SiaSun.LMS.Model.WH_CELL mEND_WH_CELL = this._P_WH_CELL.GetModel(mMANAGE_MAIN.END_CELL_ID);
|
|
|
|
mSTORAGE_MAIN.CELL_ID = mEND_WH_CELL.CELL_TYPE.Equals(SiaSun.LMS.Enum.CELL_TYPE.Station.ToString()) ? 16644 : mEND_WH_CELL.CELL_ID;
|
|
|
|
this._P_STORAGE_MAIN.Update(mSTORAGE_MAIN);
|
|
|
|
mSTORAGE_LIST.UPDATE_TIME = SiaSun.LMS.Common.StringUtil.GetCurDateTimeString();
|
|
//ljc
|
|
mSTORAGE_LIST.GOODS_PROPERTY6 = mMANAGE_LIST.GOODS_PROPERTY6;
|
|
this._P_STORAGE_LIST.Update(mSTORAGE_LIST);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = ex.Message;
|
|
|
|
this._log.Fatal(string.Format("调用方法{0}发生异常。", MethodBase.GetCurrentMethod().Name), ex);
|
|
}
|
|
|
|
return bResult;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 库存更改(配盘,取消配盘)
|
|
/// </summary>
|
|
/// <param name="MANAGE_ID"></param>
|
|
/// <param name="sResult"></param>
|
|
/// <returns></returns>
|
|
public bool StorageChange(int MANAGE_ID, out string sResult)
|
|
{
|
|
bool bResult = true;
|
|
|
|
sResult = string.Empty;
|
|
|
|
string STOCK_BARCODE = string.Empty;
|
|
|
|
string sGOODS_PROPERTY = string.Empty;
|
|
|
|
SiaSun.LMS.Model.STORAGE_LIST mSTORAGE_LIST;
|
|
|
|
SiaSun.LMS.Model.STORAGE_MAIN mSTORAGE_MAIN;
|
|
|
|
SiaSun.LMS.Model.STORAGE_MAIN mSTORAGE_MAIN_OLD;
|
|
|
|
string sGOODS_PROPERTY_CONDITION = string.Empty;
|
|
|
|
try
|
|
{
|
|
SiaSun.LMS.Model.MANAGE_MAIN mMANAGE_MAIN = this._P_MANAGE_MAIN.GetModel(MANAGE_ID);
|
|
|
|
if (null == mMANAGE_MAIN)
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = string.Format("管理任务索引 {0} 不存在", MANAGE_ID);
|
|
|
|
return bResult;
|
|
}
|
|
|
|
STOCK_BARCODE = mMANAGE_MAIN.STOCK_BARCODE;
|
|
|
|
IList<SiaSun.LMS.Model.MANAGE_LIST> lsMANAGE_LIST = this._P_MANAGE_LIST.GetListManageID(MANAGE_ID);
|
|
|
|
foreach (SiaSun.LMS.Model.MANAGE_LIST mMANAGE_LIST in lsMANAGE_LIST)
|
|
{
|
|
mSTORAGE_LIST = this._P_STORAGE_LIST.GetModel(mMANAGE_LIST.STORAGE_LIST_ID);
|
|
if (null == mSTORAGE_LIST)
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = string.Format("库存列表索引[{0}]不存在", mMANAGE_LIST.STORAGE_LIST_ID);
|
|
|
|
return bResult;
|
|
}
|
|
|
|
//校验任务数量是否大于库存数量
|
|
if (mMANAGE_LIST.MANAGE_LIST_QUANTITY > mSTORAGE_LIST.STORAGE_LIST_QUANTITY)
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = string.Format("任务数量大于库存数量");
|
|
|
|
return bResult;
|
|
}
|
|
|
|
mSTORAGE_MAIN_OLD = this._P_STORAGE_MAIN.GetModel(mSTORAGE_LIST.STORAGE_ID);
|
|
|
|
mSTORAGE_MAIN_OLD.FULL_FLAG = Enum.FULL_FLAG.PART.ToString("d");
|
|
|
|
this._P_STORAGE_MAIN.Update(mSTORAGE_MAIN_OLD);
|
|
|
|
//更新库存列表的库存数量
|
|
mSTORAGE_LIST.STORAGE_LIST_QUANTITY -= mMANAGE_LIST.MANAGE_LIST_QUANTITY;
|
|
|
|
if (mSTORAGE_LIST.STORAGE_LIST_QUANTITY > 0)
|
|
{
|
|
this._P_STORAGE_LIST.Update(mSTORAGE_LIST);
|
|
}
|
|
|
|
else
|
|
{
|
|
this._P_STORAGE_LIST.Delete(mSTORAGE_LIST.STORAGE_LIST_ID);
|
|
|
|
if (this._P_STORAGE_LIST.GetListStorageID(mSTORAGE_LIST.STORAGE_ID).Count == 0)
|
|
{
|
|
this._P_STORAGE_MAIN.Delete(mSTORAGE_LIST.STORAGE_ID);
|
|
}
|
|
}
|
|
|
|
|
|
//查看托盘条码是否存在暂存区库存-存在,则更新库存位置为当前任务的终止位置
|
|
SiaSun.LMS.Model.STORAGE_MAIN mSTORAGE_MAIN_STOCK_BARCODE = this._P_STORAGE_MAIN.GetModelStockBarcode(mMANAGE_MAIN.STOCK_BARCODE);
|
|
|
|
if (mSTORAGE_MAIN_STOCK_BARCODE != null)
|
|
{
|
|
Model.WH_CELL mWH_CELL_STOCK_BARCODE = this._P_WH_CELL.GetModel(mSTORAGE_MAIN_STOCK_BARCODE.CELL_ID);
|
|
|
|
if (mWH_CELL_STOCK_BARCODE != null)
|
|
{
|
|
Model.WH_AREA mWH_AREA_STOCK_BARCODE = this._P_WH_AREA.GetModel(mWH_CELL_STOCK_BARCODE.AREA_ID);
|
|
|
|
if ((mWH_AREA_STOCK_BARCODE != null) && (mWH_AREA_STOCK_BARCODE.AREA_TYPE.Equals(LMS.Enum.AREA_TYPE.XuNiKu.ToString())))
|
|
{
|
|
mSTORAGE_MAIN_STOCK_BARCODE.CELL_ID = mMANAGE_MAIN.END_CELL_ID;
|
|
|
|
this._P_STORAGE_MAIN.Update(mSTORAGE_MAIN_STOCK_BARCODE);
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
//查看是否有相同条件STORGE_MAIN
|
|
mSTORAGE_MAIN = this._P_STORAGE_MAIN.GetModelCellIDStockBarcode(mMANAGE_MAIN.END_CELL_ID, mMANAGE_MAIN.STOCK_BARCODE);
|
|
if (null == mSTORAGE_MAIN)
|
|
{
|
|
//生成STORAGE_MAIN
|
|
mSTORAGE_MAIN = new SiaSun.LMS.Model.STORAGE_MAIN();
|
|
|
|
mSTORAGE_MAIN.GOODS_TEMPLATE_ID = mMANAGE_MAIN.GOODS_TEMPLATE_ID;
|
|
|
|
mSTORAGE_MAIN.CELL_ID = mMANAGE_MAIN.END_CELL_ID;
|
|
|
|
mSTORAGE_MAIN.STOCK_BARCODE = STOCK_BARCODE;
|
|
|
|
mSTORAGE_MAIN.FULL_FLAG = mMANAGE_MAIN.FULL_FLAG;
|
|
|
|
mSTORAGE_MAIN.CELL_MODEL = mMANAGE_MAIN.CELL_MODEL;
|
|
|
|
mSTORAGE_MAIN.STORAGE_REMARK = mMANAGE_MAIN.MANAGE_REMARK;
|
|
|
|
this._P_STORAGE_MAIN.Add(mSTORAGE_MAIN);
|
|
}
|
|
else
|
|
{
|
|
mSTORAGE_MAIN.FULL_FLAG = mMANAGE_MAIN.FULL_FLAG;
|
|
|
|
mSTORAGE_MAIN.CELL_MODEL = mMANAGE_MAIN.CELL_MODEL;
|
|
|
|
mSTORAGE_MAIN.STORAGE_REMARK = mMANAGE_MAIN.MANAGE_REMARK;
|
|
|
|
this._P_STORAGE_MAIN.Update(mSTORAGE_MAIN);
|
|
}
|
|
|
|
|
|
//获得GOODS_PROPERTY组合查询条件
|
|
bResult = this._S_GoodsService.GetGoodsPropertyCondition(mMANAGE_LIST.GOODS_ID, true, mMANAGE_LIST, out sGOODS_PROPERTY_CONDITION, out sResult);
|
|
if (!bResult)
|
|
{
|
|
return bResult;
|
|
}
|
|
|
|
string strSQL = string.Format(@"SELECT * FROM V_STORAGE_LIST WHERE 1=1
|
|
AND CELL_ID={0}
|
|
AND STORAGE_ID={1}
|
|
AND GOODS_ID={2}
|
|
AND {3}",
|
|
mMANAGE_MAIN.END_CELL_ID,
|
|
mSTORAGE_MAIN.STORAGE_ID,
|
|
mMANAGE_LIST.GOODS_ID,
|
|
sGOODS_PROPERTY_CONDITION);
|
|
|
|
DataTable dtSTORAGE_LIST = base.GetList(strSQL);
|
|
|
|
if (dtSTORAGE_LIST.Rows.Count > 0)
|
|
{
|
|
mSTORAGE_LIST = this._P_STORAGE_LIST.GetModel(Convert.ToInt32(dtSTORAGE_LIST.Rows[0]["STORAGE_LIST_ID"].ToString()));
|
|
|
|
mSTORAGE_LIST.STORAGE_LIST_QUANTITY += mMANAGE_LIST.MANAGE_LIST_QUANTITY;
|
|
|
|
mSTORAGE_LIST.UPDATE_TIME = SiaSun.LMS.Common.StringUtil.GetCurDateTimeString();
|
|
|
|
this._P_STORAGE_LIST.Update(mSTORAGE_LIST);
|
|
}
|
|
else
|
|
{
|
|
//保留原STORAGE_LIST模型
|
|
SiaSun.LMS.Model.STORAGE_LIST STORAGE_LIST_OLD = mSTORAGE_LIST;
|
|
|
|
//生成STORAGE_LIST
|
|
mSTORAGE_LIST = new SiaSun.LMS.Model.STORAGE_LIST();
|
|
|
|
mSTORAGE_LIST.STORAGE_ID = mSTORAGE_MAIN.STORAGE_ID;
|
|
|
|
mSTORAGE_LIST.PLAN_LIST_ID = mMANAGE_LIST.PLAN_LIST_ID;
|
|
|
|
mSTORAGE_LIST.BOX_BARCODE = mMANAGE_LIST.BOX_BARCODE;
|
|
|
|
mSTORAGE_LIST.STORAGE_LIST_QUANTITY = mMANAGE_LIST.MANAGE_LIST_QUANTITY;
|
|
|
|
mSTORAGE_LIST.GOODS_ID = mMANAGE_LIST.GOODS_ID;
|
|
|
|
//根据管理列表物料属性设置库存列表物料属性
|
|
bResult = this._S_GoodsService.GoodsPropertySetValue(mSTORAGE_LIST.GOODS_ID, mSTORAGE_LIST, mMANAGE_LIST, out sResult);
|
|
if (!bResult)
|
|
{
|
|
return bResult;
|
|
}
|
|
|
|
//按原来模型入库时间
|
|
mSTORAGE_LIST.ENTRY_TIME = STORAGE_LIST_OLD == null ? SiaSun.LMS.Common.StringUtil.GetCurDateTimeString() : STORAGE_LIST_OLD.ENTRY_TIME;
|
|
|
|
mSTORAGE_LIST.UPDATE_TIME = SiaSun.LMS.Common.StringUtil.GetCurDateTimeString();
|
|
|
|
mSTORAGE_LIST.STORAGE_LIST_REMARK = mMANAGE_LIST.MANAGE_LIST_REMARK;
|
|
|
|
this._P_STORAGE_LIST.Add(mSTORAGE_LIST);
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = ex.Message;
|
|
|
|
this._log.Fatal(string.Format("调用方法{0}发生异常。", MethodBase.GetCurrentMethod().Name), ex);
|
|
}
|
|
|
|
return bResult;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 校验托盘是否是指定库存类型
|
|
/// </summary>
|
|
/// <param name="STOCK_BARCODE"></param>
|
|
/// <param name="AREA_TYPE"></param>
|
|
/// <param name="sResult"></param>
|
|
/// <returns></returns>
|
|
public bool StorageCheck(string STOCK_BARCODE,
|
|
string AREA_TYPE,
|
|
out string sResult)
|
|
{
|
|
bool bResult = true;
|
|
|
|
sResult = string.Empty;
|
|
|
|
DataTable dt = this.GetList(string.Format(@"SELECT * FROM V_STORAGE_LIST WHERE STOCK_BARCODE LIKE '%{0}%' {1}", STOCK_BARCODE,
|
|
string.IsNullOrEmpty(AREA_TYPE.ToString()) ? string.Empty : string.Format(" AND AREA_TYPE = '{0}' ", AREA_TYPE.ToString())));
|
|
|
|
if (dt.Rows.Count == 0)
|
|
{
|
|
bResult = false;
|
|
}
|
|
|
|
return bResult;
|
|
}
|
|
|
|
}
|
|
}
|