From e2c30d013ff3949f000b94f6e0376afc886b301b Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期五, 03 七月 2020 15:38:08 +0800
Subject: [PATCH] #

---
 src/main/webapp/static/js/trayCode/trayCode.js               |    4 
 src/main/resources/UpdateThread.cs                           | 1732 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/main/webapp/views/trayCode/trayCode.html                 |    4 
 src/main/java/com/zy/asrs/controller/TrayCodeController.java |    2 
 4 files changed, 1,737 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/TrayCodeController.java b/src/main/java/com/zy/asrs/controller/TrayCodeController.java
index 1f4dbe2..555c80d 100644
--- a/src/main/java/com/zy/asrs/controller/TrayCodeController.java
+++ b/src/main/java/com/zy/asrs/controller/TrayCodeController.java
@@ -132,7 +132,7 @@
     @ManagerAuth
     public R trayCodeLatest() {
         List<TrayCode> latest = trayCodeService.selectList(new EntityWrapper<TrayCode>().orderBy("id", false));
-        return R.ok().add(latest.isEmpty()?"100001": Integer.parseInt(latest.get(0).getTrayNo())+1);
+        return R.ok().add(latest.isEmpty()?"10000001": Integer.parseInt(latest.get(0).getTrayNo())+1);
     }
 
     @RequestMapping(value = "/trayCode/print/preview")
