南骏 池
2025-05-24 8a52166f4021216bad4597babfbb56e6f8908b0b
1.扫码获取当前线体称重机的重量.
已修改1个文件
66 ■■■■ 文件已修改
service/Wom/WomdaaManager.cs 66 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/Wom/WomdaaManager.cs
@@ -407,7 +407,7 @@
    public dynamic getKbBarMxInfo(dynamic query)
    {
        var sql = string.Format(@"SELECT ITEM_BARCODE, QUANTITY,item_no,item_name,item_model
        var sql = string.Format(@"SELECT ITEM_BARCODE, QUANTITY,item_no,item_name,item_model,weight
FROM MES_INV_ITEM_BARCODES_TBMX A
         LEFT JOIN WOMDAA B ON B.daa001 = A.DAA_001
        LEFT JOIN MES_ITEMS C ON C.item_id = B.daa002
@@ -607,7 +607,7 @@
    public dynamic SubmitKbInspection(dynamic query)
    {
        if (query == null) throw new ArgumentNullException(nameof(query), "参数对象不能为 null");
        // 参数校验
        if (string.IsNullOrEmpty(query.userAccount?.ToString()))
            throw new ArgumentException("用户名不允许为空", nameof(query.userAccount));
@@ -826,20 +826,66 @@
    }
    public dynamic GetWeightByXt(dynamic unity)
    public dynamic GetWeightByXt(dynamic query)
    {
        if (query == null) throw new ArgumentNullException(nameof(query), "参数对象不能为null");
        //// 使用参数化查询防止SQL注入
        var sqlParams = new List<SugarParameter> { new("@LINEID", unity.shdh) };
        // 参数校验
        if (string.IsNullOrEmpty(query.userName?.ToString()))
            throw new ArgumentException("用户名不允许为空", nameof(query.userName));
        var sql2 = @"SELECT TOP 1 realWeight FROM WORK_WEIGHT WHERE lineId = '' ORDER BY createDate DESC";
        if (string.IsNullOrEmpty(query.LsBar?.ToString()))
            throw new ArgumentException("卡板条码不允许为空", nameof(query.LsBar));
        var XcslItem = Db.Ado.SqlQuery<dynamic>(sql2, sqlParams);
        var _strMsg = "";
        var _status = -1;
        var _weight = "0";
        using (var conn = new SqlConnection(DbHelperSQL.strConn))
        {
            using (var cmd = new SqlCommand("prc_pda_Xbar_chenzhong", conn))
            {
                try
                {
                    conn.Open();
                    cmd.CommandType = CommandType.StoredProcedure;
        if (XcslItem.Count < 1)
            throw new Exception($"送货单号【{unity.shdh}】条码明细不存在或未同步!");
                    SqlParameter[] parameters =
                    {
                        new("@pi_user", SqlDbType.NVarChar, 100) { Value = query.userName },
                        new("@pi_ls_barcode", SqlDbType.NVarChar, 100) { Value = query.LsBar },
                        new("@po_outMsg", SqlDbType.NVarChar, 2000) { Direction = ParameterDirection.Output },
                        new("@po_outStatus", SqlDbType.Int) { Direction = ParameterDirection.Output },
                        new("@po_outWeight", SqlDbType.NVarChar, 100) { Direction = ParameterDirection.Output }
                    };
        return XcslItem; // 返回第一行数据,如果没有则返回 null
                    cmd.Parameters.AddRange(parameters);
                    cmd.ExecuteNonQuery();
                    _strMsg = parameters[2].Value?.ToString() ?? "";
                    _status = Convert.ToInt32(parameters[3].Value ?? -1);
                    _weight = parameters[4].Value?.ToString() ?? "0";
                    if (_status <= 0) throw new Exception(_strMsg);
                    return new
                    {
                        message = _strMsg,
                        status = _status,
                        weight = _weight,
                        barCode = query.Bar
                    };
                }
                catch (Exception ex)
                {
                    throw new Exception($"产品称重失败:{ex.Message}");
                }
                finally
                {
                    conn.Close();
                }
            }
        }
    }
}