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.
321 lines
12 KiB
321 lines
12 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Data;
|
|
|
|
namespace SiaSun.LMS.Implement
|
|
{
|
|
public class ControlBase:ManageBase
|
|
{
|
|
|
|
public static string sendLedMes = string.Empty;
|
|
|
|
/// <summary>作业-动作
|
|
/// 作业-动作
|
|
/// </summary>
|
|
/// <param name="WAREHOUSE">库房编码</param>
|
|
/// <param name="sResult"></param>
|
|
/// <returns></returns>
|
|
public void ControlTranslate(out string sResult)
|
|
{
|
|
sResult = string.Empty;
|
|
|
|
IList<SiaSun.LMS.Model.FLOW_PARA> lsFLOW_PARA = this._S_FlowService.FlowGetParameters("FLOW_CONTROL");
|
|
|
|
string[] aFLOW_PARA = new string[lsFLOW_PARA.Count];
|
|
|
|
SiaSun.LMS.Model.MANAGE_ACTION_EXCUTE mt = new SiaSun.LMS.Model.MANAGE_ACTION_EXCUTE();
|
|
|
|
DataTable dt = this.GetList(string.Format("SELECT * FROM V_FLOW_CONTROL_ACTION "));
|
|
|
|
foreach (DataRow dr in dt.Rows)
|
|
{
|
|
int i = 0;
|
|
|
|
foreach (SiaSun.LMS.Model.FLOW_PARA mFLOW_PARA in lsFLOW_PARA)
|
|
{
|
|
aFLOW_PARA[i] = dr[mFLOW_PARA.FLOW_PARA_CODE].ToString();
|
|
|
|
i++;
|
|
}
|
|
|
|
mt.MANAGE_ID = Convert.ToInt32(dr["MANAGE_ID"]);
|
|
|
|
mt.ACTION_EVENT = dr["FLOW_ACTION_EVENT"].ToString();
|
|
|
|
mt.ACTION_EVENT = string.Format(mt.ACTION_EVENT, aFLOW_PARA);
|
|
|
|
bool bResult = this._S_FlowService.ManageEventExecute(mt, out sResult);
|
|
|
|
SiaSun.LMS.Model.IO_CONTROL mIO_CONTROL = this._P_IO_CONTROL.GetModel(Convert.ToInt32(dr["CONTROL_ID"]));
|
|
|
|
if (!bResult)
|
|
{
|
|
|
|
SiaSun.LMS.Model.MANAGE_MAIN mMANAGE_MAIN = this._P_MANAGE_MAIN.GetModel(mt.MANAGE_ID);
|
|
|
|
mMANAGE_MAIN.MANAGE_STATUS = Enum.MANAGE_STATUS.Error.ToString();
|
|
|
|
mMANAGE_MAIN.MANAGE_REMARK = sResult + string.Format("【控制任务状态-{0}】", mIO_CONTROL.CONTROL_STATUS.ToString());
|
|
|
|
this._P_MANAGE_MAIN.Update(mMANAGE_MAIN);
|
|
}
|
|
|
|
if ( bResult && null != mIO_CONTROL)
|
|
{
|
|
mIO_CONTROL.PRE_CONTROL_STATUS = Convert.ToString(dr["CONTROL_STATUS"]);
|
|
|
|
this._P_IO_CONTROL.Update(mIO_CONTROL);
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <summary>任务-申请
|
|
/// 任务-申请
|
|
/// </summary>
|
|
/// <param name="CONTROL_APPLY_ID">申请编号</param>
|
|
/// <param name="MANAGE_ID">任务编号</param>
|
|
/// <param name="sResult">返回结果</param>
|
|
/// <returns></returns>
|
|
public bool ControlApplyTask( out string sResult)
|
|
{
|
|
bool bResult = true;
|
|
|
|
sResult = string.Empty;
|
|
|
|
|
|
|
|
string mesout = string.Empty;
|
|
|
|
IList<SiaSun.LMS.Model.IO_CONTROL_APPLY> lsIO_CONTROL_APPLY = this._P_IO_CONTROL_APPLY.GetList(0);
|
|
|
|
foreach (SiaSun.LMS.Model.IO_CONTROL_APPLY mIO_CONTROL_APPLY in lsIO_CONTROL_APPLY)
|
|
{
|
|
|
|
try
|
|
{
|
|
|
|
SiaSun.LMS.Model.WH_CELL mSTART_CELL = this._P_WH_CELL.GetModel(mIO_CONTROL_APPLY.DEVICE_CODE.TrimEnd());
|
|
|
|
if (null == mSTART_CELL)
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = "托盘条码->" + mIO_CONTROL_APPLY.STOCK_BARCODE.TrimEnd() + "申请入库未提供起始站台";
|
|
|
|
this.CreateApplyExceptionTask(mIO_CONTROL_APPLY, "12011",sResult);
|
|
|
|
return bResult;
|
|
}
|
|
|
|
if (mIO_CONTROL_APPLY.STOCK_BARCODE.TrimEnd() == string.Empty|| mIO_CONTROL_APPLY.STOCK_BARCODE.TrimEnd() =="111111")
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = "申请入库未提供托盘条码";
|
|
|
|
this._S_LEDService.AddLedLineTxt("12011", 0, "未扫描到托盘条码 " + mIO_CONTROL_APPLY.CONTROL_APPLY_ID.ToString(), out mesout);
|
|
|
|
sendLedMes = "未扫描到托盘条码 " + mIO_CONTROL_APPLY.CONTROL_APPLY_ID.ToString() + sendLedMes;
|
|
|
|
this.CreateApplyExceptionTask(mIO_CONTROL_APPLY, "12011",sResult);
|
|
|
|
return bResult;
|
|
}
|
|
|
|
switch (mIO_CONTROL_APPLY.CONTROL_APPLY_TYPE.TrimEnd())
|
|
{
|
|
case "1": //申请入库
|
|
SiaSun.LMS.Model.MANAGE_MAIN mMANAGE_MAIN = this._P_MANAGE_MAIN.GetModelStockBarcode("%" + mIO_CONTROL_APPLY.STOCK_BARCODE.TrimEnd() + "%");
|
|
|
|
if (mMANAGE_MAIN != null)
|
|
{
|
|
mMANAGE_MAIN.CELL_MODEL = mIO_CONTROL_APPLY.CONTROL_APPLY_REMARK.TrimEnd();
|
|
|
|
this._P_MANAGE_MAIN.Update(mMANAGE_MAIN);
|
|
|
|
bResult = this.ManageDownLoad(mMANAGE_MAIN.MANAGE_ID, mIO_CONTROL_APPLY.DEVICE_CODE.TrimEnd(), true, out sResult);
|
|
}
|
|
|
|
else
|
|
{
|
|
//上架
|
|
if (this._S_StorageService.StorageCheck(mIO_CONTROL_APPLY.STOCK_BARCODE.TrimEnd(), Enum.AREA_TYPE.XuNiKu.ToString(), out sResult))
|
|
{
|
|
|
|
mMANAGE_MAIN = new Model.MANAGE_MAIN();
|
|
|
|
mMANAGE_MAIN.MANAGE_TYPE_CODE = "ManageUp";
|
|
|
|
mMANAGE_MAIN.STOCK_BARCODE = mIO_CONTROL_APPLY.STOCK_BARCODE.TrimEnd();
|
|
|
|
mMANAGE_MAIN.CELL_MODEL = mIO_CONTROL_APPLY.CONTROL_APPLY_REMARK.TrimEnd();
|
|
|
|
mMANAGE_MAIN.START_CELL_ID = mSTART_CELL.CELL_ID;
|
|
|
|
mMANAGE_MAIN.END_CELL_ID = 0;
|
|
|
|
mMANAGE_MAIN.MANAGE_OPERATOR = "扫码申请";
|
|
|
|
mMANAGE_MAIN.MANAGE_BEGIN_TIME = SiaSun.LMS.Common.StringUtil.GetDateTime();
|
|
|
|
mMANAGE_MAIN.MANAGE_STATUS = SiaSun.LMS.Enum.MANAGE_STATUS.WaitingSend.ToString();
|
|
|
|
mMANAGE_MAIN.MANAGE_LEVEL = string.Empty;
|
|
|
|
mMANAGE_MAIN.MANAGE_REMARK = string.Empty;
|
|
|
|
bResult = new ManageUp().ManageCreate(mMANAGE_MAIN, true, true, false, out sResult);
|
|
}
|
|
else//空托盘入库
|
|
{
|
|
//mMANAGE_MAIN = new Model.MANAGE_MAIN();
|
|
|
|
//mMANAGE_MAIN.MANAGE_TYPE_CODE = "StockIn";
|
|
|
|
//mMANAGE_MAIN.STOCK_BARCODE = mIO_CONTROL_APPLY.STOCK_BARCODE.TrimEnd();
|
|
|
|
//mMANAGE_MAIN.CELL_MODEL = mIO_CONTROL_APPLY.CONTROL_APPLY_REMARK.TrimEnd();
|
|
|
|
//mMANAGE_MAIN.START_CELL_ID = mSTART_CELL.CELL_ID;
|
|
|
|
//mMANAGE_MAIN.END_CELL_ID = 0;
|
|
|
|
//mMANAGE_MAIN.MANAGE_OPERATOR = "扫码申请";
|
|
|
|
//mMANAGE_MAIN.MANAGE_BEGIN_TIME = SiaSun.LMS.Common.StringUtil.GetDateTime();
|
|
|
|
//mMANAGE_MAIN.MANAGE_STATUS = SiaSun.LMS.Enum.MANAGE_STATUS.WaitingSend.ToString();
|
|
|
|
//mMANAGE_MAIN.MANAGE_LEVEL = string.Empty;
|
|
|
|
//mMANAGE_MAIN.MANAGE_REMARK = string.Empty;
|
|
|
|
//List<Model.MANAGE_LIST> listMANAGE_LIST = new List<Model.MANAGE_LIST>();
|
|
|
|
//Model.MANAGE_LIST mMANAGE_LIST = new Model.MANAGE_LIST();
|
|
|
|
//if (Convert.ToInt32(mMANAGE_MAIN.STOCK_BARCODE) < 2200)
|
|
// mMANAGE_LIST.GOODS_ID = 1;
|
|
//else
|
|
// mMANAGE_LIST.GOODS_ID = -1;
|
|
|
|
//mMANAGE_LIST.MANAGE_LIST_QUANTITY = 1;
|
|
|
|
//listMANAGE_LIST.Add(mMANAGE_LIST);
|
|
|
|
//bResult = new ManageIn().ManageCreate(mMANAGE_MAIN, listMANAGE_LIST, true, true, false, true, out sResult);
|
|
bResult = false;
|
|
|
|
sResult = "未找到托盘信息";
|
|
|
|
this._S_LEDService.AddLedLineTxt("12011", 0, "未找到托盘信息 " + mIO_CONTROL_APPLY.CONTROL_APPLY_ID.ToString(), out mesout);
|
|
|
|
sendLedMes = "未找到托盘信息 " + mIO_CONTROL_APPLY.CONTROL_APPLY_ID.ToString() + sendLedMes;
|
|
|
|
this.CreateApplyExceptionTask(mIO_CONTROL_APPLY, "12011", sResult);
|
|
|
|
return bResult;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case "2": //申请改道 主要用于重复入库异常
|
|
break;
|
|
}
|
|
|
|
if (!bResult)
|
|
{
|
|
// 如果有异常口,下达到异常口的控制任务
|
|
|
|
|
|
this.CreateApplyExceptionTask(mIO_CONTROL_APPLY, "12011",sResult);
|
|
|
|
continue;
|
|
}
|
|
else
|
|
{
|
|
if( this._S_LEDService.AddLedLineTxt("12011", 0, sendLedMes, out mesout))
|
|
sendLedMes = string.Empty;
|
|
|
|
this._P_IO_CONTROL_APPLY.Delete(mIO_CONTROL_APPLY.CONTROL_APPLY_ID);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
return bResult;
|
|
}
|
|
|
|
|
|
|
|
|
|
void CreateApplyExceptionTask(Model.IO_CONTROL_APPLY mIO_CONTROL_APPLY,string ExceptionStation,string ExceptionMessage)
|
|
{
|
|
try
|
|
{
|
|
|
|
this._P_Base_House.BeginTransaction();
|
|
|
|
|
|
Model.IO_CONTROL_APPLY_HIS mIO_CONTROL_APPLY_HIS = new Model.IO_CONTROL_APPLY_HIS();
|
|
|
|
mIO_CONTROL_APPLY_HIS.CONTROL_ID = mIO_CONTROL_APPLY.CONTROL_ID;
|
|
mIO_CONTROL_APPLY_HIS.CONTROL_APPLY_TYPE = mIO_CONTROL_APPLY.CONTROL_APPLY_TYPE;
|
|
mIO_CONTROL_APPLY_HIS.WAREHOUSE_CODE = mIO_CONTROL_APPLY.WAREHOUSE_CODE;
|
|
|
|
mIO_CONTROL_APPLY_HIS.DEVICE_CODE = mIO_CONTROL_APPLY.DEVICE_CODE;
|
|
mIO_CONTROL_APPLY_HIS.STOCK_BARCODE = mIO_CONTROL_APPLY.STOCK_BARCODE;
|
|
|
|
mIO_CONTROL_APPLY_HIS.APPLY_TASK_STATUS = mIO_CONTROL_APPLY.APPLY_TASK_STATUS;
|
|
|
|
mIO_CONTROL_APPLY_HIS.CREATE_TIME = mIO_CONTROL_APPLY.CREATE_TIME;
|
|
mIO_CONTROL_APPLY_HIS.CONTROL_APPLY_REMARK = mIO_CONTROL_APPLY.CONTROL_APPLY_REMARK;
|
|
|
|
mIO_CONTROL_APPLY_HIS.MANAGE_ERROR_TEXT = ExceptionMessage;
|
|
|
|
this._P_IO_CONTROL_APPLY_HIS.Add(mIO_CONTROL_APPLY_HIS);
|
|
|
|
|
|
this._P_IO_CONTROL_APPLY.Delete(mIO_CONTROL_APPLY.CONTROL_APPLY_ID);
|
|
|
|
|
|
SiaSun.LMS.Model.IO_CONTROL mIO_CONTROL = new SiaSun.LMS.Model.IO_CONTROL();
|
|
mIO_CONTROL.RELATIVE_CONTROL_ID = -1;
|
|
mIO_CONTROL.MANAGE_ID = 0;
|
|
mIO_CONTROL.STOCK_BARCODE = mIO_CONTROL_APPLY.STOCK_BARCODE;
|
|
//mIO_CONTROL.CELL_GROUP = mEND_CELL.CELL_GROUP;
|
|
mIO_CONTROL.CONTROL_TASK_LEVEL = "0";
|
|
mIO_CONTROL.PRE_CONTROL_STATUS = string.Empty;
|
|
mIO_CONTROL.CONTROL_TASK_TYPE = 3;
|
|
mIO_CONTROL.START_DEVICE_CODE = mIO_CONTROL_APPLY.DEVICE_CODE;
|
|
mIO_CONTROL.END_DEVICE_CODE = ExceptionStation;
|
|
mIO_CONTROL.CONTROL_BEGIN_TIME = SiaSun.LMS.Common.StringUtil.GetDateTime();
|
|
|
|
//单叉状态25 双叉状态0 string.IsNullOrEmpty(mMANAGE_MAIN.MANAGE_FORK) || !mMANAGE_MAIN.MANAGE_FORK.Equals("1") ? 0 : 25;
|
|
mIO_CONTROL.CONTROL_STATUS = 0;
|
|
mIO_CONTROL.START_WAREHOUSE_CODE = "1";
|
|
mIO_CONTROL.END_WAREHOUSE_CODE = "1";
|
|
|
|
this._P_IO_CONTROL.Add(mIO_CONTROL);
|
|
|
|
this._P_Base_House.CommitTransaction();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
this._P_Base_House.RollBackTransaction();
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|