diff --git a/src/main/resources/UpdateThread.cs b/src/main/resources/UpdateThread.cs
new file mode 100644
index 0000000..c9757b4
--- /dev/null
+++ b/src/main/resources/UpdateThread.cs
@@ -0,0 +1,1732 @@
+锘縰sing 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", " --澶勭悊鍑哄簱閫氱煡妗o紝鐢熸垚鍑哄簱宸ヤ綔妗�......");
+
+            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 姝e湪澶勭悊寰呭嚭搴撹祫鏂�!搴撲綅:" + 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 鏇存柊鍑哄簱妗eけ璐�!搴撲綅锛�" + ls_locno;
+                    DisplayInfo("", "E", ls_error_memo);
+                }
+            }
+            catch (Exception em)
+            {
+                ls_error_memo = "   " + seq + ".6 澶勭悊寰呭鐞嗘。鐢熸垚鍑哄簱宸ヤ綔妗eけ璐ワ細" + 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", " --澶勭悊鍑哄簱閫氱煡妗o紝鐢熸垚鍑哄簱宸ヤ綔妗�......");
+
+            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 鍑哄簱閫氱煡妗f簮搴撲綅涓虹┖[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 姝e湪澶勭悊寰呭嚭搴撹祫鏂�!搴撲綅:" + 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 姝e湪澶勭悊寰呭嚭搴撹祫鏂�!搴撲綅:" + 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 鏇存柊鍑哄簱妗eけ璐�!搴撲綅锛�" + ls_slocno;
+                    DisplayInfo("", "E", ls_error_memo);
+                }
+            }
+            catch (Exception em)
+            {
+                ls_error_memo = "   " + seq + ".13 澶勭悊寰呭鐞嗘。鐢熸垚鍑哄簱宸ヤ綔妗eけ璐ワ細" + 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", " --澶勭悊鐩樼偣閫氱煡妗o紝鐢熸垚鐩樼偣宸ヤ綔妗�......");
+
+            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 姝e湪澶勭悊寰呯洏鐐硅祫鏂�!搴撲綅:" + 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 鏇存柊鐩樼偣妗eけ璐�!搴撲綅锛�" + ls_locno;
+                    DisplayInfo("", "E", ls_error_memo);
+                }
+            }
+            catch (Exception em)
+            {
+                ls_error_memo = "   " + seq + ".5 澶勭悊鐩樼偣閫氱煡妗g敓鎴愮洏鐐瑰伐浣滄。澶辫触锛�" + em.Message;
+                DisplayInfo("", "E", ls_error_memo);
+            }
+        }
+
+        /// <summary>
+        /// 澶勭悊宸ヤ綔妗d腑宸ヤ綔鐘舵�佷负4鍜�14銆�6鐨勮祫鏂欙紝鏇存柊搴撳瓨妗c�佸緟澶勭悊妗�
+        /// </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;
+                                }
+
+                                ///鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗g墿鏂欑紪鐮�
+                                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 鎷f枡鍐嶅叆搴�
+                            case 53:
+                                ///鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗g墿鏂欑紪鐮�
+                                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 鎷f枡锛嶆洿鏂板簱瀛樺紓甯� [asr_loc_mast] !宸ヤ綔鍙�:" + li_wrk_no.ToString() + "  搴撲綅鍙�:" + ls_loc_no + " !" + t.Message;
+                                    DisplayInfo("", "E", ls_error_memo);
+                                    goto re;
+                                }
+                                break;
+                            #endregion
+                            #region 骞舵澘鍐嶅叆搴�
+                            case 54:
+                                ///鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗g墿鏂欑紪鐮�
+                                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:
+                                ///鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗g墿鏂欑紪鐮�
+                                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:
+                                ///鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗g墿鏂欑紪鐮�
+                                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 澶勭悊宸ヤ綔妗f暟鎹け璐�! 寮傚父:" + 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>
+        /// 澶勭悊宸ヤ綔妗d腑宸ヤ綔鐘舵�佷负5鍜�15鐨勮祫鏂欙紝杞巻鍙叉。
+        /// </summary>
+        public void ProcWorkToLog(string seq)
+        {
+            string ls_error_memo = "";
+            DisplayInfo(seq, "N", "--澶勭悊宸ヤ綔妗h浆鍘嗗彶妗�......");
+            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 姝e湪澶勭悊杞巻鍙叉。" + 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 澶勭悊宸ヤ綔妗h浆鍘嗗彶妗eけ璐�! 寮傚父:" + 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 宸插畬鎴愮墿鏂欐暟鎹浆鍘嗗彶妗i敊璇� ! 寮傚父:" + t.Message;
+                    DisplayInfo("", "E", ls_error_memo);
+                }
+                finally
+                {
+                    sqlcmd.Dispose();
+                    sqlconn.Dispose();
+                }
+                return;
+            }
+            catch (Exception t)
+            {
+                ls_error_memo = "   " + seq + ".2 宸插畬鎴愮墿鏂欐暟鎹浆鍘嗗彶妗eけ璐�! 寮傚父:" + t.Message;
+                DisplayInfo("", "E", ls_error_memo);
+            }
+        }
+
+        /// <summary>
+        /// 杞凡瀹屾垚寰呭嚭搴撴。淇℃伅鍒板巻鍙叉。
+        /// </summary>
+        public void ProcWaitOutToLog(string seq)
+        {
+            string ls_error_memo = "", sql = "";
+            DisplayInfo(seq, "N", "--澶勭悊宸插畬鎴愬叆/鍑哄簱妗f暟鎹浆鍘嗗彶妗�......");
+            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 宸插畬鎴愮墿鏂欐暟鎹浆鍘嗗彶妗i敊璇� ! 寮傚父:" + t.Message;
+                    DisplayInfo("", "E", ls_error_memo);
+                }
+                finally
+                {
+                    sqlcmd1.Dispose();
+                    sqlconn1.Dispose();
+                }
+
+                return;
+            }
+            catch (Exception t)
+            {
+                ls_error_memo = "   " + seq + ".2 宸插畬鎴愬嚭搴撴暟鎹浆鍘嗗彶妗eけ璐�! 寮傚父:" + t.Message;
+                DisplayInfo("", "E", ls_error_memo);
+            }
+        }
+
+        /// <summary>
+        /// 鍒犻櫎瓒呰繃鍗婂勾鐨勫巻鍙叉。淇℃伅
+        /// </summary>
+        public void ProcOverYearLog(string seq)
+        {
+            string ls_error_memo = "";
+            DisplayInfo(seq, "N", "--澶勭悊瓒呰繃鍗婂勾鍘嗗彶妗d俊鎭�......");
+            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腑搴撲綅鐘舵�佷负D O浣嗘槸鏈夋槑缁嗙殑鏁版嵁锛屾竻绌烘槑缁�
+        /// </summary>
+        private void ProcErrorStockData(string seq)
+        {
+            string ls_error_memo = "";
+            string loc_no = "", mat_no = "";
+            DisplayInfo(seq, "N", "--澶勭悊搴撳瓨妗d腑寮傚父搴撳瓨淇℃伅......");
+            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 澶勭悊搴撳瓨妗d腑寮傚父搴撳瓨淇℃伅閿欒 ! 寮傚父:" + t.Message;
+                        DisplayInfo("", "E", ls_error_memo);
+                    }
+                    finally
+                    {
+                        sqlcmd.Dispose();
+                        sqltrans.Dispose();
+                        sqlconn.Dispose();
+                    }
+                }
+                return;
+            }
+            catch (Exception t)
+            {
+                ls_error_memo = "   " + seq + ".2 澶勭悊搴撳瓨妗d腑寮傚父搴撳瓨淇℃伅澶辫触! 寮傚父:" + t.Message;
+                DisplayInfo("", "E", ls_error_memo);
+            }
+        }
+        #endregion
+
+        /// <summary>
+        /// 鍥炴姤涓荤嚎绋�
+        /// </summary>
+        private void ThreadTask()
+        {
+            DisplayInfo("", "N", "---------------绯荤粺杩愯涓�-------------");
+            while (true)
+            {
+                try
+                {
+                    //鐢熸垚鍑哄簱宸ヤ綔妗�
+                    ProcOutToWorkData("1");
+                    ProcLocToWorkData("11");
+
+                    //澶勭悊宸ヤ綔妗g姸鎬�4銆�14銆�6鐨勮祫鏂�
+                    ProcWorkMast("2");
+
+                    //宸ヤ綔妗h浆鍘嗗彶妗�
+                    ProcWorkToLog("3");
+
+                    //鍫嗗灈鏈�&PLC鍛戒护杞巻鍙叉。
+                    ProcDevCommandToLog("4");
+
+                    //杞凡瀹屾垚鐗╂枡淇℃伅鍒板巻鍙叉。
+                    //ProcMatCodeToLog("5");
+                    //杞嚭搴撳畬鎴愬緟鍑哄簱妗f暟鎹埌鍘嗗彶妗�
+                    ProcCheckToWorkData("5");
+
+                    //杞嚭搴撳畬鎴愬緟鍑哄簱妗f暟鎹埌鍘嗗彶妗�
+                    ProcWaitOutToLog("6");
+
+                    //鍒犻櫎瓒呰繃鍗婂勾鍘嗗彶妗�
+                    ProcOverYearLog("7");
+
+                    ProcErrorStockData("8");
+
+                    Thread.Sleep(3000);
+                }
+                catch (Exception em)
+                {
+                    Common.WriteLogFile("WcsError", "UpdateThread/ThreadTask--鍥炴姤涓荤嚎绋嬪惊鐜嚭閿�:" + em.Message);
+                }
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/main/webapp/static/js/trayCode/trayCode.js b/src/main/webapp/static/js/trayCode/trayCode.js
index e9aa0d6..bc70c7a 100644
--- a/src/main/webapp/static/js/trayCode/trayCode.js
+++ b/src/main/webapp/static/js/trayCode/trayCode.js
@@ -309,10 +309,10 @@
                     for (let i=0;i<res.data.length;i++){
                         if (data.field.type === '1') {
                             res.data[i]["barcodeUrl"]=baseUrl+"/file/barcode/qrcode/auth?" +
-                                "type="+data.field.type+"&param="+res.data[i].item+"&width="+200+"&height="+100;
+                                "type="+data.field.type+"&param="+res.data[i].item+"&width="+200+"&height="+90;
                         } else {
                             res.data[i]["barcodeUrl"]=baseUrl+"/file/barcode/qrcode/auth?" +
-                                "type="+data.field.type+"&param="+res.data[i].item+"&width="+400+"&height="+200;
+                                "type="+data.field.type+"&param="+res.data[i].item+"&width="+400+"&height="+180;
                         }
                     }
                     var tpl = $('#trayCodeTemplate').html();
diff --git a/src/main/webapp/views/trayCode/trayCode.html b/src/main/webapp/views/trayCode/trayCode.html
index ea23857..e619fa8 100644
--- a/src/main/webapp/views/trayCode/trayCode.html
+++ b/src/main/webapp/views/trayCode/trayCode.html
@@ -82,7 +82,7 @@
     <table class="layui-hide" id="trayCode" lay-filter="trayCode"></table>
 </div>
 
-<div id="printBox" style="display: block; height: 150px; width: 300px"></div>
+<div id="printBox" style="display: block; height: 150px; width: 300px;padding-left: 0px"></div>
 
 <script type="text/html" id="toolbar">
     <div class="layui-btn-container">
@@ -137,7 +137,7 @@
 </body>
 <script type="text/template" id="trayCodeTemplate">
     {{#each data}}
-    <img class="template-code" src="{{this.barcodeUrl}}" width="90%">
+    <img class="template-code" src="{{this.barcodeUrl}}" width="100%">
     <div style="letter-spacing: 2px;margin-top: 1px; text-align: center">
         <span>{{this.item}}</span>
     </div>

--
Gitblit v1.9.1