1,签收送货单接口,添加签收人;2.来料检接口,添加到货时间字段
已修改3个文件
278 ■■■■■ 文件已修改
StandardPda/MES.Service/Modes/LtsLlj.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/service/QC/LljService.cs 196 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MESApplication/Controllers/QC/LljController.cs 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/Modes/LtsLlj.cs
@@ -200,6 +200,11 @@
    /// </summary>
    [SugarColumn(ColumnName = "IS_ARRIVAL")]
    public int? IsArrival { get; set; }
    /// <summary>
    ///     到货时间
    /// </summary>
    [SugarColumn(ColumnName = "ARRIVAL_DATE")]
    public string? ArrivalDate { get; set; }
    [SugarColumn(IsIgnore = true)] public string? UserName { get; set; }
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>
StandardPda/MESApplication/Controllers/QC/LljController.cs
@@ -290,12 +290,40 @@
            var tbBillList =
                new LljService().getFromInfo(id);
            resultInfos.tbBillList = tbBillList;
            if (resultInfos.tbBillList.Rows.Count>0)
            {
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
            }
            else
            {
                var mj =
                new LljService().getFromMJCount(id);
                if (mj>0)
                {
                    return new ResponseResult
                    {
                        status = 1,
                        message = "该物料为免检物料,无需检验!",
                        data = resultInfos
                    };
                }
                else
                {
                    return new ResponseResult
                    {
                        status = 1,
                        message = "找不到检验单据,请确认货物是否签收!",
                        data = resultInfos
                    };
                }
            }
        }
        catch (Exception ex)
        {
@@ -580,4 +608,53 @@
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    ///     送货单签收并生成到货单
    /// </summary>
    /// <param name="id"></param>
    /// <returns></returns>
    [HttpPost("SignDelivery2")]
    public async Task<ResponseResult> SignDelivery2(string id,string c_user)
    {
        try
        {
            //string[] msg = new LljService().SaveSysSubmit(sysSubmit);
            var msg = await new LljService().SignDelivery2(id, c_user);
            return new ResponseResult
            {
                status = int.Parse(msg[0]),
                message = msg[1],
                data = msg[1]
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    ///     获取携客云测试环境签名
    /// </summary>
    /// <param name="id"></param>
    /// <returns></returns>
    [HttpGet("getTestXKYSign")]
    public async Task<ResponseResult> getTestXKYSign()
    {
        try
        {
            //string[] msg = new LljService().SaveSysSubmit(sysSubmit);
            var msg = await new LljService().getTestXKYSign();
            return new ResponseResult
            {
                status = int.Parse(msg[0]),
                message = "OK",
                data = msg[1]
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
}