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.
316 lines
12 KiB
316 lines
12 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
|
|
namespace SiaSun.LMS.Implement
|
|
{
|
|
public class ManageUp : ManageBase
|
|
{
|
|
|
|
/// <summary>
|
|
/// 根据库存生成移库任务
|
|
/// </summary>
|
|
/// <param name="mSYS_USER"></param>
|
|
/// <param name="PLAN_LIST_ID"></param>
|
|
/// <param name="STOCK_BARCODE"></param>
|
|
/// <param name="START_CELL_ID"></param>
|
|
/// <param name="END_CELL_ID"></param>
|
|
/// <param name="bTrans"></param>
|
|
/// <param name="bAutoSendControl"></param>
|
|
/// <param name="bComplete"></param>
|
|
/// <param name="sResult"></param>
|
|
/// <param name="MANAGE_ID"></param>
|
|
/// <returns></returns>
|
|
public bool ManageCreate(SiaSun.LMS.Model.MANAGE_MAIN mMANAGE_MAIN,
|
|
bool bTrans,
|
|
bool bAutoSendControl,
|
|
bool bComplete, out string sResult)
|
|
{
|
|
bool bResult = true;
|
|
|
|
sResult = string.Empty;
|
|
|
|
int MANAGE_ID = 0;
|
|
|
|
SiaSun.LMS.Model.WH_CELL mWH_CELL_START = this._P_WH_CELL.GetModel(mMANAGE_MAIN.START_CELL_ID);
|
|
|
|
SiaSun.LMS.Model.WH_CELL mWH_CELL_END = this._P_WH_CELL.GetModel(mMANAGE_MAIN.END_CELL_ID);
|
|
|
|
|
|
if (this._S_StorageService.StorageCheck(mMANAGE_MAIN.STOCK_BARCODE, Enum.AREA_TYPE.LiKu.ToString(), out sResult))
|
|
{
|
|
sResult = string.Format("托盘{0}已经在立库区", mMANAGE_MAIN.STOCK_BARCODE);
|
|
return false;
|
|
}
|
|
|
|
IList<SiaSun.LMS.Model.STORAGE_MAIN> lsSTORAGE_MAIN = null;
|
|
|
|
if (mMANAGE_MAIN.STOCK_BARCODE == string.Empty)
|
|
lsSTORAGE_MAIN = this._P_STORAGE_MAIN.GetListCellID(mMANAGE_MAIN.START_CELL_ID);
|
|
else
|
|
lsSTORAGE_MAIN = this._P_STORAGE_MAIN.GetListStockBarcode(mMANAGE_MAIN.STOCK_BARCODE);
|
|
|
|
|
|
bResult = lsSTORAGE_MAIN.Count > 0;
|
|
|
|
if (!bResult)
|
|
{
|
|
sResult = string.Format("未找到库存");
|
|
|
|
return bResult;
|
|
}
|
|
|
|
|
|
if (this._P_MANAGE_MAIN.GetModelStockBarcode(lsSTORAGE_MAIN[0].STOCK_BARCODE) != null)
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = string.Format("托盘条码{0}已经存在任务", lsSTORAGE_MAIN[0].STOCK_BARCODE);
|
|
|
|
return bResult;
|
|
}
|
|
|
|
try
|
|
{
|
|
this._P_Base_House.BeginTransaction(bTrans);
|
|
|
|
mMANAGE_MAIN.STOCK_BARCODE = lsSTORAGE_MAIN[0].STOCK_BARCODE;
|
|
|
|
|
|
this._P_MANAGE_MAIN.Add(mMANAGE_MAIN);
|
|
|
|
SiaSun.LMS.Model.MANAGE_LIST mMANAGE_LIST = null;
|
|
|
|
foreach (SiaSun.LMS.Model.STORAGE_MAIN mSTORAGE_MAIN in lsSTORAGE_MAIN)
|
|
{
|
|
IList<SiaSun.LMS.Model.STORAGE_LIST> lsSTORAGE_LIST = this._P_STORAGE_LIST.GetListStorageID(mSTORAGE_MAIN.STORAGE_ID);
|
|
|
|
foreach (SiaSun.LMS.Model.STORAGE_LIST mSTORAGE_LIST in lsSTORAGE_LIST)
|
|
{
|
|
|
|
mMANAGE_LIST = new SiaSun.LMS.Model.MANAGE_LIST();
|
|
|
|
mMANAGE_LIST.MANAGE_ID = mMANAGE_MAIN.MANAGE_ID;
|
|
|
|
|
|
mMANAGE_LIST.STORAGE_LIST_ID = mSTORAGE_LIST.STORAGE_LIST_ID;
|
|
|
|
mMANAGE_LIST.GOODS_ID = mSTORAGE_LIST.GOODS_ID;
|
|
|
|
bResult = this._S_GoodsService.GoodsPropertySetValue(mSTORAGE_LIST.GOODS_ID, mMANAGE_LIST, mSTORAGE_LIST, out sResult);
|
|
|
|
if (!bResult)
|
|
{
|
|
return bResult;
|
|
}
|
|
mMANAGE_LIST.BOX_BARCODE = mSTORAGE_LIST.BOX_BARCODE;
|
|
|
|
mMANAGE_LIST.MANAGE_LIST_QUANTITY = mSTORAGE_LIST.STORAGE_LIST_QUANTITY;
|
|
|
|
mMANAGE_LIST.MANAGE_LIST_REMARK = mSTORAGE_LIST.STORAGE_LIST_REMARK;
|
|
mMANAGE_LIST.GOODS_PROPERTY1 = mSTORAGE_LIST.GOODS_PROPERTY1;
|
|
mMANAGE_LIST.GOODS_PROPERTY2 = mSTORAGE_LIST.GOODS_PROPERTY2;
|
|
mMANAGE_LIST.GOODS_PROPERTY3 = mSTORAGE_LIST.GOODS_PROPERTY3;
|
|
mMANAGE_LIST.GOODS_PROPERTY4 = mSTORAGE_LIST.GOODS_PROPERTY4;
|
|
mMANAGE_LIST.GOODS_PROPERTY5 = mSTORAGE_LIST.GOODS_PROPERTY5;
|
|
mMANAGE_LIST.GOODS_PROPERTY6 = mSTORAGE_LIST.GOODS_PROPERTY6;
|
|
mMANAGE_LIST.GOODS_PROPERTY7 = mSTORAGE_LIST.GOODS_PROPERTY7;
|
|
mMANAGE_LIST.GOODS_PROPERTY8 = mSTORAGE_LIST.GOODS_PROPERTY8;
|
|
mMANAGE_LIST.GOODS_PROPERTY9 = mSTORAGE_LIST.GOODS_PROPERTY9;
|
|
|
|
this._P_MANAGE_LIST.Add(mMANAGE_LIST);
|
|
|
|
}
|
|
}
|
|
|
|
if (mWH_CELL_START != null)
|
|
{
|
|
bResult = this._S_CellService.CellUpdateStatus(mMANAGE_MAIN.START_CELL_ID, string.Empty, SiaSun.LMS.Enum.RUN_STATUS.Selected.ToString(), out sResult);
|
|
|
|
if (!bResult)
|
|
{
|
|
sResult = string.Format("更新开始货位{0}状态错误\n{1}", mWH_CELL_START.CELL_CODE, sResult);
|
|
|
|
this._P_Base_House.RollBackTransaction(bTrans);
|
|
|
|
return bResult;
|
|
}
|
|
}
|
|
|
|
if (mWH_CELL_END != null)
|
|
{
|
|
bResult = this._S_CellService.CellUpdateStatus(mMANAGE_MAIN.END_CELL_ID, string.Empty, SiaSun.LMS.Enum.RUN_STATUS.Selected.ToString(), out sResult);
|
|
|
|
if (!bResult)
|
|
{
|
|
sResult = string.Format("更新结束货位{0}状态错误\n{1}", mWH_CELL_END.CELL_CODE, sResult);
|
|
|
|
this._P_Base_House.RollBackTransaction(bTrans);
|
|
|
|
return bResult;
|
|
}
|
|
}
|
|
|
|
MANAGE_ID = mMANAGE_MAIN.MANAGE_ID;
|
|
|
|
//判断物料是子托盘
|
|
if (mMANAGE_LIST.GOODS_ID == 32772)
|
|
{
|
|
mMANAGE_MAIN.MANAGE_TYPE_CODE = "StockInMin";
|
|
this._P_MANAGE_MAIN.Update(mMANAGE_MAIN);
|
|
}
|
|
|
|
if (bAutoSendControl)
|
|
{
|
|
bResult = this.ManageDownLoad(MANAGE_ID, string.Empty, false, out sResult);
|
|
|
|
if (!bResult)
|
|
{
|
|
this._P_Base_House.RollBackTransaction(bTrans);
|
|
|
|
return bResult;
|
|
}
|
|
}
|
|
|
|
if (bComplete)
|
|
{
|
|
bResult = this.ManageComplete(MANAGE_ID, false, out sResult);
|
|
|
|
if (!bResult)
|
|
{
|
|
this._P_Base_House.RollBackTransaction(bTrans);
|
|
|
|
return bResult;
|
|
}
|
|
}
|
|
|
|
sResult = string.Format("托盘{0}生成任务成功", mMANAGE_MAIN.STOCK_BARCODE);
|
|
string sTemp = string.Empty;
|
|
this._S_LEDService.AddLedLineTxt(mWH_CELL_START.CELL_CODE, 2, string.Format("{0} 入库成功", mMANAGE_MAIN.STOCK_BARCODE), out sTemp);
|
|
this._P_Base_House.CommitTransaction(bTrans);
|
|
|
|
//string sMessage = string.Format("入库托盘{0},起始位置{1}-终止位置{2}", mMANAGE_MAIN.STOCK_BARCODE, mWH_CELL_START.CELL_CODE, mWH_CELL_END == null ? "" : mWH_CELL_END.CELL_CODE);
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
this._P_Base_House.RollBackTransaction(bTrans);
|
|
|
|
bResult = false;
|
|
|
|
sResult = ex.Message;
|
|
}
|
|
|
|
return bResult;
|
|
}
|
|
|
|
|
|
/// <summary>完成
|
|
/// 完成
|
|
/// </summary>
|
|
/// <param name="MANAGE_ID"></param>
|
|
/// <param name="bTrans">是否独立事务</param>
|
|
/// <param name="sResult"></param>
|
|
/// <returns></returns>
|
|
public bool ManageComplete(int MANAGE_ID, bool bTrans, out string sResult)
|
|
{
|
|
bool bResult = true;
|
|
|
|
sResult = string.Empty;
|
|
|
|
SiaSun.LMS.Model.MANAGE_MAIN mMANAGE_MAIN = this._P_MANAGE_MAIN.GetModel(MANAGE_ID);
|
|
|
|
bResult = null != mMANAGE_MAIN;
|
|
|
|
if (!bResult)
|
|
{
|
|
sResult = string.Format("未能找到任务{0}", MANAGE_ID.ToString());
|
|
|
|
return bResult;
|
|
}
|
|
|
|
try
|
|
{
|
|
SiaSun.LMS.Model.WH_CELL mWH_CELL_START = this._P_WH_CELL.GetModel(mMANAGE_MAIN.START_CELL_ID);
|
|
|
|
SiaSun.LMS.Model.WH_CELL mWH_CELL_END = this._P_WH_CELL.GetModel(mMANAGE_MAIN.END_CELL_ID);
|
|
|
|
this._P_Base_House.BeginTransaction(bTrans);
|
|
|
|
if (mWH_CELL_START != null && (mWH_CELL_START.CELL_TYPE.TrimEnd() == Enum.CELL_TYPE.Cell.ToString()
|
|
|| mWH_CELL_START.CELL_STORAGE_TYPE.TrimEnd() == Enum.CELL_STORAGE_TYPE.Single.ToString()))
|
|
{
|
|
bResult = this._S_CellService.CellUpdateStatus(mMANAGE_MAIN.START_CELL_ID,
|
|
SiaSun.LMS.Enum.CELL_STATUS.Nohave.ToString(),
|
|
SiaSun.LMS.Enum.RUN_STATUS.Enable.ToString(),
|
|
out sResult);
|
|
}
|
|
|
|
if (!bResult)
|
|
{
|
|
sResult = string.Format("更新起始位置{0}状态错误\n", mMANAGE_MAIN.START_CELL_ID.ToString());
|
|
|
|
return bResult;
|
|
}
|
|
if (mWH_CELL_END != null && (mWH_CELL_END.CELL_TYPE.TrimEnd() == Enum.CELL_TYPE.Cell.ToString()
|
|
|| mWH_CELL_END.CELL_STORAGE_TYPE.TrimEnd() == Enum.CELL_STORAGE_TYPE.Single.ToString()))
|
|
{
|
|
if (mMANAGE_MAIN.MANAGE_TYPE_CODE == "StockInMin")
|
|
{
|
|
bResult = this._S_CellService.CellUpdateStatus(mMANAGE_MAIN.END_CELL_ID,
|
|
SiaSun.LMS.Enum.CELL_STATUS.Full.ToString(),
|
|
SiaSun.LMS.Enum.RUN_STATUS.Enable.ToString(),
|
|
out sResult);
|
|
}
|
|
else
|
|
{
|
|
bResult = this._S_CellService.CellUpdateStatus(mMANAGE_MAIN.END_CELL_ID,
|
|
SiaSun.LMS.Enum.CELL_STATUS.Full.ToString(),
|
|
SiaSun.LMS.Enum.RUN_STATUS.Enable.ToString(),
|
|
out sResult);
|
|
}
|
|
}
|
|
if (!bResult)
|
|
{
|
|
sResult = string.Format("更新终止位置{0}状态错误\n", mMANAGE_MAIN.END_CELL_ID.ToString());
|
|
|
|
return bResult;
|
|
}
|
|
|
|
//bResult = this.Invoke("StorageBase", "StorageMove", new object[] { MANAGE_ID }, out sResult);
|
|
bResult = this.Invoke("StorageBase", "StorageMove", new object[] { mMANAGE_MAIN.STOCK_BARCODE, mMANAGE_MAIN.START_CELL_ID, mMANAGE_MAIN.END_CELL_ID }, out sResult);
|
|
|
|
|
|
if (!bResult)
|
|
{
|
|
sResult = string.Format("库存处理错误-{0}", sResult);
|
|
|
|
return bResult;
|
|
}
|
|
|
|
bResult = base.ManageComplete(mMANAGE_MAIN, false, out sResult);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = ex.Message;
|
|
}
|
|
finally
|
|
{
|
|
if (bResult)
|
|
{
|
|
this._P_Base_House.CommitTransaction(bTrans);
|
|
}
|
|
else
|
|
{
|
|
this._P_Base_House.RollBackTransaction(bTrans);
|
|
}
|
|
}
|
|
|
|
return bResult;
|
|
}
|
|
|
|
}
|
|
}
|