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.
824 lines
29 KiB
824 lines
29 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Reflection;
|
|
using System.Data;
|
|
|
|
namespace SiaSun.LMS.Implement
|
|
{
|
|
public class ManageDownOut : ManageBase
|
|
{
|
|
/// <summary>
|
|
/// 生成无计划【下架出库】任务
|
|
/// 调用界面 ManageDownOut.XAML
|
|
/// </summary>
|
|
/// <param name="mMANAGE_MAIN"></param>
|
|
/// <param name="lsMANAGE_LIST"></param>
|
|
/// <param name="bTrans"></param>
|
|
/// <param name="bAutoSendControl"></param>
|
|
/// <param name="sResult"></param>
|
|
/// <returns></returns>
|
|
public new bool ManageCreate(SiaSun.LMS.Model.MANAGE_MAIN mMANAGE_MAIN,
|
|
List<SiaSun.LMS.Model.MANAGE_LIST> lsMANAGE_LIST,
|
|
bool bTrans,
|
|
bool bAutoSendControl,
|
|
out string sResult)
|
|
{
|
|
bool bResult = true;
|
|
|
|
sResult = string.Empty;
|
|
|
|
try
|
|
{
|
|
#region 校验
|
|
|
|
#region 校验容器条码
|
|
|
|
if (string.IsNullOrEmpty(mMANAGE_MAIN.STOCK_BARCODE))
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = string.Format("容器条码不能为空");
|
|
|
|
return bResult;
|
|
}
|
|
|
|
SiaSun.LMS.Model.MANAGE_MAIN mMANAGE_MAIN_OLD = this._P_MANAGE_MAIN.GetModelStockBarcode(mMANAGE_MAIN.STOCK_BARCODE);
|
|
|
|
if (mMANAGE_MAIN_OLD != null)
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = string.Format("容器[{0}]已经存在任务[{1}]", mMANAGE_MAIN_OLD.STOCK_BARCODE, mMANAGE_MAIN_OLD.MANAGE_ID);
|
|
|
|
return bResult;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 校验库存
|
|
|
|
Model.STORAGE_MAIN mSTORAGE_MAIN = this._P_STORAGE_MAIN.GetModelStockBarcode(mMANAGE_MAIN.STOCK_BARCODE);
|
|
|
|
if (null == mSTORAGE_MAIN)
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = string.Format("容器条码[{0}]不存在库存", mMANAGE_MAIN.STOCK_BARCODE);
|
|
|
|
return bResult;
|
|
}
|
|
|
|
IList<SiaSun.LMS.Model.STORAGE_LIST> lsSTORAGE_LIST = this._P_STORAGE_LIST.GetListStorageID(mSTORAGE_MAIN.STORAGE_ID);
|
|
|
|
if (lsSTORAGE_LIST.Count == 0)
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = string.Format("容器条码[{0}]不存在库存", mMANAGE_MAIN.STOCK_BARCODE);
|
|
|
|
return bResult;
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
#region 起始位置
|
|
|
|
Model.WH_CELL mSTART_WH_CELL = this._P_WH_CELL.GetModel(mMANAGE_MAIN.START_CELL_ID);
|
|
|
|
if (null == mSTART_WH_CELL)
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = string.Format("起始位置索引[{0}]不存在", mSTORAGE_MAIN.CELL_ID);
|
|
|
|
return bResult;
|
|
}
|
|
|
|
if (!mSTART_WH_CELL.CELL_TYPE.Equals(SiaSun.LMS.Enum.CELL_TYPE.Cell.ToString()))
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = string.Format("起始位置[{0}]类型不合法", mSTART_WH_CELL.CELL_CODE);
|
|
|
|
return bResult;
|
|
}
|
|
|
|
SiaSun.LMS.Model.WH_AREA mSTART_WH_AREA = this._P_WH_AREA.GetModel(mSTART_WH_CELL.AREA_ID);
|
|
|
|
if (mSTART_WH_AREA.AREA_TYPE == SiaSun.LMS.Enum.AREA_TYPE.XuNiKu.ToString())
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = string.Format("起始位置[{0}]库区类型[{1}]不合法", mSTART_WH_CELL.CELL_CODE, mSTART_WH_AREA.AREA_TYPE);
|
|
|
|
return bResult;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 终止位置
|
|
|
|
if (mMANAGE_MAIN.END_CELL_ID!= 0)
|
|
{
|
|
#region 校验终止位置
|
|
|
|
SiaSun.LMS.Model.WH_CELL mEND_WH_CELL = this._P_WH_CELL.GetModel(mMANAGE_MAIN.END_CELL_ID);
|
|
|
|
if (null == mEND_WH_CELL)
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = string.Format(" 终止位置索引[{0}]不存在", mMANAGE_MAIN.END_CELL_ID);
|
|
|
|
return bResult;
|
|
}
|
|
|
|
if (!mEND_WH_CELL.CELL_TYPE.Equals(SiaSun.LMS.Enum.CELL_TYPE.Station.ToString()))
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = string.Format(" 终止位置[{0}]类型不合法", mEND_WH_CELL.CELL_NAME);
|
|
|
|
return bResult;
|
|
}
|
|
|
|
if (mEND_WH_CELL.CELL_INOUT.ToString().Equals(SiaSun.LMS.Enum.CELL_INOUT.In.ToString()))
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = string.Format(" 终止位置[{0}]入出类型[{1}]不合法", mEND_WH_CELL.CELL_NAME, mEND_WH_CELL.CELL_INOUT);
|
|
|
|
return bResult;
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
else
|
|
{
|
|
#region 根据起始位置,获得终止站台
|
|
|
|
int END_CELL_ID = 0;
|
|
|
|
bResult = this._S_CellService.GetOutStation(mMANAGE_MAIN.START_CELL_ID, out END_CELL_ID, out sResult);
|
|
|
|
if (!bResult)
|
|
{
|
|
return bResult;
|
|
}
|
|
|
|
mMANAGE_MAIN.END_CELL_ID = END_CELL_ID;
|
|
|
|
#endregion
|
|
}
|
|
|
|
#endregion
|
|
|
|
#endregion
|
|
|
|
#region 下达任务
|
|
|
|
bResult = base.ManageCreate(mMANAGE_MAIN, lsMANAGE_LIST, bAutoSendControl, bTrans, out sResult);
|
|
// this.updateLedText(mMANAGE_MAIN.START_CELL_ID, 1, "任务类型:出库");
|
|
//this.updateLedText(mMANAGE_MAIN.START_CELL_ID, 2, "条码:" + mMANAGE_MAIN.STOCK_BARCODE);
|
|
//this.updateLedText(mMANAGE_MAIN.START_CELL_ID, 3, "货位:" + mMANAGE_MAIN.START_CELL_ID.ToString());
|
|
//直接报完成
|
|
if ((!bAutoSendControl) && bResult)
|
|
{
|
|
bResult = this.ManageComplete(mMANAGE_MAIN.MANAGE_ID, bTrans, out sResult);
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = ex.Message;
|
|
|
|
this._log.Fatal(string.Format("调用方法{0}发生异常。", MethodBase.GetCurrentMethod().Name), ex);
|
|
}
|
|
|
|
return bResult;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 生成按计划【下架出库】任务
|
|
/// 调用界面 ManagePlanDown_Out.XAML
|
|
/// </summary>
|
|
/// <param name="mMANAGE_MAIN"></param>
|
|
/// <param name="lsPLAN_LIST"></param>
|
|
/// <param name="lsMANAGE_LIST"></param>
|
|
/// <param name="bTrans"></param>
|
|
/// <param name="bAutoSendControl"></param>
|
|
/// <param name="sResult"></param>
|
|
/// <returns></returns>
|
|
public bool ManageCreate(SiaSun.LMS.Model.MANAGE_MAIN mMANAGE_MAIN,
|
|
List<SiaSun.LMS.Model.PLAN_LIST> lsPLAN_LIST,
|
|
List<SiaSun.LMS.Model.MANAGE_LIST> lsMANAGE_LIST,
|
|
bool bTrans,
|
|
bool bAutoSendControl,
|
|
out string sResult)
|
|
{
|
|
bool bResult = true;
|
|
|
|
sResult = string.Empty;
|
|
|
|
try
|
|
{
|
|
|
|
#region 校验
|
|
|
|
#region 校验容器条码
|
|
|
|
if (string.IsNullOrEmpty(mMANAGE_MAIN.STOCK_BARCODE))
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = string.Format("容器条码不能为空");
|
|
|
|
return bResult;
|
|
}
|
|
|
|
SiaSun.LMS.Model.MANAGE_MAIN mMANAGE_MAIN_OLD = this._P_MANAGE_MAIN.GetModelStockBarcode(mMANAGE_MAIN.STOCK_BARCODE);
|
|
|
|
if (mMANAGE_MAIN_OLD != null)
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = string.Format("容器[{0}]已经存在任务[{1}]", mMANAGE_MAIN_OLD.STOCK_BARCODE, mMANAGE_MAIN_OLD.MANAGE_ID);
|
|
|
|
return bResult;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 校验库存
|
|
|
|
Model.STORAGE_MAIN mSTORAGE_MAIN = this._P_STORAGE_MAIN.GetModelStockBarcode(mMANAGE_MAIN.STOCK_BARCODE);
|
|
|
|
if (null == mSTORAGE_MAIN)
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = string.Format("容器条码[{0}]不存在库存", mMANAGE_MAIN.STOCK_BARCODE);
|
|
|
|
return bResult;
|
|
}
|
|
|
|
IList<SiaSun.LMS.Model.STORAGE_LIST> lsSTORAGE_LIST = this._P_STORAGE_LIST.GetListStorageID(mSTORAGE_MAIN.STORAGE_ID);
|
|
|
|
if (lsSTORAGE_LIST.Count == 0)
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = string.Format("容器条码[{0}]不存在库存", mMANAGE_MAIN.STOCK_BARCODE);
|
|
|
|
return bResult;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 起始位置
|
|
|
|
Model.WH_CELL mSTART_WH_CELL = this._P_WH_CELL.GetModel(mMANAGE_MAIN.START_CELL_ID);
|
|
|
|
if (null == mSTART_WH_CELL)
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = string.Format("起始位置索引[{0}]不存在", mSTORAGE_MAIN.CELL_ID);
|
|
|
|
return bResult;
|
|
}
|
|
|
|
if (!mSTART_WH_CELL.CELL_TYPE.Equals(SiaSun.LMS.Enum.CELL_TYPE.Cell.ToString()))
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = string.Format("起始位置[{0}]类型不合法", mSTART_WH_CELL.CELL_CODE);
|
|
|
|
return bResult;
|
|
}
|
|
|
|
SiaSun.LMS.Model.WH_AREA mSTART_WH_AREA = this._P_WH_AREA.GetModel(mSTART_WH_CELL.AREA_ID);
|
|
|
|
if (mSTART_WH_AREA.AREA_TYPE == SiaSun.LMS.Enum.AREA_TYPE.XuNiKu.ToString())
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = string.Format("起始位置[{0}]库区类型[{1}]不合法", mSTART_WH_CELL.CELL_CODE, mSTART_WH_AREA.AREA_TYPE);
|
|
|
|
return bResult;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 终止位置
|
|
|
|
if (mMANAGE_MAIN.END_CELL_ID != 0)
|
|
{
|
|
#region 校验终止位置
|
|
|
|
SiaSun.LMS.Model.WH_CELL mEND_WH_CELL = this._P_WH_CELL.GetModel(mMANAGE_MAIN.END_CELL_ID);
|
|
|
|
if (null == mEND_WH_CELL)
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = string.Format(" 终止位置索引[{0}]不存在", mMANAGE_MAIN.END_CELL_ID);
|
|
|
|
return bResult;
|
|
}
|
|
|
|
if (!mEND_WH_CELL.CELL_TYPE.Equals(SiaSun.LMS.Enum.CELL_TYPE.Station.ToString()))
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = string.Format(" 终止位置[{0}]类型不合法", mEND_WH_CELL.CELL_NAME);
|
|
|
|
return bResult;
|
|
}
|
|
|
|
if (mEND_WH_CELL.CELL_INOUT.ToString().Equals(SiaSun.LMS.Enum.CELL_INOUT.In.ToString()))
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = string.Format(" 终止位置[{0}]入出类型[{1}]不合法", mEND_WH_CELL.CELL_NAME, mEND_WH_CELL.CELL_INOUT);
|
|
|
|
return bResult;
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
else
|
|
{
|
|
#region 根据起始位置,获得终止站台
|
|
|
|
int END_CELL_ID = 0;
|
|
|
|
bResult = this._S_CellService.GetOutStation(mMANAGE_MAIN.START_CELL_ID, out END_CELL_ID, out sResult);
|
|
|
|
if (!bResult)
|
|
{
|
|
return bResult;
|
|
}
|
|
|
|
mMANAGE_MAIN.END_CELL_ID = END_CELL_ID;
|
|
|
|
#endregion
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 校验计划
|
|
|
|
SiaSun.LMS.Model.PLAN_MAIN mPLAN_MAIN = null;
|
|
|
|
SiaSun.LMS.Model.PLAN_LIST mPLAN_LIST = null;
|
|
|
|
if (lsPLAN_LIST != null && lsPLAN_LIST.Count > 0)
|
|
{
|
|
mPLAN_LIST = this._P_PLAN_LIST.GetModel(lsPLAN_LIST[0].PLAN_LIST_ID);
|
|
|
|
mPLAN_MAIN = this._P_PLAN_MAIN.GetModel(mPLAN_LIST.PLAN_ID);
|
|
}
|
|
else
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = string.Format("请选择【下架出库】的计划明细");
|
|
|
|
return bResult;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#endregion
|
|
|
|
#region 匹配任务明细与计划明细
|
|
|
|
foreach (SiaSun.LMS.Model.MANAGE_LIST mMANAGE_LIST in lsMANAGE_LIST)
|
|
{
|
|
foreach (SiaSun.LMS.Model.PLAN_LIST temp_mPLAN_LIST in lsPLAN_LIST)
|
|
{
|
|
if (mMANAGE_LIST.GOODS_ID == temp_mPLAN_LIST.GOODS_ID)
|
|
{
|
|
bResult = _S_GoodsService.GoodsPropertybEqual(mMANAGE_LIST.GOODS_ID, temp_mPLAN_LIST, mMANAGE_LIST,out sResult);
|
|
|
|
if (!bResult)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
//跳过已完成的计划明细
|
|
if (temp_mPLAN_LIST.PLAN_LIST_QUANTITY == temp_mPLAN_LIST.PLAN_LIST_ORDERED_QUANTITY)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if (temp_mPLAN_LIST.PLAN_LIST_ORDERED_QUANTITY+mMANAGE_LIST.MANAGE_LIST_QUANTITY > temp_mPLAN_LIST.PLAN_LIST_QUANTITY)
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = string.Format("出库数量[{0}]不能大于计划未完成数量[{1}-{2}={3}]", mMANAGE_LIST.MANAGE_LIST_QUANTITY, temp_mPLAN_LIST.PLAN_LIST_QUANTITY, temp_mPLAN_LIST.PLAN_LIST_ORDERED_QUANTITY,temp_mPLAN_LIST.PLAN_LIST_QUANTITY-temp_mPLAN_LIST.PLAN_LIST_ORDERED_QUANTITY);
|
|
|
|
return bResult;
|
|
}
|
|
|
|
//计划明细,下达数量增加,避免后续任务超出计划数量
|
|
temp_mPLAN_LIST.PLAN_LIST_ORDERED_QUANTITY += mMANAGE_LIST.MANAGE_LIST_QUANTITY;
|
|
|
|
mMANAGE_LIST.PLAN_LIST_ID = temp_mPLAN_LIST.PLAN_LIST_ID;
|
|
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (mMANAGE_LIST.PLAN_LIST_ID == null || mMANAGE_LIST.PLAN_LIST_ID == 0)
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = string.Format("物料索引[{0}]任务明细未找到对应计划明细", mMANAGE_LIST.GOODS_ID);
|
|
|
|
return bResult;
|
|
}
|
|
}
|
|
|
|
mMANAGE_MAIN.PLAN_ID = mPLAN_MAIN.PLAN_ID;
|
|
|
|
mMANAGE_MAIN.PLAN_TYPE_CODE = mPLAN_MAIN.PLAN_TYPE_CODE;
|
|
|
|
#endregion
|
|
|
|
#region 下达任务
|
|
|
|
bResult = base.ManageCreate(mMANAGE_MAIN, lsMANAGE_LIST, bAutoSendControl, bTrans, out sResult);
|
|
|
|
//直接报完成
|
|
if ((!bAutoSendControl) && bResult)
|
|
{
|
|
bResult = this.ManageComplete(mMANAGE_MAIN.MANAGE_ID, bTrans, out sResult);
|
|
}
|
|
// this.updateLedText(mMANAGE_MAIN.START_CELL_ID, 1, "任务类型:出库");
|
|
// this.updateLedText(mMANAGE_MAIN.START_CELL_ID, 2, "条码:" + mMANAGE_MAIN.STOCK_BARCODE);
|
|
// //this.updateLedText(mMANAGE_MAIN.START_CELL_ID, 3, "货位:" + mMANAGE_MAIN.START_CELL_ID.ToString());
|
|
// SiaSun.LMS.Model.WH_CELL wh_cell = this._P_WH_CELL.GetModel(mMANAGE_MAIN.START_CELL_ID);
|
|
|
|
//if (wh_cell != null)
|
|
//{
|
|
// this.updateLedText(mMANAGE_MAIN.START_CELL_ID, 3, "货位:" + wh_cell.CELL_CODE);
|
|
//}
|
|
//else
|
|
//{
|
|
// this.updateLedText(mMANAGE_MAIN.START_CELL_ID, 3, "货位:" + "未找到货位");
|
|
//}
|
|
#endregion
|
|
}
|
|
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="bTrans">是否独立事务</param>
|
|
/// <param name="sResult"></param>
|
|
/// <returns></returns>
|
|
public new bool ManageComplete(int MANAGE_ID, bool bTrans, out string sResult)
|
|
{
|
|
bool bResult = true;
|
|
|
|
sResult = string.Empty;
|
|
|
|
try
|
|
{
|
|
this._P_Base_House.BeginTransaction(bTrans);
|
|
|
|
#region 校验
|
|
|
|
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);
|
|
|
|
return bResult;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 删除库存
|
|
|
|
bResult = this._S_StorageService.StorageDelete(MANAGE_ID, out sResult);
|
|
|
|
if (!bResult)
|
|
{
|
|
return bResult;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 更新货位状态ljc
|
|
SiaSun.LMS.Model.WH_CELL mSTART_WH_CELL = this._P_WH_CELL.GetModel(mMANAGE_MAIN.START_CELL_ID);
|
|
if (null == mSTART_WH_CELL)
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = string.Format("起始位置索引[{0}]不存在", mMANAGE_MAIN.START_CELL_ID);
|
|
|
|
return bResult;
|
|
}
|
|
|
|
SiaSun.LMS.Model.WH_CELL mEND_WH_CELL = this._P_WH_CELL.GetModel(mMANAGE_MAIN.END_CELL_ID);
|
|
if (null == mEND_WH_CELL)
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = string.Format("终止位置索引[{0}]不存在", mMANAGE_MAIN.END_CELL_ID);
|
|
|
|
return bResult;
|
|
}
|
|
if (!this._P_WH_AREA.GetModel(mSTART_WH_CELL.AREA_ID).AREA_TYPE.Equals(SiaSun.LMS.Enum.AREA_TYPE.XuNiKu.ToString()))
|
|
{
|
|
string CELL_STATUS = SiaSun.LMS.Enum.CELL_STATUS.Nohave.ToString();
|
|
|
|
bResult = this._S_CellService.CellUpdateStatus(mMANAGE_MAIN.START_CELL_ID, CELL_STATUS, SiaSun.LMS.Enum.RUN_STATUS.Enable.ToString(), out sResult);
|
|
if (!bResult)
|
|
{
|
|
return bResult;
|
|
}
|
|
}
|
|
|
|
if (!this._P_WH_AREA.GetModel(mEND_WH_CELL.AREA_ID).AREA_TYPE.Equals(SiaSun.LMS.Enum.AREA_TYPE.XuNiKu.ToString()))
|
|
{
|
|
// string CELL_STATUS = mMANAGE_MAIN.FULL_FLAG == "1" ? SiaSun.LMS.Enum.CELL_STATUS.Full.ToString() : SiaSun.LMS.Enum.CELL_STATUS.Have.ToString();
|
|
string CELL_STATUS = SiaSun.LMS.Enum.CELL_STATUS.Full.ToString();
|
|
bResult = this._S_CellService.CellUpdateStatus(mMANAGE_MAIN.END_CELL_ID, CELL_STATUS, SiaSun.LMS.Enum.RUN_STATUS.Enable.ToString(), out sResult);
|
|
if (!bResult)
|
|
{
|
|
return bResult;
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
#region 更新库存-立库移至暂存区
|
|
|
|
//bResult = this._S_StorageService.StorageMove(MANAGE_ID, out sResult);
|
|
//if (!bResult)
|
|
//{
|
|
// return bResult;
|
|
//}
|
|
|
|
#endregion
|
|
#region 调用基类完成方法
|
|
|
|
bResult = base.ManageComplete(mMANAGE_MAIN.MANAGE_ID, false, out sResult);
|
|
if (!bResult)
|
|
{
|
|
return bResult;
|
|
}
|
|
// this.updateLedText(mMANAGE_MAIN.END_CELL_ID, 1, "出库完成");
|
|
// // this.updateLedText(mMANAGE_MAIN.END_CELL_ID, 2, "条码:" + mMANAGE_MAIN.STOCK_BARCODE);
|
|
// // this.updateLedText(mMANAGE_MAIN.END_CELL_ID, 3, "货位:" + mMANAGE_MAIN.END_CELL_ID.ToString());
|
|
#endregion
|
|
|
|
#region 删除任务信息
|
|
|
|
this._P_IO_CONTROL.DeleteManageID(MANAGE_ID);
|
|
|
|
this._P_MANAGE_DETAIL.DeleteManageID(MANAGE_ID);
|
|
|
|
this._P_MANAGE_LIST.DeleteManageID(MANAGE_ID);
|
|
|
|
this._P_MANAGE_MAIN.Delete(MANAGE_ID);
|
|
|
|
#endregion
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = ex.Message;
|
|
|
|
this._log.Fatal(string.Format("调用方法{0}发生异常。", MethodBase.GetCurrentMethod().Name), ex);
|
|
}
|
|
finally
|
|
{
|
|
if (bResult)
|
|
{
|
|
this._P_Base_House.CommitTransaction(bTrans);
|
|
}
|
|
else
|
|
{
|
|
this._P_Base_House.RollBackTransaction(bTrans);
|
|
}
|
|
}
|
|
|
|
return bResult;
|
|
}
|
|
///// <summary>
|
|
///// 生成【实盘下架】,解除关联计划,任务明细为托盘上全部物料明细,并报完成
|
|
///// 任务类型更新为【出库】,关联计划,状态为【等待确认】
|
|
///// </summary>
|
|
///// <param name="MANAGE_ID"></param>
|
|
///// <param name="bTrans">是否独立事务</param>
|
|
///// <param name="sResult"></param>
|
|
///// <returns></returns>
|
|
//public new bool ManageComplete(int MANAGE_ID, bool bTrans, out string sResult)
|
|
//{
|
|
// bool bResult = true;
|
|
|
|
// sResult = string.Empty;
|
|
|
|
// try
|
|
// {
|
|
// this._P_Base_House.BeginTransaction(bTrans);
|
|
|
|
// #region 校验
|
|
|
|
// 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;
|
|
// }
|
|
|
|
// SiaSun.LMS.Model.IO_CONTROL mIO_CONTROL = this._P_IO_CONTROL.GetModelManageID(MANAGE_ID);
|
|
// if ((null != mIO_CONTROL) && (!mIO_CONTROL.CONTROL_STATUS.Equals(999)))
|
|
// {
|
|
// bResult = false;
|
|
|
|
// sResult = string.Format("控制任务索引[{0}]的控制任务未完成", mIO_CONTROL.CONTROL_ID);
|
|
|
|
// return bResult;
|
|
// }
|
|
|
|
// SiaSun.LMS.Model.WH_CELL mSTART_WH_CELL = this._P_WH_CELL.GetModel(mMANAGE_MAIN.START_CELL_ID);
|
|
// if (null == mSTART_WH_CELL)
|
|
// {
|
|
// bResult = false;
|
|
|
|
// sResult = string.Format("起始位置索引[{0}]不存在", mMANAGE_MAIN.START_CELL_ID);
|
|
|
|
// return bResult;
|
|
// }
|
|
|
|
// SiaSun.LMS.Model.WH_CELL mEND_WH_CELL = this._P_WH_CELL.GetModel(mMANAGE_MAIN.END_CELL_ID);
|
|
// if (null == mEND_WH_CELL)
|
|
// {
|
|
// bResult = false;
|
|
|
|
// sResult = string.Format("终止位置索引[{0}]不存在", mMANAGE_MAIN.END_CELL_ID);
|
|
|
|
// return bResult;
|
|
// }
|
|
|
|
// Model.STORAGE_MAIN mSTORAGE_MAIN=_P_STORAGE_MAIN.GetModelStockBarcode(mMANAGE_MAIN.STOCK_BARCODE);
|
|
|
|
// if(mSTORAGE_MAIN==null)
|
|
// {
|
|
// bResult = false;
|
|
|
|
// sResult = string.Format("容器[{0}]库存不存在", mMANAGE_MAIN.STOCK_BARCODE);
|
|
|
|
// return bResult;
|
|
// }
|
|
|
|
// #endregion
|
|
|
|
// #region 删除控制任务
|
|
|
|
// this._P_IO_CONTROL.DeleteManageID(mMANAGE_MAIN.MANAGE_ID);
|
|
|
|
// #endregion
|
|
|
|
// #region 容器条码置为空,避免下达【下架】时,校验出错
|
|
|
|
// //保留原任务信息
|
|
// string STOCK_BARCODE = mMANAGE_MAIN.STOCK_BARCODE;
|
|
|
|
// int MANAGE_ID_DownOut = mMANAGE_MAIN.MANAGE_ID;
|
|
|
|
// int PLAN_ID_DownOut = mMANAGE_MAIN.PLAN_ID;
|
|
|
|
// string PLAN_TYPE_CODE_DownOut = mMANAGE_MAIN.PLAN_TYPE_CODE;
|
|
|
|
// mMANAGE_MAIN.STOCK_BARCODE = string.Empty;
|
|
|
|
// this._P_MANAGE_MAIN.Update(mMANAGE_MAIN);
|
|
|
|
// #endregion
|
|
|
|
// #region 下达【实盘下架】任务,直接报完成
|
|
|
|
// #region MANAGE_MAIN
|
|
|
|
// //克隆任务信息,生成【下架】任务
|
|
// Model.MANAGE_MAIN mMANAGE_MAIN_Down = mMANAGE_MAIN;
|
|
|
|
// mMANAGE_MAIN_Down.STOCK_BARCODE = STOCK_BARCODE;
|
|
|
|
// mMANAGE_MAIN_Down.MANAGE_STATUS = Enum.MANAGE_STATUS.Waiting.ToString();
|
|
|
|
// mMANAGE_MAIN_Down.MANAGE_TYPE_CODE = Enum.MANAGE_TYPE.ManageDown.ToString();
|
|
|
|
// mMANAGE_MAIN_Down.PLAN_TYPE_CODE = string.Empty;
|
|
|
|
// mMANAGE_MAIN_Down.PLAN_ID = 0;
|
|
|
|
// #endregion
|
|
|
|
// #region MANAGE_LIST
|
|
|
|
// List<Model.MANAGE_LIST> lsMANAGE_LIST = new List<Model.MANAGE_LIST>();
|
|
|
|
// foreach (Model.STORAGE_LIST mSTORAGE_LIST in _P_STORAGE_LIST.GetListStorageID(mSTORAGE_MAIN.STORAGE_ID))
|
|
// {
|
|
// Model.MANAGE_LIST mMANAGE_LIST = new Model.MANAGE_LIST();
|
|
|
|
// mMANAGE_LIST.GOODS_ID = mSTORAGE_LIST.GOODS_ID;
|
|
// bResult = this._S_GoodsService.GoodsPropertySetValue(mMANAGE_LIST.GOODS_ID, mMANAGE_LIST, mSTORAGE_LIST, out sResult);
|
|
// if (!bResult)
|
|
// {
|
|
// return bResult;
|
|
// }
|
|
// mMANAGE_LIST.MANAGE_LIST_QUANTITY = mSTORAGE_LIST.STORAGE_LIST_QUANTITY;
|
|
// mMANAGE_LIST.STORAGE_LIST_ID = mSTORAGE_LIST.STORAGE_LIST_ID;
|
|
// mMANAGE_LIST.PLAN_LIST_ID = 0;
|
|
// mMANAGE_LIST.MANAGE_LIST_REMARK = mSTORAGE_LIST.STORAGE_LIST_REMARK;
|
|
// lsMANAGE_LIST.Add(mMANAGE_LIST);
|
|
// }
|
|
|
|
// #endregion
|
|
|
|
// bResult = new ManageDown().ManageCreate(mMANAGE_MAIN_Down, lsMANAGE_LIST, false, false, out sResult);
|
|
|
|
// #endregion
|
|
|
|
// #region 任务类型更新为【出库】,关联计划,等待确认
|
|
|
|
// mMANAGE_MAIN.MANAGE_ID = MANAGE_ID_DownOut;
|
|
|
|
// mMANAGE_MAIN.PLAN_ID = PLAN_ID_DownOut;
|
|
|
|
// mMANAGE_MAIN.PLAN_TYPE_CODE = PLAN_TYPE_CODE_DownOut;
|
|
|
|
// mMANAGE_MAIN.STOCK_BARCODE = STOCK_BARCODE;
|
|
|
|
// mMANAGE_MAIN.MANAGE_TYPE_CODE = Enum.MANAGE_TYPE.ManageOut.ToString();
|
|
|
|
// //状态-等待确认
|
|
// mMANAGE_MAIN.MANAGE_STATUS = Enum.MANAGE_STATUS.WaitConfirm.ToString();
|
|
|
|
// //下架站台对应的暂存区作为出库的起始和终止位置
|
|
// mMANAGE_MAIN.START_CELL_ID = mEND_WH_CELL.CELL_TYPE.Equals(SiaSun.LMS.Enum.CELL_TYPE.Station.ToString()) ? 11199 : mEND_WH_CELL.CELL_ID;
|
|
// mMANAGE_MAIN.END_CELL_ID = mMANAGE_MAIN.START_CELL_ID;
|
|
|
|
// this._P_MANAGE_MAIN.Update(mMANAGE_MAIN);
|
|
|
|
// #endregion
|
|
// }
|
|
// catch (Exception ex)
|
|
// {
|
|
// bResult = false;
|
|
|
|
// sResult = ex.Message;
|
|
|
|
// this._log.Fatal(string.Format("调用方法{0}发生异常。", MethodBase.GetCurrentMethod().Name), ex);
|
|
// }
|
|
// finally
|
|
// {
|
|
// if (bResult)
|
|
// {
|
|
// this._P_Base_House.CommitTransaction(bTrans);
|
|
// }
|
|
// else
|
|
// {
|
|
// this._P_Base_House.RollBackTransaction(bTrans);
|
|
// }
|
|
// }
|
|
|
|
// return bResult;
|
|
//}
|
|
|
|
|
|
}
|
|
}
|