Browse Source

修改异步上传接口,标签补打BUG

callm 1 day ago
parent
commit
55d8d51374

+ 7 - 2
UAS_MES_HYSX/FunctionCode/Make/Make_RePrintLabel.cs

@@ -163,7 +163,12 @@ namespace UAS_MES_NEW.Make
                     //    return;
                     //}
                     //界面赋值
-                    formValue = (DataTable)dh.ExecuteSql("select ms_sncode,ms_makecode,pr_code,pr_detail from makeserial left join product on MS_PRODCODE=pr_code where ms_id='" + ms_id + "'", "select");
+                    formValue = (DataTable)dh.ExecuteSql("select ms_prodcode,ms_sncode,ms_makecode,pr_code,pr_detail from makeserial left join product on MS_PRODCODE=pr_code where ms_id='" + ms_id + "'", "select");
+                    if (dh.getRowCount("label", "la_prodcode='" + formValue.Rows[0]["ms_prodcode"].ToString() + "'") == 0)
+                    {
+                        OperateResult.AppendText(">>序列号对" + formValue.Rows[0]["ms_prodcode"].ToString() + "应产品未维护标签\n", Color.Red);
+                        return;
+                    }
                     BaseUtil.SetFormValue(this.Controls, formValue);
                     //无值,可补打
                     inputValue.Text = formValue.Rows[0]["ms_sncode"].ToString();
