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;
|
||
}
|
||
}
|
||
}
|
||
}
|