using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading;
|
using DevComponents.DotNetBar.Controls;
|
using System.Windows.Forms;
|
using System.Drawing;
|
//using com.force.json;
|
using System.Data;
|
using System.Data.SqlClient;
|
|
namespace WCS
|
{
|
/// <summary>
|
/// 回报处理线程
|
/// </summary>
|
class UpdateThread
|
{
|
#region 画面上同步显示控件
|
public ListViewEx frmdata;
|
delegate void SetTextCallback(string seq, string Errif, string arg_string);
|
#endregion
|
|
Thread trd = null;
|
|
public UpdateThread()
|
{
|
try
|
{
|
trd = new Thread(new ThreadStart(this.ThreadTask));
|
trd.IsBackground = true;
|
trd.Start();
|
}
|
catch (Exception em)
|
{
|
Common.WriteLogFile("WcsError", "UpdateThread/UpdateThread--回报线程启动出错:" + em.Message);
|
}
|
}
|
|
#region 通讯反馈同步显示
|
/// <summary>
|
/// 显示处理信息
|
/// </summary>
|
/// <param name="text"></param>
|
private void DisplayInfo(string seq, string Errif, string arg_string)
|
{
|
if (frmdata == null)
|
{
|
return;
|
}
|
if (frmdata.InvokeRequired)
|
{
|
try
|
{
|
SetTextCallback d = new SetTextCallback(DisplayInfo);
|
frmdata.Invoke(d, new object[] { seq, Errif, arg_string });
|
}
|
catch (Exception em)
|
{
|
Common.WriteLogFile("WcsError", "UpdateThread/DisplayInfo--同步回报信息失败:" + em.Message);
|
}
|
}
|
else
|
{
|
add_dw_log(seq, Errif, arg_string);
|
if (frmdata.Items.Count > 200)
|
{
|
frmdata.Items.Clear(); ;
|
}
|
}
|
|
}
|
|
/// <summary>
|
/// 添加ListView界面显示
|
/// </summary>
|
/// <param name="le">listview</param>
|
/// <param name="seq">需要</param>
|
/// <param name="Errif">异常信息</param>
|
/// <param name="arg_string">显示内容</param>
|
public void add_dw_log(string seq, string Errif, string arg_string)
|
{
|
try
|
{
|
ListViewItem lvi = new ListViewItem();
|
lvi.SubItems[0].Text = "【" + DateTime.Now.ToString() + "】" + seq + arg_string;
|
if (Errif == "N")
|
{
|
lvi.ForeColor = Color.Black;
|
}
|
else if (Errif == "E")
|
{
|
lvi.ForeColor = Color.Red;
|
}
|
else if (Errif == "P")
|
{
|
lvi.ForeColor = Color.Blue;
|
}
|
frmdata.Items.Add(lvi);
|
frmdata.EnsureVisible(frmdata.Items.Count - 1);
|
}
|
catch (Exception em)
|
{
|
ListViewItem lvi = new ListViewItem();
|
lvi.SubItems[0].Text = "【" + DateTime.Now.ToString() + "】" + seq + arg_string + "异常:" + em.Message;
|
frmdata.Items.Add(lvi);
|
Common.WriteLogFile("WcsError", "UpdateThread/add_dw_log--回报添加界面显示出错:" + em.Message);
|
}
|
}
|
#endregion
|
|
#region 业务处理
|
/// <summary>
|
/// 生成出库工作档
|
/// </summary>
|
public void ProcOutToWorkData(string seq)
|
{
|
string ls_locno = "";
|
string ls_error_memo = "", sql = "";
|
int li_wrkno = 0, li_io_type = 0, li_stnNo = 0, li_e_stnNo = 0;
|
DateTime ldt_date = System.DateTime.Now;
|
double d_outQty = 0, d_stkQty = 0;
|
int action = 0, prnstatus = 0;
|
|
DisplayInfo(seq, "N", " --处理出库通知档,生成出库工作档......");
|
|
try
|
{
|
//查找最早一条待出库库位
|
sql = "select top 1 vlpla from cust_wait_pakout where status<>'Y' and nltyp<>'A01' order by status,modi_time";
|
DataView dvLoc = Common.ExecAsrsSelect(sql);
|
if (dvLoc.Count <= 0)
|
{
|
return;
|
}
|
foreach (DataRowView drow in dvLoc)
|
{
|
ls_locno = drow[0].ToString();
|
}
|
if (ls_locno == "")
|
{
|
return;
|
}
|
|
//查询库位号是否在库状态,并查询条码号
|
sql = "select loc_no,barcode from asr_loc_mast where loc_no='" + ls_locno + "' and loc_sts='F'";
|
string barcode = "";
|
DataView dv = Common.ExecAsrsSelect(sql);
|
if (dv.Count <= 0)
|
{
|
ls_error_memo = " " + seq + ".1 库位" + ls_locno + "不存在或非在库状态,请检查";
|
DisplayInfo("", "E", ls_error_memo);
|
goto re;
|
}
|
else
|
{
|
foreach (DataRowView drow in dv)
|
{
|
barcode = drow[1].ToString();
|
}
|
}
|
|
//根据库位号查找该库位所有出库资料
|
sql = "select lgnum,tanum,tapos,matnr,maktx,werks,vsolm,meins,bname ";
|
sql += " from cust_wait_pakout where status<>'Y' and nltyp<>'A01' and vlpla='" + ls_locno + "' order by status,modi_time";
|
dv = Common.ExecAsrsSelect(sql);
|
if (dv.Count <= 0)
|
{
|
return;
|
}
|
li_wrkno = Common.GetWrkno(0);
|
string sqlDetl = "", sqlWaitIn = "";
|
foreach (DataRowView drow in dv)
|
{
|
string lgnum = drow[0].ToString();
|
string tanum = drow[1].ToString();
|
string tapos = drow[2].ToString();
|
string matnr = drow[3].ToString();
|
string maktx = drow[4].ToString();
|
string werks = drow[5].ToString();
|
string vsolm = drow[6].ToString();
|
string meins = drow[7].ToString();
|
string bname = drow[8].ToString();
|
sqlDetl += " insert into asr_wrk_detl(wrk_no,io_time,lgnum,tbnum,tbpos,matnr,maktx,werks,anfme,altme,bname,zpallet) ";
|
sqlDetl += " values(" + li_wrkno + ",'" + ldt_date + "','" + lgnum + "'," + tanum + "," + tapos + ", ";
|
sqlDetl += " '" + matnr + "','" + maktx + "','" + werks + "'," + vsolm + ",'" + meins + "','" + bname + "','" + barcode + "');";
|
sqlWaitIn += " update cust_wait_pakout set status='Y' where lgnum='" + lgnum + "' and tanum=" + tanum + " and tapos=" + tapos + " and vlpla=" + ls_locno + ";";
|
d_outQty += double.Parse(vsolm);
|
}
|
DisplayInfo("", "P", " " + seq + ".2 正在处理待出库资料!库位:" + ls_locno);
|
|
//查询库位号对应库存明细总数量
|
sql = "select sum(anfme) from asr_loc_detl where loc_no='" + ls_locno + "' ";
|
dv = Common.ExecAsrsSelect(sql);
|
if (dv.Count <= 0)
|
{
|
ls_error_memo = " " + seq + ".3 库位" + ls_locno + "没有库存明细,请检查";
|
DisplayInfo("", "E", ls_error_memo);
|
goto re;
|
}
|
else
|
{
|
foreach (DataRowView drow in dv)
|
{
|
d_stkQty += double.Parse(drow[0].ToString());
|
}
|
}
|
|
int li_crnrow = int.Parse(ls_locno.Substring(0, 2));
|
int li_crnno = (li_crnrow + 1) / 2;
|
string new_loc_sts = "";
|
if (d_outQty < d_stkQty)
|
{
|
li_io_type = 103;
|
new_loc_sts = "P";
|
li_e_stnNo = 4;
|
li_stnNo = Common.getIoStaNo(li_io_type, li_crnno, li_e_stnNo);
|
action = 2; //单独打印
|
//prnstatus = 0; //默认等待,拣料站更新
|
}
|
else if (d_outQty == d_stkQty)
|
{
|
li_io_type = 101;
|
new_loc_sts = "R";
|
li_e_stnNo = 13;
|
li_stnNo = Common.getIoStaNo(li_io_type, li_crnno, li_e_stnNo);
|
action = 3; //既打印又确认
|
//prnstatus = 0; //默认等待,拣料站更新
|
}
|
else
|
{
|
ls_error_memo = " " + seq + ".4 库位" + ls_locno + "通知出库数量超出库存数量,请检查";
|
DisplayInfo("", "E", ls_error_memo);
|
goto re;
|
}
|
|
sqlWaitIn = sqlWaitIn.Replace("update cust_wait_pakout set", "update cust_wait_pakout set action=" + action + ",");
|
|
sql = sqlDetl;
|
sql += "insert into asr_wrk_mast(wrk_no,io_time,wrk_sts,io_type,crn_no,io_pri,source_loc_no,sta_no,source_sta_no,barcode) ";
|
sql += " values(" + li_wrkno + ",'" + ldt_date + "',11," + li_io_type + "," + li_crnno + ",13,'" + ls_locno + "', ";
|
sql += " " + li_e_stnNo + "," + li_stnNo + ",'" + barcode + "'); ";
|
sql += " update asr_loc_mast set loc_sts='" + new_loc_sts + "' where loc_no='" + ls_locno + "'; ";
|
sql += sqlWaitIn;
|
SqlConnection sqlconn = new SqlConnection(Common.sqlcon);
|
sqlconn.Open();
|
SqlTransaction sqltrans = sqlconn.BeginTransaction();
|
SqlCommand sqlcmd = new SqlCommand(sql, sqlconn);
|
sqlcmd.Transaction = sqltrans;
|
try
|
{
|
sqlcmd.ExecuteNonQuery();
|
sqltrans.Commit();
|
}
|
catch (SqlException t)
|
{
|
sqltrans.Rollback();
|
//sqlcommon.Close();
|
ls_error_memo = " " + seq + ".4 插入工作主档[asr_wrk_mast]错误 !库位:" + ls_locno + " 异常:" + t.Message;
|
DisplayInfo("", "E", ls_error_memo);
|
goto re;
|
}
|
finally
|
{
|
sqlcmd.Dispose();
|
sqlconn.Dispose();
|
}
|
return;
|
|
re:
|
sql = "update cust_wait_pakout set status='X',action=" + action + ",modi_time='" + ldt_date + "' where vlpla='" + ls_locno + "'";
|
bool result = Common.ExecAsrsModify(sql);
|
if (!result)
|
{
|
ls_error_memo = " " + seq + ".5 更新出库档失败!库位:" + ls_locno;
|
DisplayInfo("", "E", ls_error_memo);
|
}
|
}
|
catch (Exception em)
|
{
|
ls_error_memo = " " + seq + ".6 处理待处理档生成出库工作档失败:" + em.Message;
|
DisplayInfo("", "E", ls_error_memo);
|
}
|
}
|
|
/// <summary>
|
/// 生成库位调整工作档
|
/// </summary>
|
public void ProcLocToWorkData(string seq)
|
{
|
string ls_slocno = "", ls_dlocno = "";
|
string ls_error_memo = "", sql = "";
|
int li_wrkno = 0, li_io_type = 0, li_stnNo = 0, li_e_stnNo = 0;
|
DateTime ldt_date = System.DateTime.Now;
|
double d_outQty = 0, d_stkQty = 0;
|
|
DisplayInfo(seq, "N", " --处理出库通知档,生成出库工作档......");
|
|
try
|
{
|
//查找最早一条待出库库位
|
sql = "select top 1 vlpla,nlpla from cust_wait_pakout where status<>'Y' and nltyp='A01' order by status,modi_time";
|
DataView dvLoc = Common.ExecAsrsSelect(sql);
|
if (dvLoc.Count <= 0)
|
{
|
return;
|
}
|
foreach (DataRowView drow in dvLoc)
|
{
|
ls_slocno = drow[0].ToString();
|
ls_dlocno = drow[1].ToString();
|
}
|
if (ls_slocno == "" || ls_dlocno=="")
|
{
|
ls_error_memo = " " + seq + ".1 出库通知档源库位为空[cust_wait_pakout]错误 !库位:" + ls_slocno;
|
DisplayInfo("", "E", ls_error_memo);
|
goto re;
|
}
|
|
//查询目标库位状态,如果为空表示库位已转,如果在库表示源库位出库,目标库位并板,如果不在库,则报警停止执行
|
string loc_sts = "", barcoded = "";
|
sql = "select loc_sts,barcode from asr_loc_mast where loc_no='" + ls_dlocno + "' ";
|
DataView dv = Common.ExecAsrsSelect(sql);
|
if (dv.Count <= 0)
|
{
|
ls_error_memo = " " + seq + ".2 目标库位" + ls_dlocno + "不存在,请检查";
|
DisplayInfo("", "E", ls_error_memo);
|
goto re;
|
}
|
else
|
{
|
foreach (DataRowView drow in dv)
|
{
|
loc_sts = drow[0].ToString();
|
barcoded = drow[1].ToString();
|
}
|
}
|
|
if (loc_sts == "O")
|
{ //库位移转
|
sql = "select lgnum,tbnum,tbpos,matnr,maktx,werks,anfme,altme,bname ";
|
sql += " from asr_loc_detl where loc_no='" + ls_slocno + "' order by matnr,modi_time";
|
dv = Common.ExecAsrsSelect(sql);
|
if (dv.Count <= 0)
|
{
|
return;
|
}
|
li_wrkno = Common.GetWrkno(0);
|
string sqlDetl = "", sqlWaitIn = "";
|
foreach (DataRowView drow in dv)
|
{
|
string lgnum = drow[0].ToString();
|
string tanum = drow[1].ToString();
|
string tapos = drow[2].ToString();
|
string matnr = drow[3].ToString();
|
string maktx = drow[4].ToString();
|
string werks = drow[5].ToString();
|
string vsolm = drow[6].ToString();
|
string meins = drow[7].ToString();
|
string bname = drow[8].ToString();
|
sqlDetl += " insert into asr_wrk_detl(wrk_no,io_time,lgnum,tbnum,tbpos,matnr,maktx,werks,anfme,altme,bname) ";
|
sqlDetl += " values(" + li_wrkno + ",'" + ldt_date + "','" + lgnum + "'," + tanum + "," + tapos + ", ";
|
sqlDetl += " '" + matnr + "','" + maktx + "','" + werks + "'," + vsolm + ",'" + meins + "','" + bname + "');";
|
sqlWaitIn += " update cust_wait_pakout set status='Y' where nltyp='A01' and vlpla='" + ls_slocno + "' and nlpla='" + ls_dlocno + "';";
|
}
|
DisplayInfo("", "P", " " + seq + ".3 正在处理待出库资料!库位:" + ls_slocno);
|
|
//查询库位号是否在库状态,并查询条码号
|
sql = "select loc_no,barcode from asr_loc_mast where loc_no='" + ls_slocno + "' and loc_sts='F'";
|
string barcode = "";
|
dv = Common.ExecAsrsSelect(sql);
|
if (dv.Count <= 0)
|
{
|
ls_error_memo = " " + seq + ".4 源库位" + ls_slocno + "不存在或非在库状态,请检查";
|
DisplayInfo("", "E", ls_error_memo);
|
goto re;
|
}
|
else
|
{
|
foreach (DataRowView drow in dv)
|
{
|
barcode = drow[1].ToString();
|
}
|
}
|
int li_crnrow = int.Parse(ls_slocno.Substring(0, 2));
|
int li_crnno = (li_crnrow + 1) / 2;
|
li_io_type = 11;
|
|
sql = sqlDetl;
|
sql += "insert into asr_wrk_mast(wrk_no,io_time,wrk_sts,io_type,crn_no,io_pri,source_loc_no,loc_no,barcode,empty_mk) ";
|
sql += " values(" + li_wrkno + ",'" + ldt_date + "',11," + li_io_type + "," + li_crnno + ",13,'" + ls_slocno + "', ";
|
sql += " '" + ls_dlocno + "','" + barcode + "','N'); ";
|
sql += " update asr_loc_mast set loc_sts='R' where loc_no='" + ls_slocno + "'; ";
|
sql += " update asr_loc_mast set loc_sts='S' where loc_no='" + ls_dlocno + "'; ";
|
sql += sqlWaitIn;
|
SqlConnection sqlconn = new SqlConnection(Common.sqlcon);
|
sqlconn.Open();
|
SqlTransaction sqltrans = sqlconn.BeginTransaction();
|
SqlCommand sqlcmd = new SqlCommand(sql, sqlconn);
|
sqlcmd.Transaction = sqltrans;
|
try
|
{
|
sqlcmd.ExecuteNonQuery();
|
sqltrans.Commit();
|
}
|
catch (SqlException t)
|
{
|
sqltrans.Rollback();
|
//sqlcommon.Close();
|
ls_error_memo = " " + seq + ".5 插入工作主档[asr_wrk_mast]错误 !库位:" + ls_slocno + " 异常:" + t.Message;
|
DisplayInfo("", "E", ls_error_memo);
|
goto re;
|
}
|
finally
|
{
|
sqlcmd.Dispose();
|
sqlconn.Dispose();
|
}
|
}
|
else if (loc_sts == "F")
|
{//目标库位并板
|
//源库位出库
|
string sqlDetld = "";
|
int li_wrknod = 0;
|
int action = 0;
|
sql = "select lgnum,tanum,tapos,matnr,maktx,werks,vsolm,meins,bname ";
|
sql += " from cust_wait_pakout where status<>'Y' and nltyp='A01' and vlpla='" + ls_slocno + "' and nlpla='" + ls_dlocno + "' order by status,modi_time";
|
dv = Common.ExecAsrsSelect(sql);
|
if (dv.Count <= 0)
|
{
|
return;
|
}
|
li_wrkno = Common.GetWrkno(0);
|
li_wrknod = Common.GetWrkno(0);
|
string sqlDetl = "", sqlWaitIn = "";
|
foreach (DataRowView drow in dv)
|
{
|
string lgnum = drow[0].ToString();
|
string tanum = drow[1].ToString();
|
string tapos = drow[2].ToString();
|
string matnr = drow[3].ToString();
|
string maktx = drow[4].ToString();
|
string werks = drow[5].ToString();
|
string vsolm = drow[6].ToString();
|
string meins = drow[7].ToString();
|
string bname = drow[8].ToString();
|
sqlDetl += " insert into asr_wrk_detl(wrk_no,io_time,lgnum,tbnum,tbpos,matnr,maktx,werks,anfme,altme,bname) ";
|
sqlDetl += " values(" + li_wrkno + ",'" + ldt_date + "','" + lgnum + "'," + tanum + "," + tapos + ", ";
|
sqlDetl += " '" + matnr + "','" + maktx + "','" + werks + "'," + vsolm + ",'" + meins + "','" + bname + "');";
|
|
sqlDetld += " insert into asr_wrk_detl(wrk_no,io_time,lgnum,tbnum,tbpos,matnr,maktx,werks,anfme,altme,bname) ";
|
sqlDetld += " values(" + li_wrknod + ",'" + ldt_date + "','" + lgnum + "'," + tanum + "," + tapos + ", ";
|
sqlDetld += " '" + matnr + "','" + maktx + "','" + werks + "'," + vsolm + ",'" + meins + "','" + bname + "');";
|
|
sqlWaitIn += " update cust_wait_pakout set status='Y' where lgnum='" + lgnum + "' and tanum=" + tanum + " and tapos=" + tapos + " and vlpla=" + ls_slocno + ";";
|
d_outQty += double.Parse(vsolm);
|
}
|
DisplayInfo("", "P", " " + seq + ".6 正在处理待出库资料!库位:" + ls_slocno);
|
|
//查询库位号是否在库状态,并查询条码号
|
sql = "select loc_no,barcode from asr_loc_mast where loc_no='" + ls_slocno + "' and loc_sts='F'";
|
string barcode = "";
|
dv = Common.ExecAsrsSelect(sql);
|
if (dv.Count <= 0)
|
{
|
ls_error_memo = " " + seq + ".7 源库位" + ls_slocno + "不存在或非在库状态,请检查";
|
DisplayInfo("", "E", ls_error_memo);
|
goto re;
|
}
|
else
|
{
|
foreach (DataRowView drow in dv)
|
{
|
barcode = drow[1].ToString();
|
}
|
}
|
|
//查询库位号对应库存明细总数量
|
sql = "select sum(anfme) from asr_loc_detl where loc_no='" + ls_slocno + "' ";
|
dv = Common.ExecAsrsSelect(sql);
|
if (dv.Count <= 0)
|
{
|
ls_error_memo = " " + seq + ".8 库位" + ls_slocno + "没有库存明细,请检查";
|
DisplayInfo("", "E", ls_error_memo);
|
goto re;
|
}
|
else
|
{
|
foreach (DataRowView drow in dv)
|
{
|
d_stkQty += double.Parse(drow[0].ToString());
|
}
|
}
|
|
int li_crnrow = int.Parse(ls_slocno.Substring(0, 2));
|
int li_crnno = (li_crnrow + 1) / 2;
|
string new_loc_sts = "";
|
if (d_outQty < d_stkQty)
|
{
|
li_io_type = 103;
|
new_loc_sts = "P";
|
li_e_stnNo = 4;
|
li_stnNo = Common.getIoStaNo(li_io_type, li_crnno, li_e_stnNo);
|
action = 2;
|
}
|
else if (d_outQty == d_stkQty)
|
{
|
li_io_type = 101;
|
new_loc_sts = "R";
|
li_e_stnNo = 13;
|
li_stnNo = Common.getIoStaNo(li_io_type, li_crnno, li_e_stnNo);
|
action = 3;
|
}
|
else
|
{
|
ls_error_memo = " " + seq + ".9 库位" + ls_slocno + "通知出库数量超出库存数量,请检查";
|
DisplayInfo("", "E", ls_error_memo);
|
goto re;
|
}
|
|
int li_crnrowd = int.Parse(ls_dlocno.Substring(0, 2));
|
int li_crnnod = (li_crnrowd + 1) / 2;
|
int li_io_typed = 104;
|
int li_e_stnNod = 4;
|
int li_stnNod = Common.getIoStaNo(li_io_typed, li_crnnod, li_e_stnNod);
|
|
sqlWaitIn = sqlWaitIn.Replace("update cust_wait_pakout set", "update cust_wait_pakout set action=" + action + ",");
|
|
sql = sqlDetl;
|
sql += "insert into asr_wrk_mast(wrk_no,io_time,wrk_sts,io_type,crn_no,io_pri,source_loc_no,sta_no,source_sta_no,barcode) ";
|
sql += " values(" + li_wrkno + ",'" + ldt_date + "',11," + li_io_type + "," + li_crnno + ",13,'" + ls_slocno + "', ";
|
sql += " " + li_e_stnNo + "," + li_stnNo + ",'" + barcode + "'); ";
|
sql += sqlDetld;
|
sql += "insert into asr_wrk_mast(wrk_no,io_time,wrk_sts,io_type,crn_no,io_pri,source_loc_no,sta_no,source_sta_no,barcode) ";
|
sql += " values(" + li_wrknod + ",'" + ldt_date + "',11," + li_io_typed + "," + li_crnnod + ",13,'" + ls_dlocno + "', ";
|
sql += " " + li_e_stnNod + "," + li_stnNod + ",'" + barcoded + "'); ";
|
sql += " update asr_loc_mast set loc_sts='" + new_loc_sts + "' where loc_no='" + ls_slocno + "'; ";
|
sql += " update asr_loc_mast set loc_sts='P' where loc_no='" + ls_dlocno + "'; ";
|
sql += sqlWaitIn;
|
SqlConnection sqlconn = new SqlConnection(Common.sqlcon);
|
sqlconn.Open();
|
SqlTransaction sqltrans = sqlconn.BeginTransaction();
|
SqlCommand sqlcmd = new SqlCommand(sql, sqlconn);
|
sqlcmd.Transaction = sqltrans;
|
try
|
{
|
sqlcmd.ExecuteNonQuery();
|
sqltrans.Commit();
|
}
|
catch (SqlException t)
|
{
|
sqltrans.Rollback();
|
//sqlcommon.Close();
|
ls_error_memo = " " + seq + ".10 插入工作主档[asr_wrk_mast]错误 !库位:" + ls_slocno + " 异常:" + t.Message;
|
DisplayInfo("", "E", ls_error_memo);
|
goto re;
|
}
|
finally
|
{
|
sqlcmd.Dispose();
|
sqlconn.Dispose();
|
}
|
}
|
else
|
{
|
ls_error_memo = " " + seq + ".11 目标库位" + ls_dlocno + "不是在库或空库位状态,请检查";
|
DisplayInfo("", "E", ls_error_memo);
|
goto re;
|
}
|
return;
|
|
re:
|
sql = "update cust_wait_pakout set status='X',modi_time='" + ldt_date + "' where vlpla='" + ls_slocno + "'";
|
bool result = Common.ExecAsrsModify(sql);
|
if (!result)
|
{
|
ls_error_memo = " " + seq + ".12 更新出库档失败!库位:" + ls_slocno;
|
DisplayInfo("", "E", ls_error_memo);
|
}
|
}
|
catch (Exception em)
|
{
|
ls_error_memo = " " + seq + ".13 处理待处理档生成出库工作档失败:" + em.Message;
|
DisplayInfo("", "E", ls_error_memo);
|
}
|
}
|
|
/// <summary>
|
/// 生成盘点工作档
|
/// </summary>
|
public void ProcCheckToWorkData(string seq)
|
{
|
string ls_locno = "";
|
string ls_error_memo = "", sql = "";
|
int li_wrkno = 0, li_io_type = 0, li_stnNo = 0, li_e_stnNo = 0;
|
DateTime ldt_date = System.DateTime.Now;
|
int type = 1;
|
|
DisplayInfo(seq, "N", " --处理盘点通知档,生成盘点工作档......");
|
|
try
|
{
|
//查找最早一条待出库库位
|
sql = "select top 1 lgpla from cust_wait_check where status<>'Y' order by status,modi_time";
|
DataView dvLoc = Common.ExecAsrsSelect(sql);
|
if (dvLoc.Count <= 0)
|
{
|
return;
|
}
|
foreach (DataRowView drow in dvLoc)
|
{
|
ls_locno = drow[0].ToString();
|
}
|
if (ls_locno == "")
|
{
|
return;
|
}
|
|
//查询库位号是否在库状态,并查询条码号
|
sql = "select loc_no,barcode from asr_loc_mast where loc_no='" + ls_locno + "' and loc_sts='F'";
|
string barcode = "";
|
DataView dv = Common.ExecAsrsSelect(sql);
|
if (dv.Count <= 0)
|
{
|
ls_error_memo = " " + seq + ".2 库位" + ls_locno + "不存在或非在库状态,请检查";
|
DisplayInfo("", "E", ls_error_memo);
|
goto re;
|
}
|
else
|
{
|
foreach (DataRowView drow in dv)
|
{
|
barcode = drow[1].ToString();
|
}
|
}
|
|
//根据库位号查找该库位所有出库资料
|
sql = "select a.lgnum,a.ivnum,a.ivpos,b.matnr,b.maktx,b.altme,b.werks ";
|
sql += " from cust_wait_check a, asr_loc_detl b ";
|
sql += " where a.status<>'Y' and a.lgpla='" + ls_locno + "' and a.matnr=b.matnr and lgpla=b.loc_no and io_status='N'";
|
sql += " order by a.status,a.modi_time";
|
dv = Common.ExecAsrsSelect(sql);
|
if (dv == null || dv.Count <= 0)
|
{
|
sql = "select b.lgnum,b.tbnum,b.tbpos,b.matnr,b.maktx,b.altme,b.werks ";
|
sql += " from cust_wait_check a, asr_loc_detl b ";
|
sql += " where a.status<>'Y' and a.lgpla='" + ls_locno + "' and a.lgpla=b.loc_no and io_status='N'";
|
sql += " order by a.status,a.modi_time";
|
dv = Common.ExecAsrsSelect(sql);
|
if (dv == null || dv.Count <= 0)
|
{
|
ls_error_memo = " " + seq + ".3 查询库存明细[asr_loc_detl]没有 !库位:" + ls_locno;
|
DisplayInfo("", "E", ls_error_memo);
|
goto re;
|
}
|
type = 2;
|
//return;
|
}
|
li_wrkno = Common.GetWrkno(0);
|
string sqlDetl = "", sqlWaitIn = "";
|
foreach (DataRowView drow in dv)
|
{
|
string lgnum = drow[0].ToString();
|
string tanum = drow[1].ToString();
|
string tapos = drow[2].ToString();
|
string matnr = drow[3].ToString();
|
string maktx = drow[4].ToString();
|
string altme = drow[5].ToString();
|
string werks = drow[6].ToString();
|
sqlDetl += " insert into asr_wrk_detl(wrk_no,io_time,lgnum,tbnum,tbpos,matnr,maktx,altme,werks,zpallet) ";
|
sqlDetl += " values(" + li_wrkno + ",'" + ldt_date + "','" + lgnum + "'," + tanum + "," + tapos + ", ";
|
sqlDetl += " '" + matnr + "','" + maktx + "','" + altme + "','" + werks + "','" + barcode + "');";
|
if (type == 1)
|
{
|
sqlWaitIn += " update cust_wait_check set status='Y' where lgnum='" + lgnum + "' and ivnum=" + tanum + " and ivpos=" + tapos + ";";
|
}
|
else
|
{
|
sqlWaitIn += " update cust_wait_check set status='Y' where lgpla='" + ls_locno + "';";
|
}
|
}
|
DisplayInfo("", "P", " " + seq + ".1 正在处理待盘点资料!库位:" + ls_locno);
|
|
int li_crnrow = int.Parse(ls_locno.Substring(0, 2));
|
int li_crnno = (li_crnrow + 1) / 2;
|
li_io_type = 107;
|
li_e_stnNo = 4;
|
li_stnNo = Common.getIoStaNo(li_io_type, li_crnno, li_e_stnNo);
|
|
sql = sqlDetl;
|
sql += "insert into asr_wrk_mast(wrk_no,io_time,wrk_sts,io_type,crn_no,io_pri,source_loc_no,sta_no,source_sta_no,barcode) ";
|
sql += " values(" + li_wrkno + ",'" + ldt_date + "',11," + li_io_type + "," + li_crnno + ",13,'" + ls_locno + "', ";
|
sql += " " + li_e_stnNo + "," + li_stnNo + ",'" + barcode + "'); ";
|
sql += " update asr_loc_mast set loc_sts='P' where loc_no='" + ls_locno + "'; ";
|
sql += sqlWaitIn;
|
SqlConnection sqlconn = new SqlConnection(Common.sqlcon);
|
sqlconn.Open();
|
SqlTransaction sqltrans = sqlconn.BeginTransaction();
|
SqlCommand sqlcmd = new SqlCommand(sql, sqlconn);
|
sqlcmd.Transaction = sqltrans;
|
try
|
{
|
sqlcmd.ExecuteNonQuery();
|
sqltrans.Commit();
|
}
|
catch (SqlException t)
|
{
|
sqltrans.Rollback();
|
//sqlcommon.Close();
|
ls_error_memo = " " + seq + ".3 插入工作主档[asr_wrk_mast]错误 !库位:" + ls_locno + " 异常:" + t.Message;
|
DisplayInfo("", "E", ls_error_memo);
|
goto re;
|
}
|
finally
|
{
|
sqlcmd.Dispose();
|
sqlconn.Dispose();
|
}
|
return;
|
|
re:
|
sql = "update cust_wait_check set status='X',modi_time='" + ldt_date + "' where lgpla='" + ls_locno + "'";
|
bool result = Common.ExecAsrsModify(sql);
|
if (!result)
|
{
|
ls_error_memo = " " + seq + ".4 更新盘点档失败!库位:" + ls_locno;
|
DisplayInfo("", "E", ls_error_memo);
|
}
|
}
|
catch (Exception em)
|
{
|
ls_error_memo = " " + seq + ".5 处理盘点通知档生成盘点工作档失败:" + em.Message;
|
DisplayInfo("", "E", ls_error_memo);
|
}
|
}
|
|
/// <summary>
|
/// 处理工作档中工作状态为4和14、6的资料,更新库存档、待处理档
|
/// </summary>
|
public void ProcWorkMast(string seq)
|
{
|
string ls_error_memo = "", sql = "", ls_barcode = "";
|
int li_wrk_no = 0, li_wrk_sts = 0, li_io_type = 0, li_sta_no = 0, li_source_sta_no = 0;//, li_wrk_model = 1;
|
string ls_loc_no = "", ls_source_loc_no = "";//, ls_wmsId = "", ls_boxId = "";
|
DateTime ldt_date = System.DateTime.Now, ldt_io_time;
|
string ls_sheet_no = "", ls_empty_mk = "", ls_full_mk = "", ls_online_yn = "";
|
int li_io_pri = 0, li_whs_type;
|
DisplayInfo(seq, "N", "--处理工作档 (status=4,14)......");
|
try
|
{
|
try
|
{
|
DataView dv = Common.ExecAsrsSelect("select getdate() from sys_dual");
|
foreach (System.Data.DataRowView drow in dv)
|
{
|
ldt_date = Convert.ToDateTime(drow[0]);
|
}
|
}
|
catch (SqlException)
|
{
|
return;
|
}
|
sql = "select wrk_no,sheet_no,wrk_sts,io_type,io_pri,empty_mk," +
|
" io_time,loc_no,sta_no,source_sta_no,source_loc_no,whs_type,online_yn,barcode" +
|
" from dbo.asr_wrk_mast where ((wrk_sts = 4 Or wrk_sts = 14 ) and io_type <> 103 and io_type <> 104 and io_type <> 107 ) or (wrk_sts = 2 and io_type=6)" +
|
" order by upd_mk,io_time,wrk_no";
|
DataView dv_wrkmast = Common.ExecAsrsSelect(sql);
|
if (dv_wrkmast == null || dv_wrkmast.Count < 1)
|
{
|
DisplayInfo("", "N", " " + seq + ".1 工作档 [asr_wrk_mast] 没有资料!");
|
return;
|
}
|
foreach (DataRowView drow_wrkmast in dv_wrkmast)
|
{
|
li_wrk_no = Convert.ToInt32(drow_wrkmast[0]);
|
ls_sheet_no = drow_wrkmast[1].ToString();
|
li_wrk_sts = Convert.ToInt32(drow_wrkmast[2]);
|
li_io_type = Convert.ToInt32(drow_wrkmast[3]);
|
li_io_pri = Convert.ToInt32(drow_wrkmast[4]);
|
ls_empty_mk = drow_wrkmast[5].ToString();
|
ldt_io_time = Convert.ToDateTime(drow_wrkmast[6]);
|
ls_loc_no = drow_wrkmast[7].ToString();
|
li_sta_no = Convert.ToInt32(drow_wrkmast[8]);
|
li_source_sta_no = Convert.ToInt32(drow_wrkmast[9]);
|
ls_source_loc_no = drow_wrkmast[10].ToString();
|
//li_whs_type = Convert.ToInt32(drow_wrkmast[11]);
|
//ls_full_mk = drow_wrkmast[12].ToString();
|
ls_online_yn = drow_wrkmast[12].ToString();
|
ls_barcode = drow_wrkmast[13].ToString();
|
|
DisplayInfo("", "P", " " + seq + ".2 处理工作档:" + li_wrk_no.ToString());
|
SqlConnection sqlconn = new SqlConnection(Common.sqlcon);
|
sqlconn.Open();
|
SqlTransaction sqltrans = sqlconn.BeginTransaction();
|
if (li_wrk_sts == 4)
|
{
|
switch (li_io_type)
|
{
|
#region 空托盘入库
|
case 10:
|
sql = "update asr_loc_mast set loc_sts='D',io_time='" + ldt_date + "',modi_time='" + ldt_date + "'";
|
sql += " where loc_no='" + ls_loc_no + "' and (loc_sts = 'S' Or loc_sts = 'Q')";
|
SqlCommand cmd_10 = new SqlCommand(sql, sqlconn);
|
cmd_10.Transaction = sqltrans;
|
try
|
{
|
cmd_10.ExecuteNonQuery();
|
}
|
catch (SqlException t)
|
{
|
sqltrans.Rollback();
|
cmd_10.Dispose();
|
sqlconn.Dispose();
|
ls_error_memo = " " + seq + ".3 入库-更新库位状态异常 [asr_loc_mast] !工作号:" + li_wrk_no.ToString() + " 库位号:" + ls_loc_no + " 异常:" + t.Message;
|
DisplayInfo("", "E", ls_error_memo);
|
goto re;
|
}
|
break;
|
#endregion
|
#region 全板入库
|
case 1:
|
///检查库存明细档是否已存在数据
|
int li_count1 = 0;
|
sql = "";
|
try
|
{
|
li_count1 = Common.ExecAsrsSelect1("select count(*) from asr_loc_detl where loc_no ='" + ls_loc_no + "'");
|
|
}
|
catch (Exception em)
|
{
|
ls_error_memo = " " + seq + ".4 查询库存明细[asr_loc_detl]出错!工作号:" + li_wrk_no.ToString() + "!" + em.Message;
|
DisplayInfo("", "E", ls_error_memo);
|
goto re;
|
}
|
|
///根据工作号,查询工作明细档商品编号
|
string sqlDetl = "";
|
string sqlWaitIn = "";
|
sql = "select lgnum,tbnum,tbpos,zmatid,matnr,maktx,werks,anfme,altme,zpallet,bname from asr_wrk_detl where wrk_no=" + li_wrk_no;
|
DataView dv_wrkdetl = Common.ExecAsrsSelect(sql);
|
if (dv_wrkdetl == null || dv_wrkdetl.Count < 1)
|
{
|
DisplayInfo("", "E", " " + seq + ".5 工作明细档 [asr_wrk_detl] 没有资料!");
|
return;
|
}
|
foreach (DataRowView drow in dv_wrkdetl)
|
{
|
string lgnum = "", tbnum = "", tbpos = "", zmatid = "", matnr = "", maktx = "", werks = "", anfme = "", altme = "", zpallet = "", bname = "";
|
lgnum = drow[0].ToString();
|
tbnum = drow[1].ToString();
|
tbpos = drow[2].ToString();
|
zmatid = drow[3].ToString();
|
matnr = drow[4].ToString();
|
maktx = drow[5].ToString();
|
werks = drow[6].ToString();
|
anfme = drow[7].ToString();
|
altme = drow[8].ToString();
|
zpallet = drow[9].ToString();
|
bname = drow[10].ToString();
|
|
string sqlLocDetl = "select anfme from asr_loc_detl where loc_no='" + ls_loc_no + "' and matnr='" + matnr + "'";
|
DataView dvLocDetl = Common.ExecAsrsSelect(sqlLocDetl);
|
if (dvLocDetl != null)
|
{
|
if (dvLocDetl.Count > 0)
|
{//库存已有,更新数量
|
sqlDetl = " update asr_loc_detl set anfme=anfme+" + anfme + " where loc_no='" + ls_loc_no + "' and matnr='" + matnr + "'; ";
|
Common.ExecAsrsModify(sqlDetl);
|
}
|
else
|
{//库存没有,插入
|
sqlDetl = " insert into asr_loc_detl(loc_no,lgnum,tbnum,tbpos,zmatid,matnr,maktx,werks,anfme,altme,zpallet,bname) ";
|
sqlDetl += " values('" + ls_loc_no + "','" + lgnum + "'," + tbnum + "," + tbpos + ",'" + zmatid + "', ";
|
sqlDetl += " '" + matnr + "','" + maktx + "','" + werks + "'," + anfme + ",'" + altme + "','" + ls_barcode + "','" + bname + "');";
|
Common.ExecAsrsModify(sqlDetl);
|
}
|
}
|
sqlWaitIn += " update cust_wait_pakin set io_status='Y' where lgnum='" + lgnum + "' and tbnum=" + tbnum + " and tbpos=" + tbpos + " and zmatid='" + zmatid + "';";
|
}
|
|
///更新库存信息,插入库存明细档,并更新库存主档
|
sql = "";
|
if (li_count1 > 0)
|
{
|
sql += "delete from asr_loc_detl where loc_no ='" + ls_loc_no + "';";
|
}
|
sql += " update asr_loc_mast set loc_sts='F',io_time='" + ldt_date + "',modi_time='" + ldt_date + "',barcode='" + ls_barcode + "'";
|
sql += " where loc_no='" + ls_loc_no + "' and loc_sts = 'S';";
|
//sql += sqlDetl;
|
sql += sqlWaitIn;
|
|
SqlCommand cmd_1 = new SqlCommand(sql, sqlconn);
|
cmd_1.Transaction = sqltrans;
|
try
|
{
|
cmd_1.ExecuteNonQuery();
|
}
|
catch (SqlException t)
|
{
|
sqltrans.Rollback();
|
cmd_1.Dispose();
|
sqlconn.Dispose();
|
ls_error_memo = " " + seq + ".6 入库-更新库存异常 [asr_loc_mast] !工作号:" + li_wrk_no.ToString() + " 库位号:" + ls_loc_no + " !" + t.Message;
|
DisplayInfo("", "E", ls_error_memo);
|
goto re;
|
}
|
break;
|
#endregion
|
#region 拣料再入库
|
case 53:
|
///根据工作号,查询工作明细档商品编号
|
sqlDetl = "";
|
sqlWaitIn = "";
|
sql = "select lgnum,tbnum,tbpos,zmatid,matnr,maktx,werks,anfme,altme,zpallet,bname from asr_wrk_detl where wrk_no=" + li_wrk_no;
|
DataView dv_wrkdetl53 = Common.ExecAsrsSelect(sql);
|
if (dv_wrkdetl53 == null || dv_wrkdetl53.Count < 1)
|
{
|
DisplayInfo("", "E", " " + seq + ".6 工作明细档 [asr_wrk_detl] 没有资料!");
|
return;
|
}
|
foreach (DataRowView drow in dv_wrkdetl53)
|
{
|
string lgnum = "", tbnum = "", tbpos = "", zmatid = "", matnr = "", maktx = "", werks = "", anfme = "", altme = "", zpallet = "", bname = "";
|
lgnum = drow[0].ToString();
|
tbnum = drow[1].ToString();
|
tbpos = drow[2].ToString();
|
zmatid = drow[3].ToString();
|
matnr = drow[4].ToString();
|
maktx = drow[5].ToString();
|
werks = drow[6].ToString();
|
anfme = drow[7].ToString();
|
altme = drow[8].ToString();
|
zpallet = drow[9].ToString();
|
bname = drow[10].ToString();
|
sqlDetl += " update asr_loc_detl set anfme=anfme-" + anfme + " where loc_no='" + ls_loc_no + "' and matnr='" + matnr + "'";
|
sqlWaitIn += " update cust_wait_pakout set io_status='Y' where lgnum='" + lgnum + "' and tanum=" + tbnum + " and tapos=" + tbpos + " and matnr=" + matnr + ";";
|
}
|
|
///更新库存信息,插入库存明细档,并更新库存主档
|
sql = " update asr_loc_mast set loc_sts='F',io_time='" + ldt_date + "',modi_time='" + ldt_date + "',barcode='" + ls_barcode + "'";
|
sql += " where loc_no='" + ls_loc_no + "' and loc_sts = 'Q';";
|
sql += sqlDetl;
|
sql += sqlWaitIn;
|
|
|
SqlCommand cmd_53 = new SqlCommand(sql, sqlconn);
|
cmd_53.Transaction = sqltrans;
|
try
|
{
|
cmd_53.ExecuteNonQuery();
|
}
|
catch (SqlException t)
|
{
|
sqltrans.Rollback();
|
cmd_53.Dispose();
|
sqlconn.Dispose();
|
ls_error_memo = " " + seq + ".7 拣料-更新库存异常 [asr_loc_mast] !工作号:" + li_wrk_no.ToString() + " 库位号:" + ls_loc_no + " !" + t.Message;
|
DisplayInfo("", "E", ls_error_memo);
|
goto re;
|
}
|
break;
|
#endregion
|
#region 并板再入库
|
case 54:
|
///根据工作号,查询工作明细档商品编号
|
sqlDetl = "";
|
sqlWaitIn = "";
|
sql = "select lgnum,tbnum,tbpos,zmatid,matnr,maktx,werks,anfme,altme,zpallet,bname from asr_wrk_detl where wrk_no=" + li_wrk_no;
|
DataView dv_wrkdetl54 = Common.ExecAsrsSelect(sql);
|
if (dv_wrkdetl54 == null || dv_wrkdetl54.Count < 1)
|
{
|
DisplayInfo("", "E", " " + seq + ".8 工作明细档 [asr_wrk_detl] 没有资料!");
|
return;
|
}
|
foreach (DataRowView drow in dv_wrkdetl54)
|
{
|
string lgnum = "", tbnum = "", tbpos = "", zmatid = "", matnr = "", maktx = "", werks = "", anfme = "", altme = "", zpallet = "", bname = "";
|
lgnum = drow[0].ToString();
|
tbnum = drow[1].ToString();
|
tbpos = drow[2].ToString();
|
zmatid = drow[3].ToString();
|
matnr = drow[4].ToString();
|
maktx = drow[5].ToString();
|
werks = drow[6].ToString();
|
anfme = drow[7].ToString();
|
altme = drow[8].ToString();
|
zpallet = drow[9].ToString();
|
bname = drow[10].ToString();
|
string sql1 = "select anfme from asr_loc_detl where loc_no='" + ls_loc_no + "' and matnr='" + matnr + "'";
|
DataView dv_locdetl54 = Common.ExecAsrsSelect(sql1);
|
if (dv_locdetl54 != null && dv_locdetl54.Count > 0)
|
{
|
sqlDetl += " update asr_loc_detl set anfme=anfme+" + anfme + " where loc_no='" + ls_loc_no + "' and matnr='" + matnr + "'";
|
//sqlWaitIn += " update cust_wait_pakin set io_status='Y' where matnr=" + matnr + ";";
|
}
|
else
|
{
|
sqlDetl += " insert into asr_loc_detl(loc_no,lgnum,tbnum,tbpos,zmatid,matnr,maktx,werks,anfme,altme,zpallet,bname) ";
|
sqlDetl += " values('" + ls_loc_no + "','" + lgnum + "'," + tbnum + "," + tbpos + ",'" + zmatid + "', ";
|
sqlDetl += " '" + matnr + "','" + maktx + "','" + werks + "'," + anfme + ",'" + altme + "','" + ls_barcode + "','" + bname + "');";
|
}
|
sqlWaitIn += " update cust_wait_pakout set io_status='Y' where lgnum='" + lgnum + "' and tanum=" + tbnum + " and tapos=" + tbpos + ";";
|
}
|
|
///更新库存信息,插入库存明细档,并更新库存主档
|
//sql = " update asr_loc_mast set loc_sts='F',io_time='" + ldt_date + "',modi_time='" + ldt_date + "',barcode='" + ls_barcode + "'";
|
sql = " update asr_loc_mast set loc_sts='F',io_time='" + ldt_date + "',modi_time='" + ldt_date + "' ";
|
sql += " where loc_no='" + ls_loc_no + "' and loc_sts = 'Q';";
|
sql += sqlDetl;
|
sql += sqlWaitIn;
|
|
SqlCommand cmd_54 = new SqlCommand(sql, sqlconn);
|
cmd_54.Transaction = sqltrans;
|
try
|
{
|
cmd_54.ExecuteNonQuery();
|
}
|
catch (SqlException t)
|
{
|
sqltrans.Rollback();
|
cmd_54.Dispose();
|
sqlconn.Dispose();
|
ls_error_memo = " " + seq + ".9 并板再入库-更新库存异常 [asr_loc_mast] !工作号:" + li_wrk_no.ToString() + " 库位号:" + ls_loc_no + " !" + t.Message;
|
DisplayInfo("", "E", ls_error_memo);
|
goto re;
|
}
|
break;
|
#endregion
|
#region 盘点再入库
|
case 57:
|
///根据工作号,查询工作明细档商品编号
|
sqlDetl = "";
|
sqlWaitIn = "";
|
sql = "select lgnum,tbnum,tbpos,matnr from asr_wrk_detl where wrk_no=" + li_wrk_no;
|
DataView dv_wrkdetl57 = Common.ExecAsrsSelect(sql);
|
if (dv_wrkdetl57 == null || dv_wrkdetl57.Count < 1)
|
{
|
DisplayInfo("", "E", " " + seq + ".10 工作明细档 [asr_wrk_detl] 没有资料!");
|
return;
|
}
|
foreach (DataRowView drow in dv_wrkdetl57)
|
{
|
string lgnum = "", tbnum = "", tbpos = "", matnr = "";
|
lgnum = drow[0].ToString();
|
tbnum = drow[1].ToString();
|
tbpos = drow[2].ToString();
|
matnr = drow[3].ToString();
|
//sqlWaitIn += " update cust_wait_check set io_status='Y' where lgnum='" + lgnum + "' and ivnum=" + tbnum + " and ivpos=" + tbpos + ";";
|
}
|
sqlWaitIn += " update cust_wait_check set io_status='Y' where lgpla='" + ls_loc_no + "';";
|
///更新库存信息,插入库存明细档,并更新库存主档
|
sql = " update asr_loc_mast set loc_sts='F',io_time='" + ldt_date + "',modi_time='" + ldt_date + "',barcode='" + ls_barcode + "'";
|
sql += " where loc_no='" + ls_loc_no + "' and loc_sts = 'Q';";
|
sql += sqlDetl;
|
sql += sqlWaitIn;
|
|
SqlCommand cmd_57 = new SqlCommand(sql, sqlconn);
|
cmd_57.Transaction = sqltrans;
|
try
|
{
|
cmd_57.ExecuteNonQuery();
|
}
|
catch (SqlException t)
|
{
|
sqltrans.Rollback();
|
cmd_57.Dispose();
|
sqlconn.Dispose();
|
ls_error_memo = " " + seq + ".11 盘点再入库-更新库存异常 [asr_loc_mast] !工作号:" + li_wrk_no.ToString() + " 库位号:" + ls_loc_no + " !" + t.Message;
|
DisplayInfo("", "E", ls_error_memo);
|
goto re;
|
}
|
break;
|
#endregion
|
#region 库位移转
|
case 11:
|
sql = "";
|
string ls_loc_sts = "";
|
if (ls_empty_mk == "N")
|
{
|
ls_loc_sts = "F";
|
sql += "Update dbo.asr_loc_detl set loc_no='" + ls_loc_no + "',modi_time='" + ldt_date + "' where loc_no='" + ls_source_loc_no + "';";
|
}
|
else
|
{
|
ls_loc_sts = "D";
|
}
|
|
sql += " Update dbo.asr_loc_mast set loc_sts='O',barcode='',io_time='" + ldt_date + "' where loc_no='" + ls_source_loc_no + "'; ";
|
sql += " Update dbo.asr_loc_mast set loc_sts='" + ls_loc_sts + "',barcode='" + ls_barcode + "',io_time='" + ldt_date + "' where loc_no='" + ls_loc_no + "';";
|
sql += " update cust_wait_pakout set io_status='Y' where vlpla='" + ls_source_loc_no + "' and nlpla='" + ls_loc_no + "'";
|
SqlCommand cmd_11 = new SqlCommand(sql, sqlconn);
|
cmd_11.Transaction = sqltrans;
|
try
|
{
|
cmd_11.ExecuteNonQuery();
|
}
|
catch (SqlException t)
|
{
|
sqltrans.Rollback();
|
cmd_11.Dispose();
|
sqlconn.Dispose();
|
ls_error_memo = " " + seq + ".12 库位移转-更新库存异常 [asr_loc_mast] !工作号:" + li_wrk_no.ToString() + " 库位号:" + ls_loc_no + " !" + t.Message;
|
DisplayInfo("", "E", ls_error_memo);
|
goto re;
|
}
|
|
break;
|
#endregion
|
}
|
|
sql = "update asr_wrk_mast set wrk_sts=5,modi_time='" + ldt_date + "' where wrk_no=" + li_wrk_no + "; ";
|
SqlCommand cmd_wrk = new SqlCommand(sql, sqlconn);
|
cmd_wrk.Transaction = sqltrans;
|
try
|
{
|
cmd_wrk.ExecuteNonQuery();
|
}
|
catch (SqlException t)
|
{
|
sqltrans.Rollback();
|
cmd_wrk.Dispose();
|
sqlconn.Dispose();
|
ls_error_memo = " " + seq + ".13 更新工作状态异常 [asr_wrk_mast] !工作号:" + li_wrk_no.ToString() + " 时间:" + ldt_date.ToString() + " 异常:" + t.Message;
|
DisplayInfo("", "E", ls_error_memo);
|
goto re;
|
}
|
}
|
else if (li_wrk_sts == 14)
|
{
|
switch (li_io_type)
|
{
|
#region 全板出库
|
case 101:
|
///根据工作号,查询工作明细档商品编号
|
string sqlWaitIn = "";
|
sql = "select lgnum,tbnum,tbpos,matnr from asr_wrk_detl where wrk_no=" + li_wrk_no;
|
DataView dv_wrkdetl = Common.ExecAsrsSelect(sql);
|
if (dv_wrkdetl == null || dv_wrkdetl.Count < 1)
|
{
|
DisplayInfo("", "E", " " + seq + ".14 工作明细档 [asr_wrk_detl] 没有资料!");
|
goto re;
|
}
|
foreach (DataRowView drow in dv_wrkdetl)
|
{
|
string lgnum = drow[0].ToString();
|
string tbnum = drow[1].ToString();
|
string tbpos = drow[2].ToString();
|
string matnr = drow[3].ToString();
|
sqlWaitIn += " update cust_wait_pakout set io_status='Y' where lgnum='" + lgnum + "' and tanum=" + tbnum + " and tapos=" + tbpos + " and vlpla=" + ls_source_loc_no + ";";
|
}
|
|
sql = "delete from asr_loc_detl where loc_no ='" + ls_source_loc_no + "';";
|
sql += " update asr_loc_mast set loc_sts='O',io_time='" + ldt_date + "',barcode=null";
|
sql += " where loc_no='" + ls_source_loc_no + "' and loc_sts = 'R';";
|
sql += sqlWaitIn;
|
SqlCommand cmd_101 = new SqlCommand(sql, sqlconn);
|
cmd_101.Transaction = sqltrans;
|
try
|
{
|
cmd_101.ExecuteNonQuery();
|
}
|
catch (SqlException t)
|
{
|
sqltrans.Rollback();
|
cmd_101.Dispose();
|
sqlconn.Dispose();
|
ls_error_memo = " " + seq + ".15 出库-更新库位状态异常[asr_loc_mast] !库位号:" + ls_source_loc_no + " 异常:" + t.Message;
|
DisplayInfo("", "E", ls_error_memo);
|
goto re;
|
}
|
break;
|
#endregion
|
#region 空板出库
|
case 110:
|
sql = "update asr_loc_mast set loc_sts='O',io_time='" + ldt_date + "'";
|
sql += " where loc_no='" + ls_source_loc_no + "' and loc_sts = 'R'";
|
SqlCommand cmd_110 = new SqlCommand(sql, sqlconn);
|
cmd_110.Transaction = sqltrans;
|
try
|
{
|
cmd_110.ExecuteNonQuery();
|
}
|
catch (SqlException t)
|
{
|
sqltrans.Rollback();
|
cmd_110.Dispose();
|
sqlconn.Dispose();
|
ls_error_memo = " " + seq + ".16 出库-更新库位状态异常[asr_loc_mast] !库位号:" + ls_source_loc_no + " 异常:" + t.Message;
|
DisplayInfo("", "E", ls_error_memo);
|
goto re;
|
}
|
break;
|
#endregion
|
}
|
|
sql = "update asr_wrk_mast set wrk_sts=15,modi_time='" + ldt_date + "' where wrk_no=" + li_wrk_no + "; ";
|
SqlCommand cmd_wrk1 = new SqlCommand(sql, sqlconn);
|
cmd_wrk1.Transaction = sqltrans;
|
try
|
{
|
cmd_wrk1.ExecuteNonQuery();
|
}
|
catch (SqlException t)
|
{
|
sqltrans.Rollback();
|
cmd_wrk1.Dispose();
|
sqltrans.Dispose();
|
ls_error_memo = " " + seq + ".17 更新工作状态异常 [asr_wrk_mast] !工作号:" + li_wrk_no.ToString() + " 异常:" + t.Message;
|
DisplayInfo("", "E", ls_error_memo);
|
goto re;
|
}
|
}
|
sqltrans.Commit();
|
sqlconn.Dispose();
|
}
|
}
|
catch (SqlException t)
|
{
|
ls_error_memo = " " + seq + ".18 处理工作档数据失败! 异常:" + t.Message;
|
DisplayInfo("", "E", ls_error_memo);
|
}
|
|
re:
|
if (ls_error_memo != "")
|
{
|
try
|
{
|
bool bl = Common.ExecAsrsModify("update dbo.asr_wrk_mast set upd_mk ='X',error_time='" + ldt_date + "',error_memo='" + ls_error_memo + "' where wrk_no =" + li_wrk_no + "");
|
}
|
catch (SqlException t)
|
{
|
ls_error_memo = " " + seq + ".19 更新工作主档状态 [asr_wrk_mast] 异常! 工作号:" + li_wrk_no.ToString() + " 时间:" + ldt_date.ToString();
|
DisplayInfo("", "E", ls_error_memo);
|
return;
|
}
|
|
}
|
}
|
|
/// <summary>
|
/// 处理工作档中工作状态为5和15的资料,转历史档
|
/// </summary>
|
public void ProcWorkToLog(string seq)
|
{
|
string ls_error_memo = "";
|
DisplayInfo(seq, "N", "--处理工作档转历史档......");
|
int wrkno = 0;
|
try
|
{
|
string sql = "select top 1 wrk_no from asr_wrk_mast where wrk_sts=5 ";// or wrk_sts=15 or (wrk_sts=15 and io_type=110) ";
|
sql += " or (wrk_sts=15 and ove_mk='Y' and wrk_no not in (select wrk_no from asr_bas_devp))";
|
sql += " or (wrk_sts=15 and dateadd(mi,15,crn_end_time) <= getdate() and wrk_no not in (select wrk_no from asr_bas_devp))";
|
sql += " or (wrk_sts=15 and crn_end_time is null and wrk_no not in (select wrk_no from asr_bas_devp)) ";
|
//sql += " or (wrk_sts=15 and dateadd(day,1,io_time) <= getdate() and crn_end_time is null) ";
|
//sql += " or (wrk_sts=15 and dateadd(hh,1,crn_end_time) <= getdate()) ";
|
//sql += " or (wrk_sts=15 and wrk_no not in (select wrk_no from asr_bas_devp))";
|
sql += " order by io_time,wrk_no asc";
|
DataView dv = Common.ExecAsrsSelect(sql);
|
if (dv.Count <= 0)
|
{
|
DisplayInfo("", "N", " " + seq + ".1 工作档 [asr_wrk_mast] 没有资料处理!");
|
return;
|
}
|
foreach (DataRowView drow in dv)
|
{
|
wrkno = int.Parse(drow[0].ToString());
|
}
|
DisplayInfo("", "P", " " + seq + ".2 正在处理转历史档" + wrkno);
|
|
sql = "insert into asr_wrk_mast_log select * from asr_wrk_mast where wrk_no=" + wrkno + "; ";
|
//sql += " and wrk_no not in (select wrk_no from dbo.asr_bas_devp) ";
|
//sql += " and wrk_no not in (select wrk_no from dbo.asr_bas_crnp);";
|
sql += " delete from asr_wrk_mast where wrk_no=" + wrkno + "; ";
|
sql += " insert into asr_wrk_detl_log select * from asr_wrk_detl where wrk_no=" + wrkno + "; ";
|
sql += " delete from asr_wrk_detl where wrk_no=" + wrkno + "; ";
|
//sql += " update asr_wrk_mast set wrk_sts=16 where wrk_sts=15 and dateadd(day,1,io_time) <= getdate();";
|
//sql += " and wrk_no not in (select wrk_no from dbo.asr_bas_devp) ";
|
//sql += " and wrk_no not in (select wrk_no from dbo.asr_bas_crnp);";
|
|
SqlConnection sqlconn = new SqlConnection(Common.sqlcon);
|
sqlconn.Open();
|
SqlTransaction sqltrans = sqlconn.BeginTransaction();
|
SqlCommand sqlcmd = new SqlCommand();
|
sqlcmd.Transaction = sqltrans;
|
string[] arraySql = sql.Split(';');
|
try
|
{
|
for (int i = 0; i < arraySql.Length; i++)
|
{
|
if (arraySql[i] != "")
|
{
|
sqlcmd.CommandText = arraySql[i];
|
sqlcmd.Connection = sqlconn;
|
sqlcmd.Transaction = sqltrans;
|
int result = sqlcmd.ExecuteNonQuery();
|
}
|
}
|
sqltrans.Commit();
|
}
|
catch (SqlException t)
|
{
|
sqltrans.Rollback();
|
ls_error_memo = " " + seq + ".3 工作档[asr_wrk_mast]转历史档错误 ! 异常:" + t.Message;
|
DisplayInfo("", "E", ls_error_memo);
|
}
|
finally
|
{
|
sqlcmd.Dispose();
|
sqltrans.Dispose();
|
sqlconn.Dispose();
|
}
|
return;
|
}
|
catch (Exception t)
|
{
|
ls_error_memo = " " + seq + ".4 处理工作档转历史档失败! 异常:" + t.Message;
|
DisplayInfo("", "E", ls_error_memo);
|
}
|
}
|
|
/// <summary>
|
/// 处理堆垛机、输送机命令,转历史档
|
/// </summary>
|
public void ProcDevCommandToLog(string seq)
|
{
|
string ls_error_memo = "";
|
DisplayInfo(seq, "N", "--处理堆垛机&PLC命令转历史档......");
|
try
|
{
|
string sql = "insert into asr_stk_hplc ";
|
sql += " select * from asr_stk_plcm where dateadd(day,7,appe_time) <= getdate();";
|
sql += " delete from asr_stk_plcm where dateadd(day,7,appe_time) <= getdate();";
|
SqlConnection sqlconn = new SqlConnection(Common.sqlcon);
|
sqlconn.Open();
|
SqlTransaction sqltrans = sqlconn.BeginTransaction();
|
SqlCommand sqlcmd = new SqlCommand();
|
sqlcmd.Transaction = sqltrans;
|
string[] arraySql = sql.Split(';');
|
try
|
{
|
for (int i = 0; i < arraySql.Length; i++)
|
{
|
if (arraySql[i] != "")
|
{
|
sqlcmd.CommandText = arraySql[i];
|
sqlcmd.Connection = sqlconn;
|
sqlcmd.Transaction = sqltrans;
|
int result = sqlcmd.ExecuteNonQuery();
|
}
|
}
|
sqltrans.Commit();
|
}
|
catch (SqlException t)
|
{
|
sqltrans.Rollback();
|
//sqlcommon.Close();
|
ls_error_memo = " " + seq + ".1 堆垛机&PLC命令转历史档错误 ! 异常:" + t.Message;
|
DisplayInfo("", "E", ls_error_memo);
|
}
|
finally
|
{
|
sqlcmd.Dispose();
|
sqltrans.Dispose();
|
sqlconn.Dispose();
|
}
|
return;
|
}
|
catch (Exception t)
|
{
|
ls_error_memo = " " + seq + ".2 堆垛机&PLC命令转历史档失败! 异常:" + t.Message;
|
DisplayInfo("", "E", ls_error_memo);
|
}
|
}
|
|
/// <summary>
|
/// 转已完成物料信息到历史档
|
/// </summary>
|
public void ProcMatCodeToLog(string seq)
|
{
|
string ls_error_memo = "", mat_no = "";
|
DisplayInfo(seq, "N", "--处理已完成物料数据转历史档......");
|
try
|
{
|
string condition = " and mat_no not in (select mat_no from asr_loc_detl) and mat_no not in (select mat_no from asr_wrk_detl) ";
|
//condition += " and mat_no not in (select mat_no from cust_wait_pakout) ";
|
string sql0 = " select top 1 mat_no from bas_mat_code where status>1 " + condition + " ;";
|
DataView dv = Common.ExecAsrsSelect(sql0);
|
if (dv.Count <= 0)
|
{
|
DisplayInfo("", "N", " " + seq + ".1 物料档 [bas_mat_code] 没有资料处理!");
|
return;
|
}
|
|
foreach (DataRowView drow in dv)
|
{
|
mat_no = drow[0].ToString();
|
}
|
|
string sql = "delete from bas_mat_code_log where mat_no='" + mat_no + "';";
|
sql += " insert into bas_mat_code_log ";
|
sql += " select * from bas_mat_code where status>1 " + condition + " ;";
|
sql += " delete from bas_mat_code where status>1 " + condition + " ;";
|
sql += " delete from bas_mat_code where status=0 and dateadd(hh,2,modi_time) <= getdate() " + condition + " ;";
|
|
SqlConnection sqlconn = new SqlConnection(Common.sqlcon);
|
sqlconn.Open();
|
SqlTransaction sqltrans = sqlconn.BeginTransaction();
|
SqlCommand sqlcmd = new SqlCommand();
|
sqlcmd.Transaction = sqltrans;
|
string[] arraySql = sql.Split(';');
|
try
|
{
|
for (int i = 0; i < arraySql.Length; i++)
|
{
|
if (arraySql[i] != "")
|
{
|
sqlcmd.CommandText = arraySql[i];
|
sqlcmd.Connection = sqlconn;
|
sqlcmd.Transaction = sqltrans;
|
int result = sqlcmd.ExecuteNonQuery();
|
}
|
}
|
sqltrans.Commit();
|
}
|
catch (SqlException t)
|
{
|
sqltrans.Rollback();
|
//sqlcommon.Close();
|
ls_error_memo = " " + seq + ".1 已完成物料数据转历史档错误 ! 异常:" + t.Message;
|
DisplayInfo("", "E", ls_error_memo);
|
}
|
finally
|
{
|
sqlcmd.Dispose();
|
sqlconn.Dispose();
|
}
|
return;
|
}
|
catch (Exception t)
|
{
|
ls_error_memo = " " + seq + ".2 已完成物料数据转历史档失败! 异常:" + t.Message;
|
DisplayInfo("", "E", ls_error_memo);
|
}
|
}
|
|
/// <summary>
|
/// 转已完成待出库档信息到历史档
|
/// </summary>
|
public void ProcWaitOutToLog(string seq)
|
{
|
string ls_error_memo = "", sql = "";
|
DisplayInfo(seq, "N", "--处理已完成入/出库档数据转历史档......");
|
try
|
{
|
string sql0 = " select lgnum,tbnum,tbpos from cust_wait_pakin where io_status='F';";
|
DataView dv = Common.ExecAsrsSelect(sql0);
|
if (dv == null || dv.Count <= 0)
|
{
|
DisplayInfo("", "N", " " + seq + ".1 入库档 [cust_wait_pakin] 没有资料处理!");
|
}
|
else
|
{
|
foreach (DataRowView drow in dv)
|
{
|
string lgnum = drow[0].ToString();
|
string tanum = drow[1].ToString();
|
string tapos = drow[2].ToString();
|
sql = "insert into cust_wait_pakin_log ";
|
sql += " select * from cust_wait_pakin where lgnum='" + lgnum + "' and tbnum=" + tanum + " and tbpos=" + tapos + "; ";
|
sql += " delete from cust_wait_pakin where lgnum='" + lgnum + "' and tbnum=" + tanum + " and tbpos=" + tapos + "; ";
|
}
|
}
|
|
sql0 = " select lgnum,tanum,tapos from cust_wait_pakout where io_status='F';";
|
dv = Common.ExecAsrsSelect(sql0);
|
if (dv == null || dv.Count <= 0)
|
{
|
DisplayInfo("", "N", " " + seq + ".2 出库档 [cust_wait_pakout] 没有资料处理!");
|
}
|
else
|
{
|
foreach (DataRowView drow in dv)
|
{
|
string lgnum = drow[0].ToString();
|
string tanum = drow[1].ToString();
|
string tapos = drow[2].ToString();
|
sql = "insert into cust_wait_pakout_log ";
|
sql += " select * from cust_wait_pakout where lgnum='" + lgnum + "' and tanum=" + tanum + " and tapos=" + tapos + "; ";
|
sql += " delete from cust_wait_pakout where lgnum='" + lgnum + "' and tanum=" + tanum + " and tapos=" + tapos + "; ";
|
}
|
}
|
|
sql0 = " select lgnum,ivnum,ivpos from cust_wait_check where io_status='Y';";
|
dv = Common.ExecAsrsSelect(sql0);
|
if (dv == null || dv.Count <= 0)
|
{
|
DisplayInfo("", "N", " " + seq + ".3 盘点档 [cust_wait_check] 没有资料处理!");
|
}
|
else
|
{
|
foreach (DataRowView drow in dv)
|
{
|
string lgnum = drow[0].ToString();
|
string tanum = drow[1].ToString();
|
string tapos = drow[2].ToString();
|
sql = "insert into cust_wait_check_log ";
|
sql += " select * from cust_wait_check where lgnum='" + lgnum + "' and ivnum=" + tanum + " and ivpos=" + tapos + "; ";
|
sql += " delete from cust_wait_check where lgnum='" + lgnum + "' and ivnum=" + tanum + " and ivpos=" + tapos + "; ";
|
}
|
}
|
|
if (sql == "")
|
{
|
return;
|
}
|
SqlConnection sqlconn1 = new SqlConnection(Common.sqlcon);
|
sqlconn1.Open();
|
SqlTransaction sqltrans1 = sqlconn1.BeginTransaction();
|
SqlCommand sqlcmd1 = new SqlCommand();
|
sqlcmd1.Transaction = sqltrans1;
|
string[] arraySql1 = sql.Split(';');
|
try
|
{
|
for (int i = 0; i < arraySql1.Length; i++)
|
{
|
if (arraySql1[i] != "")
|
{
|
sqlcmd1.CommandText = arraySql1[i];
|
sqlcmd1.Connection = sqlconn1;
|
sqlcmd1.Transaction = sqltrans1;
|
int result = sqlcmd1.ExecuteNonQuery();
|
}
|
}
|
sqltrans1.Commit();
|
}
|
catch (SqlException t)
|
{
|
sqltrans1.Rollback();
|
//sqlcommon.Close();
|
ls_error_memo = " " + seq + ".1 已完成物料数据转历史档错误 ! 异常:" + t.Message;
|
DisplayInfo("", "E", ls_error_memo);
|
}
|
finally
|
{
|
sqlcmd1.Dispose();
|
sqlconn1.Dispose();
|
}
|
|
return;
|
}
|
catch (Exception t)
|
{
|
ls_error_memo = " " + seq + ".2 已完成出库数据转历史档失败! 异常:" + t.Message;
|
DisplayInfo("", "E", ls_error_memo);
|
}
|
}
|
|
/// <summary>
|
/// 删除超过半年的历史档信息
|
/// </summary>
|
public void ProcOverYearLog(string seq)
|
{
|
string ls_error_memo = "";
|
DisplayInfo(seq, "N", "--处理超过半年历史档信息......");
|
try
|
{
|
string sql = "delete from asr_stk_hplc where dateadd(day,180,appe_time) <= getdate(); ";
|
sql += " delete from sys_tts_mast where dateadd(day,180,modi_time) <= getdate();";
|
sql += " delete from asr_wrk_detl_log where dateadd(day,360,appe_time) <= getdate();";
|
sql += " delete from asr_wrk_mast_log where dateadd(day,360,appe_time) <= getdate();";
|
sql += " delete from cust_wait_pakout_log where dateadd(day,360,appe_time) <= getdate();";
|
sql += " delete from bas_mat_code_log where dateadd(day,360,appe_time) <= getdate();";
|
SqlConnection sqlconn = new SqlConnection(Common.sqlcon);
|
sqlconn.Open();
|
SqlTransaction sqltrans = sqlconn.BeginTransaction();
|
SqlCommand sqlcmd = new SqlCommand();
|
sqlcmd.Transaction = sqltrans;
|
string[] arraySql = sql.Split(';');
|
try
|
{
|
for (int i = 0; i < arraySql.Length; i++)
|
{
|
if (arraySql[i] != "")
|
{
|
sqlcmd.CommandText = arraySql[i];
|
sqlcmd.Connection = sqlconn;
|
sqlcmd.Transaction = sqltrans;
|
int result = sqlcmd.ExecuteNonQuery();
|
}
|
}
|
sqltrans.Commit();
|
}
|
catch (SqlException t)
|
{
|
sqltrans.Rollback();
|
//sqlcommon.Close();
|
ls_error_memo = " " + seq + ".1 堆垛机&PLC命令转历史档错误 ! 异常:" + t.Message;
|
DisplayInfo("", "E", ls_error_memo);
|
}
|
finally
|
{
|
sqlcmd.Dispose();
|
sqltrans.Dispose();
|
sqlconn.Dispose();
|
}
|
return;
|
}
|
catch (Exception t)
|
{
|
ls_error_memo = " " + seq + ".2 堆垛机&PLC命令转历史档失败! 异常:" + t.Message;
|
DisplayInfo("", "E", ls_error_memo);
|
}
|
}
|
|
/// <summary>
|
/// 处理库存档中库位状态为D O但是有明细的数据,清空明细
|
/// </summary>
|
private void ProcErrorStockData(string seq)
|
{
|
string ls_error_memo = "";
|
string loc_no = "", mat_no = "";
|
DisplayInfo(seq, "N", "--处理库存档中异常库存信息......");
|
try
|
{
|
string sqlDetl = "delete from asr_loc_detl where anfme <= 0;";
|
Common.ExecAsrsModify(sqlDetl);
|
|
string sql = "SELECT a.loc_no,b.matnr FROM asr_loc_mast a,asr_loc_detl b where a.loc_no=b.loc_no ";
|
sql += " and (a.loc_sts='O' or a.loc_sts='D') ";
|
|
DataView dv_stkDetl = Common.ExecAsrsSelect(sql);
|
if (dv_stkDetl == null || dv_stkDetl.Count < 1)
|
{
|
return;
|
}
|
foreach (DataRowView drow_stkDetl in dv_stkDetl)
|
{
|
loc_no = drow_stkDetl[0].ToString();
|
mat_no = drow_stkDetl[1].ToString();
|
string sql0 = " delete from asr_loc_detl where loc_no='" + loc_no + "'; ";
|
SqlConnection sqlconn = new SqlConnection(Common.sqlcon);
|
sqlconn.Open();
|
SqlTransaction sqltrans = sqlconn.BeginTransaction();
|
SqlCommand sqlcmd = new SqlCommand();
|
sqlcmd.Transaction = sqltrans;
|
string[] arraySql = sql0.Split(';');
|
try
|
{
|
for (int i = 0; i < arraySql.Length; i++)
|
{
|
if (arraySql[i] != "")
|
{
|
sqlcmd.CommandText = arraySql[i];
|
sqlcmd.Connection = sqlconn;
|
sqlcmd.Transaction = sqltrans;
|
int result = sqlcmd.ExecuteNonQuery();
|
}
|
}
|
sqltrans.Commit();
|
}
|
catch (SqlException t)
|
{
|
sqltrans.Rollback();
|
//sqlcommon.Close();
|
ls_error_memo = " " + seq + ".1 处理库存档中异常库存信息错误 ! 异常:" + t.Message;
|
DisplayInfo("", "E", ls_error_memo);
|
}
|
finally
|
{
|
sqlcmd.Dispose();
|
sqltrans.Dispose();
|
sqlconn.Dispose();
|
}
|
}
|
return;
|
}
|
catch (Exception t)
|
{
|
ls_error_memo = " " + seq + ".2 处理库存档中异常库存信息失败! 异常:" + t.Message;
|
DisplayInfo("", "E", ls_error_memo);
|
}
|
}
|
#endregion
|
|
/// <summary>
|
/// 回报主线程
|
/// </summary>
|
private void ThreadTask()
|
{
|
DisplayInfo("", "N", "---------------系统运行中-------------");
|
while (true)
|
{
|
try
|
{
|
//生成出库工作档
|
ProcOutToWorkData("1");
|
ProcLocToWorkData("11");
|
|
//处理工作档状态4、14、6的资料
|
ProcWorkMast("2"); // done
|
|
//工作档转历史档 // done
|
ProcWorkToLog("3");
|
|
//堆垛机&PLC命令转历史档
|
ProcDevCommandToLog("4"); // done
|
|
//转已完成物料信息到历史档
|
//ProcMatCodeToLog("5");
|
//转出库完成待出库档数据到历史档
|
ProcCheckToWorkData("5");
|
|
//转出库完成待出库档数据到历史档
|
ProcWaitOutToLog("6"); // done
|
|
//删除超过半年历史档
|
ProcOverYearLog("7"); // done
|
|
ProcErrorStockData("8"); // done
|
|
Thread.Sleep(3000);
|
}
|
catch (Exception em)
|
{
|
Common.WriteLogFile("WcsError", "UpdateThread/ThreadTask--回报主线程循环出错:" + em.Message);
|
}
|
}
|
}
|
}
|
}
|