ソースを参照

优化二维码验证逻辑

callm 4 日 前
コミット
4dc857a581

+ 11 - 0
UAS_MES_JH/.workbuddy/memory/2026-09-14.md

@@ -0,0 +1,11 @@
+# 2026-09-14
+
+## Make_CheckQrcode 二维码检查页改造(FunctionCode/Make/Make_CheckQrcode.cs)
+- 需求:第一次扫码录入 SN,第二次扫码内容**包含**第一次扫的 SN 即提示通过,否则提示不通过。
+- 改动:
+  - 去掉按 SN 查 `craftmaterial join product` 取 `cm_barcode` 的数据库逻辑(含查不到就中断的分支)及 `DataHelper dh` 字段。
+  - 用 `SN.Text == ""` 区分“第一次扫码 / 第二次扫码”,不再用 `qrcode.Text` 作状态标志。
+  - 判定改为 `input.Text.Contains(SN.Text)`,通过则 `BaseUtil.CleanControls` 清空并提示“请录入SN”。
+  - 清空按钮逻辑、空录入拦截、SN 显示均为原逻辑。
+- 遗留:Designer 中 `label1` + `qrcode`(“二维码”只读框)已无数据来源,界面仍显示为空,待确认是否隐藏/删除。
+- 未做编译验证(本机 MSBuild/csc 被安全策略拦截)。

+ 7 - 16
UAS_MES_JH/FunctionCode/Make/Make_CheckQrcode.cs

@@ -9,8 +9,6 @@ namespace UAS_MES_NEW.Make
 {
     public partial class Make_CheckQrcode : Form
     {
-        DataHelper dh;
-
         LogStringBuilder sql = new LogStringBuilder();
 
         public Make_CheckQrcode()
@@ -20,7 +18,6 @@ namespace UAS_MES_NEW.Make
 
         private void Special_BoxSplit_Load(object sender, EventArgs e)
         {
-            dh = SystemInf.dh;
             OperatResult.AppendText(">>请录入SN\n", Color.Black);
         }
 
@@ -39,31 +36,25 @@ namespace UAS_MES_NEW.Make
                     OperatResult.AppendText(">>录入不可为空\n", Color.Red);
                     return;
                 }
-                if (qrcode.Text == "")
+                //第一次扫码:记录SN
+                if (SN.Text == "")
                 {
-                    string qr_code = dh.getFieldDataByCondition("craftmaterial join product on cm_soncode = pr_code", "cm_barcode", "cm_sncode = '" + input.Text + "' and cm_status =0 and pr_detail like '%二维码%'").ToString();
-                    if (qr_code == "")
-                    {
-                        OperatResult.AppendText(">>SN:" + input.Text + "未找到对应二维码标签\n", Color.Red);
-                        input.Text = "";
-                        return;
-                    }
-                    qrcode.Text = qr_code;
-                    OperatResult.AppendText(">>获取SN:" + input.Text + "二维码标签成功,请录入二维码核对\n", Color.Green);
                     SN.Text = input.Text;
+                    OperatResult.AppendText(">>SN:" + SN.Text + "录入成功,请扫码核对\n", Color.Green);
                     input.Text = "";
                 }
+                //第二次扫码:扫码内容包含第一次扫码的SN即通过
                 else
                 {
-                    if (qrcode.Text != input.Text)
+                    if (!input.Text.Contains(SN.Text))
                     {
-                        OperatResult.AppendText(">>录入二维码标签:" + input.Text + "与先标签内容不对应,核对失败\n", Color.Red);
+                        OperatResult.AppendText(">>录入内容:" + input.Text + "不包含SN:" + SN.Text + ",核对失败\n", Color.Red);
                         input.Text = "";
                         return;
                     }
                     else
                     {
-                        OperatResult.AppendText(">>二维码标签核对成功\n", Color.Green);
+                        OperatResult.AppendText(">>核对通过\n", Color.Green);
                         BaseUtil.CleanControls(this.Controls);
                         OperatResult.AppendText(">>请录入SN\n", Color.Black);
                         return;