@@ -226,7 +231,7 @@ namespace UAS_MES_NEW.Make
                 }
                 else if (Pallte.Checked)
                 {
-                    dt = (DataTable)dh.ExecuteSql("select pa_outboxcode from package where pa_outboxcode='"+inputText.Text+"' or pa_zxcode='"+inputText.Text+"'", "select");
+                    dt = (DataTable)dh.ExecuteSql("select pa_outboxcode from package where pa_outboxcode='" + inputText.Text + "' or pa_zxcode='" + inputText.Text + "'", "select");
                     if (dt.Rows.Count > 0)
                     {
                         inputText.Text = dt.Rows[0]["pa_outboxcode"].ToString();

+ 89 - 29
UAS_MES_HYSX/PublicMethod/HttpServer.cs

@@ -9,6 +9,7 @@ using System.Net.Sockets;
 using System.Security.Cryptography;
 using System.Text;
 using System.Text.RegularExpressions;
+using System.Threading.Tasks;
 using System.Windows.Forms;
 using Newtonsoft.Json;
 using Newtonsoft.Json.Linq;
@@ -619,43 +620,102 @@ namespace UAS_MES_NEW.PublicMethod
 
         public static void SendPowerCode(string iSN)
         {
-            DataTable dt = (DataTable)dh.ExecuteSql("select NOTYPE,cm_barcode,pr_detail,ms_code from craftmaterial left join makeserial on ms_sncode=cm_sncode and ms_makecode=cm_makecode left join make on ma_code=cm_makecode left join ZTE_ORDER on ma_custpo=batch_no left join product on cm_fsoncode=pr_code where cm_sncode='" + iSN + "' and cm_status=0", "select");
-            dynamic obj = new ExpandoObject();
-            var expandoDict = obj as IDictionary<string, object>;
-            string part_sn = "";
-            string part_ar = "";
-            string SN = "";
-            string notype = "";
-            for (int i = 0; i < dt.Rows.Count; i++)
+            // 同步版本可以直接调用异步方法并等待
+            SendPowerCodeAsync(iSN).GetAwaiter().GetResult();
+        }
+
+        public static async Task SendPowerCodeAsync(string iSN)
+        {
+            try
             {
-                if (dt.Rows[i]["pr_detail"].ToString().Contains("电源"))
+                // 异步执行数据库查询
+                DataTable dt = await Task.Run(() =>
+                    (DataTable)dh.ExecuteSql(
+                        "select NOTYPE,cm_barcode,pr_detail,pr_spec,ms_code " +
+                        "from craftmaterial " +
+                        "left join makeserial on ms_sncode=cm_sncode and ms_makecode=cm_makecode " +
+                        "left join make on ma_code=cm_makecode " +
+                        "left join ZTE_ORDER on ma_custpo=batch_no " +
+                        "left join product on cm_fsoncode=pr_code " +
+                        "where cm_sncode='" + iSN + "' and cm_status=0",
+                        "select"));
+
+                // 处理查询结果
+                dynamic obj = new ExpandoObject();
+                var expandoDict = obj as IDictionary<string, object>;
+                string part_sn = "";
+                string part_ar = "";
+                string SN = "";
+                string notype = "";
+
+                for (int i = 0; i < dt.Rows.Count; i++)
                 {
-                    part_sn = dt.Rows[i]["cm_barcode"].ToString();
+                    if (dt.Rows[i]["pr_detail"].ToString().Contains("电源"))
+                    {
+                        part_sn = dt.Rows[i]["cm_barcode"].ToString();
+                    }
+                    if (dt.Rows[i]["pr_spec"].ToString().Contains("报警器"))
+                    {
+                        part_ar = dt.Rows[i]["cm_barcode"].ToString();
+                    }
+                    SN = dt.Rows[i]["ms_code"].ToString();
+                    notype = dt.Rows[i]["notype"].ToString();
                 }
-                if (dt.Rows[i]["pr_detail"].ToString().Contains("报警器"))
+
+                // 设置对象属性
+                obj.request = "bindSN";
+                obj.noType = notype;
+                obj.User = "test";
+                obj.password = "123456";
+                obj.tool_name = "zte";
+                obj.part_sn = part_sn;
+                obj.part_ar = part_ar;
+                obj.SN = SN;
+
+                string json = JsonConvert.SerializeObject(obj, Formatting.Indented);
+
+                // 异步执行插入操作
+                await Task.Run(() =>
+                    dh.ExecuteSql(
+                        "insert into EISDATA(ED_ID, ED_DATA, ED_INDATE, ED_TYPE) " +
+                        "values(EISDATA_seq.nextval,'" + json.Replace("'", "''") + "',sysdate,'SendPowerCode')",
+                        "insert"));
+
+                // 异步发送请求(假设ToServerReq可以被异步化)
+                string returnstr = await ToServerReqAsync(json); // 需要实现异步版本
+
+                if (returnstr.Length > 1000)
                 {
-                    part_ar = dt.Rows[i]["cm_barcode"].ToString();
+                    returnstr = returnstr.Substring(0, 1000);
                 }
-                SN = dt.Rows[i]["ms_code"].ToString();
-                notype = dt.Rows[i]["notype"].ToString();
-            }
-            obj.request = "bindSN";
-            obj.noType = notype;
-            obj.User = "test";
-            obj.password = "123456";
-            obj.tool_name = "zte";
-            obj.part_sn = part_sn;
-            obj.part_ar = part_ar;
-            obj.SN = SN;
-            string json = JsonConvert.SerializeObject(obj, Formatting.Indented);
-            dh.ExecuteSql("insert into EISDATA(ED_ID, ED_DATA, ED_INDATE, ED_TYPE)values(EISDATA_seq.nextval,'" + json + "',sysdate,'SendPowerCode')", "insert");
 
-            string returnstr = ToServerReq(json);
-            if (returnstr.Length > 1000)
+                // 异步执行第二次插入操作
+                await Task.Run(() =>
+                    dh.ExecuteSql(
+                        "insert into EISDATA(ED_ID, ED_DATA, ED_INDATE, ED_TYPE) " +
+                        "values(EISDATA_seq.nextval,'" + returnstr.Replace("'", "''") + "',sysdate,'SendPowerCode')",
+                        "insert"));
+            }
+            catch (Exception ex)
             {
-                returnstr = returnstr.Substring(0, 1000);
+                // 记录异常
+                Console.WriteLine($"SendPowerCodeAsync error: {ex.Message}");
+                throw;
             }
-            dh.ExecuteSql("insert into EISDATA(ED_ID, ED_DATA, ED_INDATE, ED_TYPE)values(EISDATA_seq.nextval,'" + returnstr + "',sysdate,'SendPowerCode')", "insert");
+        }
+
+        private static async Task<string> ToServerReqAsync(string json)
+        {
+            // 这里需要根据实际的ToServerReq实现改为异步
+            // 例如,如果是HTTP请求:
+            // using (var client = new HttpClient())
+            // {
+            //     var response = await client.PostAsync(url, new StringContent(json));
+            //     return await response.Content.ReadAsStringAsync();
+            // }
+
+            // 如果原方法是同步的,可以这样包装:
+            return await Task.Run(() => ToServerReq(json));
         }
 
         public static async void SendBoxDataYS(string iBox)

+ 54 - 0
UAS_WinForm.sln

@@ -45,6 +45,12 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UAS_MES_XMW", "UAS_MES_XMW\
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UAS_MES_ZDXW", "UAS_MES_ZDXW\UAS_MES_ZDXW.csproj", "{C2201B4A-3D50-4FE8-A32B-DAF1C1652A63}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UAS_MesInterface(ODLF)", "UAS_MesInterface(ODLF)\UAS_MesInterface(ODLF).csproj", "{7FA72759-6D1C-484E-8C00-5AD2620B3C43}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UAS-出货标签管理(标签复核)", "UAS-出货标签管理(标签复核)\UAS-出货标签管理(标签复核).csproj", "{13F2B4BC-3765-4259-9D5E-ECA4DBBAA099}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UAS-出货标签管理(吉利通)", "UAS-出货标签管理(吉利通)\UAS-出货标签管理(吉利通).csproj", "{9520C162-69BE-41D0-BE89-3E702B746A48}"
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
@@ -393,6 +399,54 @@ Global
 		{C2201B4A-3D50-4FE8-A32B-DAF1C1652A63}.Release|x64.Build.0 = Release|Any CPU
 		{C2201B4A-3D50-4FE8-A32B-DAF1C1652A63}.Release|x86.ActiveCfg = Release|Any CPU
 		{C2201B4A-3D50-4FE8-A32B-DAF1C1652A63}.Release|x86.Build.0 = Release|Any CPU
+		{7FA72759-6D1C-484E-8C00-5AD2620B3C43}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{7FA72759-6D1C-484E-8C00-5AD2620B3C43}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{7FA72759-6D1C-484E-8C00-5AD2620B3C43}.Debug|Default.ActiveCfg = Debug|Any CPU
+		{7FA72759-6D1C-484E-8C00-5AD2620B3C43}.Debug|Default.Build.0 = Debug|Any CPU
+		{7FA72759-6D1C-484E-8C00-5AD2620B3C43}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{7FA72759-6D1C-484E-8C00-5AD2620B3C43}.Debug|x64.Build.0 = Debug|Any CPU
+		{7FA72759-6D1C-484E-8C00-5AD2620B3C43}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{7FA72759-6D1C-484E-8C00-5AD2620B3C43}.Debug|x86.Build.0 = Debug|Any CPU
+		{7FA72759-6D1C-484E-8C00-5AD2620B3C43}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{7FA72759-6D1C-484E-8C00-5AD2620B3C43}.Release|Any CPU.Build.0 = Release|Any CPU
+		{7FA72759-6D1C-484E-8C00-5AD2620B3C43}.Release|Default.ActiveCfg = Release|Any CPU
+		{7FA72759-6D1C-484E-8C00-5AD2620B3C43}.Release|Default.Build.0 = Release|Any CPU
+		{7FA72759-6D1C-484E-8C00-5AD2620B3C43}.Release|x64.ActiveCfg = Release|Any CPU
+		{7FA72759-6D1C-484E-8C00-5AD2620B3C43}.Release|x64.Build.0 = Release|Any CPU
+		{7FA72759-6D1C-484E-8C00-5AD2620B3C43}.Release|x86.ActiveCfg = Release|Any CPU
+		{7FA72759-6D1C-484E-8C00-5AD2620B3C43}.Release|x86.Build.0 = Release|Any CPU
+		{13F2B4BC-3765-4259-9D5E-ECA4DBBAA099}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{13F2B4BC-3765-4259-9D5E-ECA4DBBAA099}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{13F2B4BC-3765-4259-9D5E-ECA4DBBAA099}.Debug|Default.ActiveCfg = Debug|Any CPU
+		{13F2B4BC-3765-4259-9D5E-ECA4DBBAA099}.Debug|Default.Build.0 = Debug|Any CPU
+		{13F2B4BC-3765-4259-9D5E-ECA4DBBAA099}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{13F2B4BC-3765-4259-9D5E-ECA4DBBAA099}.Debug|x64.Build.0 = Debug|Any CPU
+		{13F2B4BC-3765-4259-9D5E-ECA4DBBAA099}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{13F2B4BC-3765-4259-9D5E-ECA4DBBAA099}.Debug|x86.Build.0 = Debug|Any CPU
+		{13F2B4BC-3765-4259-9D5E-ECA4DBBAA099}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{13F2B4BC-3765-4259-9D5E-ECA4DBBAA099}.Release|Any CPU.Build.0 = Release|Any CPU
+		{13F2B4BC-3765-4259-9D5E-ECA4DBBAA099}.Release|Default.ActiveCfg = Release|Any CPU
+		{13F2B4BC-3765-4259-9D5E-ECA4DBBAA099}.Release|Default.Build.0 = Release|Any CPU
+		{13F2B4BC-3765-4259-9D5E-ECA4DBBAA099}.Release|x64.ActiveCfg = Release|Any CPU
+		{13F2B4BC-3765-4259-9D5E-ECA4DBBAA099}.Release|x64.Build.0 = Release|Any CPU
+		{13F2B4BC-3765-4259-9D5E-ECA4DBBAA099}.Release|x86.ActiveCfg = Release|Any CPU
+		{13F2B4BC-3765-4259-9D5E-ECA4DBBAA099}.Release|x86.Build.0 = Release|Any CPU
+		{9520C162-69BE-41D0-BE89-3E702B746A48}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{9520C162-69BE-41D0-BE89-3E702B746A48}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{9520C162-69BE-41D0-BE89-3E702B746A48}.Debug|Default.ActiveCfg = Debug|Any CPU
+		{9520C162-69BE-41D0-BE89-3E702B746A48}.Debug|Default.Build.0 = Debug|Any CPU
+		{9520C162-69BE-41D0-BE89-3E702B746A48}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{9520C162-69BE-41D0-BE89-3E702B746A48}.Debug|x64.Build.0 = Debug|Any CPU
+		{9520C162-69BE-41D0-BE89-3E702B746A48}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{9520C162-69BE-41D0-BE89-3E702B746A48}.Debug|x86.Build.0 = Debug|Any CPU
+		{9520C162-69BE-41D0-BE89-3E702B746A48}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{9520C162-69BE-41D0-BE89-3E702B746A48}.Release|Any CPU.Build.0 = Release|Any CPU
+		{9520C162-69BE-41D0-BE89-3E702B746A48}.Release|Default.ActiveCfg = Release|Any CPU
+		{9520C162-69BE-41D0-BE89-3E702B746A48}.Release|Default.Build.0 = Release|Any CPU
+		{9520C162-69BE-41D0-BE89-3E702B746A48}.Release|x64.ActiveCfg = Release|Any CPU
+		{9520C162-69BE-41D0-BE89-3E702B746A48}.Release|x64.Build.0 = Release|Any CPU
+		{9520C162-69BE-41D0-BE89-3E702B746A48}.Release|x86.ActiveCfg = Release|Any CPU
+		{9520C162-69BE-41D0-BE89-3E702B746A48}.Release|x86.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE