AHTC/WebService/CommonClassLib/StaticClass.cs

285 lines
13 KiB
C#
Raw Permalink Normal View History

2025-05-19 09:22:33 +08:00
//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;
}
}
}
}