StandardPda/MES.Service/service/QC/LljService.cs
@@ -518,7 +518,155 @@
        //msg[1] = responseBody; 
        return msg;
    }
    public async Task<string[]> SignDelivery2(string id,string c_user)
    {
        var msg = new string[2];
        //发起请求,签收送货单
        try
        {
            var requestData = XkyCommonParam.GetInit();
            requestData.body = new BodyParam
            {
                erpCode = "Z106",
                dnXkNo = id
            };
            // 序列化为JSON
            var json = JsonConvert.SerializeObject(requestData);
            using (var client = new HttpClient())
            {
                // 设置请求内容
                var content = new StringContent(json, Encoding.UTF8,
                    "application/json");
                // 发送POST请求
                var response = await client.PostAsync(
                    "https://openapi.xiekeyun.com/delivery/updateDeliveryStatus.json",
                    content);
                // 处理响应
                if (response.IsSuccessStatusCode)
                {
                    var responseBody =
                        await response.Content.ReadAsStringAsync();
                    var result =
                        JsonConvert.DeserializeObject<XKYApiResponse>(
                            responseBody);
                    //成功后手动下推到货单
                    if (result.Result == 1)
                    {
                        // 定义输出参数
                        var outputMessage = new SugarParameter("C_RESULT", null,
                            DbType.String,
                            ParameterDirection.Output, 4000);
                        // 定义输入参数
                        var parameters = new List<SugarParameter>
                        {
                            new("C_IN_STR", "送货单签收[BTNOK["+c_user+"[" + id,
                                DbType.String, ParameterDirection.Input),
                            outputMessage
                        };
                        var db = SqlSugarHelper.GetInstance();
                        // 使用 SqlSugar 执行存储过程
                        db.Ado.ExecuteCommand(
                            "BEGIN PRC_RF_PDA_RECEIPT_BTN(:C_IN_STR,:C_RESULT); END;",
                            parameters.ToArray());
                        // 获取输出参数的值
                        var messageValue = outputMessage.Value?.ToString();
                        msg[0] = "0";
                        msg[1] = messageValue;
                    }
                    else
                    {
                        if (result.ErrorMsg == "出货单据不是已送货状态!")
                        {
                            // 定义输出参数
                            var outputMessage = new SugarParameter("C_RESULT",
                                null,
                                DbType.String,
                                ParameterDirection.Output, 4000);
                            // 定义输入参数
                            var parameters = new List<SugarParameter>
                            {
                                new("C_IN_STR", "送货单签收[BTNOK["+c_user+"[" + id,
                                    DbType.String, ParameterDirection.Input),
                                outputMessage
                            };
                            var db = SqlSugarHelper.GetInstance();
                            // 使用 SqlSugar 执行存储过程
                            db.Ado.ExecuteCommand(
                                "BEGIN PRC_RF_PDA_RECEIPT_BTN(:C_IN_STR,:C_RESULT); END;",
                                parameters.ToArray());
                            // 获取输出参数的值
                            var messageValue = outputMessage.Value?.ToString();
                            msg[0] = "0";
                            msg[1] = messageValue;
                        }
                        else
                        {
                            msg[0] = "1";
                            msg[1] = "002[" + id + "签收失败," + result.ErrorMsg;
                        }
                    }
                }
                else
                {
                    msg[0] = "1";
                    msg[1] = $"002[{id}签收失败,请求失败,状态码:{response.StatusCode}";
                }
            }
        }
        catch (Exception ex)
        {
            msg[0] = "1";
            msg[1] = $"002[请求失败,状态码:{ex.Message}";
        }
        //msg[0] = "1";
        //msg[1] = responseBody;
        return msg;
    }
    public async Task<string[]> getTestXKYSign()
    {
        var msg = new string[2];
        //发起请求,签收送货单
        try
        {
            var requestData = XkyCommonParam.GetTestInit();
            msg[0] = "0";
            msg[1] = requestData.ToJsonString();
        }
        catch (Exception ex)
        {
            msg[0] = "1";
            msg[1] = $"002[请求失败,状态码:{ex.Message}";
        }
        //msg[0] = "1";
        //msg[1] = responseBody;
        return msg;
    }
    private string ExtractSubstring(string input, char startChar, char endChar)
    {
@@ -588,6 +736,13 @@
    public List<MesQaItemsDetectDetail5> GetItems(string? releaseNo,
        decimal? id)
    {
        OracleSQLHelper SQLHelper = new();
        var sql =
            @"update MES_QA_ITEMS_DETECT_01 set FCHECK_BEGIN_DATE=sysdate where RELEASE_NO='"+ releaseNo + "' and FCHECK_BEGIN_DATE is null";
        SQLHelper.ExecuteQuery(sql);
        var db = SqlSugarHelper.GetInstance();
        return db
@@ -857,8 +1012,17 @@
        var sql = string.Format(
            @"select b.ID,b.LOT_NO,b.RELEASE_NO,b.FSUBMIT from MES_INV_ITEM_BARCODES A
                                    left join MES_QA_ITEMS_DETECT_01 B on A.BILL_NO=b.LOT_NO and A.ITEM_ID=b.ITEM_ID
                                    where ITEM_BARCODE='" + BarCode + "'");
                                    where ITEM_BARCODE='" + BarCode + "'and b.ID is not null");
        return SQLHelper.ExecuteQuery(sql);
    }
    public int getFromMJCount(string BarCode)
    {
        OracleSQLHelper SQLHelper = new();
        var sql = string.Format(
            @"select count(*) count from MES_INV_ITEM_BARCODES A
         left join MES_INV_ITEM_ARN_DETAIL B on A.BILL_NO=b.CBILL_NO and A.ITEM_ID=b.ITEM_ID
         where ITEM_BARCODE='"+ BarCode + "' and CHECK_STATES='免检'");
        return Convert.ToInt32(SQLHelper.ExecuteQuery(sql).Rows[0]["count"]);
    }
    public DataTable getImgBDlist(string id)
@@ -1256,6 +1420,36 @@
                commonParam = apiParam
            };
        }
        public static XkyCommonParam GetTestInit()
        {
            var apiParam = new ApiCommonParam
            {
                // 发携客云提供的appKey
                appKey = DataAcquisitionConfiguration.TEST_APP_KEY,
                // 接口版本
                version = "1.0",
                // 操作者所属公司编码
                operateCompanyCode = DataAcquisitionConfiguration.TEST_COMPANY_CODE,
                // 数据所属公司编码,非集团公司默认赋值为操作公司
                ownerCompanyCode = DataAcquisitionConfiguration.TEST_COMPANY_CODE,
                // 当前时间对应的时间戳(秒数)
                timestamps = DateTimeOffset.UtcNow.ToUnixTimeSeconds()
            };
            var appSecret = DataAcquisitionConfiguration.TEST_APP_SECRET;
            // 生成签名
            var sign = BuildCurrentSign(
                JsonConvert.SerializeObject(apiParam),
                appSecret);
            apiParam.sign = sign;
            return new XkyCommonParam
            {
                commonParam = apiParam
            };
        }
    }
    /// <summary>