285 lines
13 KiB
C#
285 lines
13 KiB
C#
|
//using DBFactory;
|
|||
|
using log4net;
|
|||
|
using Microsoft.VisualBasic;
|
|||
|
using RGD.DBUtility;
|
|||
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Data;
|
|||
|
using System.Linq;
|
|||
|
using System.Reflection;
|
|||
|
using System.Text;
|
|||
|
|
|||
|
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4Net.config", Watch = true)]
|
|||
|
namespace CommonClassLib
|
|||
|
{
|
|||
|
public class StaticClass
|
|||
|
{
|
|||
|
public static ILog _log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
|||
|
|
|||
|
public static string GetWarehouseIndex()
|
|||
|
{
|
|||
|
DataView dv;
|
|||
|
try
|
|||
|
{
|
|||
|
dv = DbHelperSQL.Query("select F_WarehouseIndex from T_Warehouse").Tables[0].DefaultView;
|
|||
|
if (dv.Count > 0)
|
|||
|
{
|
|||
|
|
|||
|
return dv[0]["F_WarehouseIndex"].ToString();
|
|||
|
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return "1";
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
throw ex;
|
|||
|
}
|
|||
|
finally
|
|||
|
{
|
|||
|
dv = null;
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
//public static bool CreateMove(string TASK_NO, string CONTROL_TASK_TYPE, string START_DEVICE, string END_DEVICE, string STOCK_BARCODE,string BOX_LABLE, out string sResult)
|
|||
|
//{
|
|||
|
// return CreateMove(TASK_NO, CONTROL_TASK_TYPE, START_DEVICE, END_DEVICE, STOCK_BARCODE, 0, "", false, false, out sResult);
|
|||
|
//}
|
|||
|
public static bool CreateMove(string TASK_NO, string CONTROL_TASK_TYPE, string START_DEVICE, string END_DEVICE, string STOCK_BARCODE, out string sResult)
|
|||
|
{
|
|||
|
//return CreateMove(TASK_NO, CONTROL_TASK_TYPE, START_DEVICE, END_DEVICE, STOCK_BARCODE, 0, "", false,false, false, out sResult);
|
|||
|
return CreateMove(TASK_NO, CONTROL_TASK_TYPE, START_DEVICE, END_DEVICE, STOCK_BARCODE, "", 0, "", false, false, false, 1, out sResult);
|
|||
|
}
|
|||
|
//用来拆盘送出
|
|||
|
public static bool CreateMove(string TASK_NO, string CONTROL_TASK_TYPE, string START_DEVICE, string END_DEVICE, string STOCK_BARCODE, bool needback, out string sResult)
|
|||
|
{
|
|||
|
|
|||
|
return CreateMove(TASK_NO, CONTROL_TASK_TYPE, START_DEVICE, END_DEVICE, STOCK_BARCODE, "", 0, "", true, false, false, 1, out sResult);
|
|||
|
}
|
|||
|
public static bool CreateMove(string TASK_NO, string CONTROL_TASK_TYPE, string START_DEVICE, string END_DEVICE, string STOCK_BARCODE,string BOX_LABLE, out string sResult)
|
|||
|
{
|
|||
|
//return CreateMove(TASK_NO, CONTROL_TASK_TYPE, START_DEVICE, END_DEVICE, STOCK_BARCODE, 0, "", false, false, false, out sResult);
|
|||
|
return CreateMove(TASK_NO, CONTROL_TASK_TYPE, START_DEVICE, END_DEVICE, STOCK_BARCODE, BOX_LABLE, 0, "", false, false, false, 1, out sResult);
|
|||
|
}
|
|||
|
//public static bool CreateMove(string TASK_NO, string CONTROL_TASK_TYPE, string START_DEVICE, string END_DEVICE, string STOCK_BARCODE,int TASK_LEVEL, out string sResult)
|
|||
|
//{
|
|||
|
// return CreateMove(TASK_NO, CONTROL_TASK_TYPE, START_DEVICE, END_DEVICE, STOCK_BARCODE,"", 0, "", false, false,false,TASK_LEVEL, out sResult);
|
|||
|
//}
|
|||
|
//public static bool CreateMove(string TASK_NO, string CONTROL_TASK_TYPE, string START_DEVICE, string END_DEVICE, string STOCK_BARCODE,bool IS_LASTBOX,out string sResult)
|
|||
|
//{
|
|||
|
// return CreateMove(TASK_NO, CONTROL_TASK_TYPE, START_DEVICE, END_DEVICE, STOCK_BARCODE, 0, "", false, IS_LASTBOX, out sResult);
|
|||
|
//}
|
|||
|
//public static bool CreateMove(string TASK_NO, string CONTROL_TASK_TYPE, string START_DEVICE, string END_DEVICE, string STOCK_BARCODE, int PICKUP_LOCATION, string PICKUP_TYPE, bool IS_PICKUP, bool IS_LASTBOX, out string sResult)
|
|||
|
//{
|
|||
|
// return CreateMove(TASK_NO, CONTROL_TASK_TYPE, START_DEVICE, END_DEVICE, STOCK_BARCODE,"", PICKUP_LOCATION, PICKUP_TYPE, IS_PICKUP,false, IS_LASTBOX, 1, out sResult);
|
|||
|
//}
|
|||
|
public static bool CreateMove(string TASK_NO, string CONTROL_TASK_TYPE, string START_DEVICE, string END_DEVICE, string STOCK_BARCODE, int PICKUP_LOCATION, string PICKUP_TYPE, bool IS_PICKUP, bool IS_OUT, bool IS_LASTBOX, out string sResult)
|
|||
|
{
|
|||
|
return CreateMove(TASK_NO, CONTROL_TASK_TYPE, START_DEVICE, END_DEVICE, STOCK_BARCODE,"", PICKUP_LOCATION, PICKUP_TYPE, IS_PICKUP, IS_OUT, IS_LASTBOX, 1, out sResult);
|
|||
|
}
|
|||
|
public static bool CreateMove(string TASK_NO, string CONTROL_TASK_TYPE, string START_DEVICE, string END_DEVICE, string STOCK_BARCODE,string BOX_LABLE, int PICKUP_LOCATION, string PICKUP_TYPE, bool IS_PICKUP,bool IS_OUT, bool IS_LASTBOX,int TASK_LEVEL, out string sResult)
|
|||
|
{
|
|||
|
bool bResult = true;
|
|||
|
sResult = "";
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
//等待执行的;已批复的申请改道的
|
|||
|
|
|||
|
string UseAwayFork = "-";
|
|||
|
if (STOCK_BARCODE != "")
|
|||
|
{
|
|||
|
DataView dvt = DbHelperSQL.Query("select * from T_Manage_Task where FPALLETBARCODE = '" + STOCK_BARCODE + "'").Tables[0].DefaultView;//dzf20120822
|
|||
|
if (dvt.Count > 0)
|
|||
|
{
|
|||
|
sResult = "此托盘任务已存在。";
|
|||
|
return false;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
DataView dvl;
|
|||
|
|
|||
|
object obj = null;
|
|||
|
string FSTARTCELL = ""; string FENDCELL = ""; char[] cc = new char[1] { '-' };
|
|||
|
int FSTARTDEVICE = 0; int FENDDEVICE = 0;
|
|||
|
string flaneway = "-1";
|
|||
|
int stackno = -1;
|
|||
|
int FStartCol = 0, FStartLayer = 0, FEndCol = 0, FEndLayer = 0;
|
|||
|
|
|||
|
|
|||
|
if (Information.IsNumeric(START_DEVICE) == false)
|
|||
|
{
|
|||
|
dvl = DbHelperSQL.Query("SELECT FLaneWay,FStack FROM ST_CELL where FCELLCODE='" + START_DEVICE + "'").Tables[0].DefaultView;
|
|||
|
if (dvl.Count > 0)
|
|||
|
{
|
|||
|
flaneway = dvl[0]["FLaneWay"].ToString();
|
|||
|
stackno = Convert.ToInt32(dvl[0]["FStack"]);//20101028
|
|||
|
FStartCol = Convert.ToInt32(START_DEVICE.Substring(3, 2));
|
|||
|
FStartLayer = Convert.ToInt32(START_DEVICE.Substring(6, 2));
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
if (Information.IsNumeric(END_DEVICE) == false)//dzf理解 终点设备不是数字的情况
|
|||
|
{
|
|||
|
//20101028
|
|||
|
dvl = DbHelperSQL.Query("SELECT FLaneWay,FStack FROM ST_CELL where FCELLCODE='" + END_DEVICE + "'").Tables[0].DefaultView;
|
|||
|
if (dvl.Count > 0)
|
|||
|
{
|
|||
|
flaneway = dvl[0]["FLaneWay"].ToString();
|
|||
|
stackno = Convert.ToInt32(dvl[0]["FStack"]);//20101028
|
|||
|
FEndCol = Convert.ToInt32(END_DEVICE.Substring(3, 2));
|
|||
|
FEndLayer = Convert.ToInt32(END_DEVICE.Substring(6, 2));
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
int AutoManageIdx = GetAutoManageIdx();
|
|||
|
|
|||
|
if (Information.IsNumeric(START_DEVICE) == true)
|
|||
|
{
|
|||
|
FSTARTDEVICE = Convert.ToInt32(START_DEVICE);
|
|||
|
FSTARTCELL = "-";
|
|||
|
}
|
|||
|
else
|
|||
|
{//货位编码
|
|||
|
obj = DbHelperSQL.GetSingle("SELECT FLaneWay FROM ST_CELL where FCELLCODE='" + START_DEVICE + "'");
|
|||
|
if (obj != null)
|
|||
|
{
|
|||
|
FSTARTDEVICE = Convert.ToInt32(obj);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
sResult = "获取任务时:没找到调度任务索引:" + START_DEVICE + ",的起点位置!";
|
|||
|
return false;
|
|||
|
}
|
|||
|
FSTARTCELL = START_DEVICE;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
if (Information.IsNumeric(END_DEVICE) == true)//dzf理解 终点设备是数字的情况
|
|||
|
{
|
|||
|
FENDDEVICE = Convert.ToInt32(END_DEVICE);
|
|||
|
FENDCELL = "-";
|
|||
|
}
|
|||
|
else if (END_DEVICE == "")
|
|||
|
{ }
|
|||
|
else //dzf理解 终点设备是货位的情况,获得终点设备号FENDDEVICE是巷道
|
|||
|
{//货位编码
|
|||
|
obj = DbHelperSQL.GetSingle("SELECT FLaneWay FROM ST_CELL where FCELLCODE='" + END_DEVICE + "'");
|
|||
|
if (obj != null)
|
|||
|
{
|
|||
|
FENDDEVICE = Convert.ToInt32(obj);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
sResult = "获取任务时:没找到调度任务索引:" + END_DEVICE + ",的终点位置!";
|
|||
|
return false;
|
|||
|
}
|
|||
|
FENDCELL = END_DEVICE;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
//20091014
|
|||
|
int FTASKLEVEL = 0;//空托盘组出库的优先级应该最大
|
|||
|
|
|||
|
DataView dv = DbHelperSQL.Query("select F_EQUIP_TYPE from t_warehouse").Tables[0].DefaultView;
|
|||
|
|
|||
|
string sendout_type = "1";
|
|||
|
|
|||
|
if (dv[0][0].ToString()=="03")
|
|||
|
{
|
|||
|
sendout_type = "2";
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
string sql = "INSERT INTO T_Manage_Task" +
|
|||
|
"(FID, F_ManageTaskKindIndex,FMANAGEID,F_RELATIVECONTORLID,FPALLETBARCODE,FCONTROLTASKTYPE, FTASKLEVEL, FISRETURN," +
|
|||
|
"FSTARTWAREHOUSE, FSTARTCELL, FSTARTDEVICE,FENDWAREHOUSE,FENDCELL,FENDDEVICE, " +
|
|||
|
"FSTATUS,FIntoStepOK,FREMARK,FLANEWAY,FSTACK,FUseAwayFork,SENDOUT_TYPE,FStartCol,FStartLayer,FEndCol,FEndLayer,PICKUP_LOCATION,PICKUP_TYPE,IS_PICKUP,IS_OUT,BOX_LABLE,LAST_BOX_REMARK) " +
|
|||
|
"VALUES (" + AutoManageIdx + ",1,'" + TASK_NO + "',0,'" + STOCK_BARCODE +
|
|||
|
"','" + CONTROL_TASK_TYPE + "'," + FTASKLEVEL + ",'"
|
|||
|
+ 0 + "','1','" + FSTARTCELL + "','"
|
|||
|
+ FSTARTDEVICE + "','1','" + FENDCELL + "','" + FENDDEVICE + "',"
|
|||
|
+ "'0','" + 0 + "',''," + flaneway + "," +
|
|||
|
stackno + ",'" + UseAwayFork + "'," + sendout_type + "," + FStartCol + "," + FStartLayer + "," + FEndCol + "," + FEndLayer + "," + PICKUP_LOCATION + "," + (PICKUP_TYPE == "" ? "0" : PICKUP_TYPE) + "," + (IS_PICKUP ? 1 : 0) + "," + (IS_OUT ? 1 : 0) + ",'" + BOX_LABLE + "',"+(IS_LASTBOX?1:0) +")";//20110318
|
|||
|
|
|||
|
int rc = DbHelperSQL.ExecuteSql(sql);
|
|||
|
if (rc == 0)
|
|||
|
{
|
|||
|
sResult = "写入失败";
|
|||
|
return false;
|
|||
|
}
|
|||
|
if (IS_LASTBOX)
|
|||
|
{
|
|||
|
DbHelperSQL.Query("update t_warehouse set F_LASTBOX_REACH_FLAG=1");
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
|
|||
|
sResult = ex.Message;
|
|||
|
bResult= false;
|
|||
|
}
|
|||
|
|
|||
|
if(!bResult)
|
|||
|
_log.Debug(sResult);
|
|||
|
|
|||
|
return bResult;
|
|||
|
}
|
|||
|
private static int GetAutoManageIdx()
|
|||
|
{
|
|||
|
DataSet ds;
|
|||
|
try
|
|||
|
{
|
|||
|
int maxIdx = 1;
|
|||
|
ds = DbHelperSQL.Query("SELECT F_ManageTaskIndex FROM T_Base_Manage_Task_Index_Auto_Task");
|
|||
|
if (ds.Tables[0].DefaultView.Count > 0)
|
|||
|
{
|
|||
|
if ((Convert.ToInt32(ds.Tables[0].DefaultView[0]["F_ManageTaskIndex"]) + 1) >= 9998)
|
|||
|
{
|
|||
|
maxIdx = 1;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
maxIdx = (Convert.ToInt32(ds.Tables[0].DefaultView[0]["F_ManageTaskIndex"]) + 1);
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
maxIdx = 1;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
DataView dv = DbHelperSQL.Query("select F_ManageTaskIndex from T_Base_Manage_Task_Index_Auto_Task").Tables[0].DefaultView;
|
|||
|
if (dv.Count > 0)
|
|||
|
{
|
|||
|
if (maxIdx > Convert.ToInt32(dv[0]["F_ManageTaskIndex"])|| maxIdx==1)
|
|||
|
{
|
|||
|
DbHelperSQL.Query("UPDATE T_Base_Manage_Task_Index_Auto_Task SET F_ManageTaskIndex =" + maxIdx);
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
DbHelperSQL.Query("INSERT INTO T_Base_Manage_Task_Index_Auto_Task (F_ManageTaskIndex)VALUES (" + maxIdx + ")");
|
|||
|
}
|
|||
|
|
|||
|
return maxIdx;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
throw ex;
|
|||
|
}
|
|||
|
finally
|
|||
|
{
|
|||
|
ds = null;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|