| | |
| | | using System.Data; |
| | | using System.Data.SqlClient; |
| | | using System.Dynamic; |
| | | using Gs.Toolbox; |
| | | using Gs.Toolbox; |
| | | using Gs.Toolbox.ApiCore.Abstract.Mvc; |
| | | using Gs.Toolbox.ApiCore.Common.Mvc; |
| | | using Gs.Toolbox.ApiCore.Group; |
| | | using Microsoft.AspNetCore.Http; |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using System.Data; |
| | | using System.Data.SqlClient; |
| | | using System.Dynamic; |
| | | using System.Text; |
| | | using static Gs.Toolbox.UtilityHelper; |
| | | |
| | | namespace Gs.Wom.Service; |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// 审核 |
| | | /// </summary> |
| | | /// <param name="mode"></param> |
| | | /// <returns></returns> |
| | |
| | | return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "操作成功!"); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 增加或编辑实体-仅处理明细数据的编辑操作 |
| | | /// </summary> |
| | | /// <param name="model">包含明细列表的模型</param> |
| | | /// <returns>处理结果</returns> |
| | | [RequestMethod(RequestMethods.POST)] |
| | | public ReturnDto<ExpandoObject> EditModel([FromBody] dynamic model) |
| | | { |
| | | // 初始化字符串构建器处理明细数据 |
| | | Guid? guid = model.guid; //主键 |
| | | var _sb = new StringBuilder(); |
| | | var _split = "|"; // 字段分隔符 |
| | | var _lineSeparator = "~"; // 行分隔符 |
| | | |
| | | // 处理明细列表,转换为存储过程所需格式 |
| | | foreach (var m in model.list) |
| | | { |
| | | // 获取明细项主键(可为空,新增时为空) |
| | | string _guid = m.Guid?.ToString() ?? Guid.Empty.ToString(); |
| | | |
| | | |
| | | // 拼接单行明细数据:|申请数量|备注|明细GUID |
| | | var _line = m.BatchQty + _split + m.GfRkqty + _split + m.LfRkqtyz + _split + m.HandResult + _split |
| | | + m.ChooseType + _split + m.Process + _split |
| | | + (UtilityHelper.CheckGuid(_guid) ? _guid : Guid.Empty.ToString()); |
| | | |
| | | // 多条明细间添加分隔符 |
| | | if (_sb.Length > 0) |
| | | _sb.Append(_lineSeparator); |
| | | _sb.Append(_line); |
| | | } |
| | | |
| | | // 准备返回结果对象 |
| | | dynamic mObj = new ExpandoObject(); |
| | | mObj.outMsg = ""; // 操作消息 |
| | | mObj.outSum = -1; // 操作结果状态(-1表示失败) |
| | | mObj.outGuid = ""; // 可保留用于返回明细相关的GUID |
| | | mObj.outNo = ""; // 可保留用于返回明细相关的编号 |
| | | |
| | | // 调用存储过程处理明细数据 |
| | | using (var conn = new SqlConnection(DbHelperSQL.strConn)) |
| | | { |
| | | using (var cmd = new SqlCommand("[prc_Qcyc_edt]", conn)) // 建议修改存储过程名为明细专用 |
| | | { |
| | | try |
| | | { |
| | | conn.Open(); |
| | | cmd.CommandType = CommandType.StoredProcedure; |
| | | |
| | | // 定义存储过程参数(仅保留与明细相关的参数) |
| | | SqlParameter[] parameters = |
| | | { |
| | | new("@outMsg", SqlDbType.NVarChar, 300), // 输出:操作消息 |
| | | new("@outSum", SqlDbType.Int), // 输出:结果状态(>0表示成功) |
| | | new("@outGuid", SqlDbType.UniqueIdentifier),// 输出:可返回处理后的明细关联ID |
| | | new("@outNo", SqlDbType.NVarChar, 300), // 输出:可返回明细相关编号 |
| | | new("@inOrderGuid",UtilityHelper.CheckGuid(guid)? guid : DBNull.Value),//主表GUID |
| | | new("@inEdtUserGuid", _userGuid), // 输入:操作用户GUID |
| | | new("@inLineList", _sb.ToString()) // 输入:处理后的明细字符串 |
| | | }; |
| | | |
| | | // 设置输出参数方向 |
| | | parameters[0].Direction = ParameterDirection.Output; |
| | | parameters[1].Direction = ParameterDirection.Output; |
| | | parameters[2].Direction = ParameterDirection.Output; |
| | | parameters[3].Direction = ParameterDirection.Output; |
| | | |
| | | // 添加参数到命令对象 |
| | | foreach (var parameter in parameters) |
| | | cmd.Parameters.Add(parameter); |
| | | |
| | | // 执行存储过程 |
| | | cmd.ExecuteNonQuery(); |
| | | |
| | | // 从输出参数获取结果 |
| | | mObj.outMsg = parameters[0].Value?.ToString() ?? "处理成功"; |
| | | mObj.outSum = int.TryParse(parameters[1].Value?.ToString(), out int sum) ? sum : -1; |
| | | mObj.outGuid = parameters[2].Value?.ToString() ?? ""; |
| | | mObj.outNo = parameters[3].Value?.ToString() ?? ""; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | // 记录异常日志 |
| | | LogHelper.Debug(ToString(), $"处理明细时出错:{ex.Message}"); |
| | | mObj.outMsg = ex.Message; |
| | | mObj.outSum = -1; |
| | | } |
| | | finally |
| | | { |
| | | conn.Close(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 根据处理结果返回对应状态 |
| | | if (mObj.outSum <= 0) |
| | | return ReturnDto<dynamic>.QuickReturn(mObj, ReturnCode.Exception, mObj.outMsg); |
| | | |
| | | return ReturnDto<dynamic>.QuickReturn(mObj, ReturnCode.Success, mObj.outMsg); |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 异常单OAtoMes |