AHTC/WebService/CommonClassLib/StaticClass.cs
2025-05-19 09:22:33 +08:00

285 lines
13 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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