| | |
| | | using MES.Service.Modes; |
| | | using MES.Service.util; |
| | | using SqlSugar; |
| | | using System.Data; |
| | | using System.Data.Common; |
| | | |
| | | namespace MES.Service.service.QC; |
| | | |
| | |
| | | { |
| | | foreach (var item in items) item.Pid = xjDto.gid; |
| | | |
| | | //新增前先进行删除旧项目(覆盖操作) |
| | | db.Deleteable<QsQaItemXj01>().Where(it => it.Pid == xjDto.gid).ExecuteCommand(); |
| | | db.Deleteable<QsQaItemXj02>().Where(it => it.Gid == xjDto.gid).ExecuteCommand(); |
| | | |
| | | return db.Insertable(items).ExecuteCommand(); |
| | | }); |
| | | |
| | |
| | | .Where(s => s.Id == detail.Gid) |
| | | .ExecuteCommand(); |
| | | }); |
| | | |
| | | // 新增:如果判定结果为不合格,调用存储过程生成异常处置单 |
| | | if (FcheckResu.Equals("不合格")) |
| | | { |
| | | CallXJUnqualifiedStoredProcedure(detail.Gid, detail.CreateBy); |
| | | } |
| | | } |
| | | |
| | | return useTransactionWithOracle; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 调用巡检不合格处理存储过程生成异常处置单 |
| | | /// </summary> |
| | | /// <param name="gid">巡检主表ID</param> |
| | | /// <param name="createBy">操作人</param> |
| | | private void CallXJUnqualifiedStoredProcedure(decimal? gid, string createBy) |
| | | { |
| | | try |
| | | { |
| | | var db = SqlSugarHelper.GetInstance(); |
| | | |
| | | // 获取巡检单信息 |
| | | var xjInfo = db.Queryable<QsQaItemXj>() |
| | | .Where(s => s.Id == gid) |
| | | .First(); |
| | | |
| | | if (xjInfo == null) return; |
| | | |
| | | // 定义输出参数 |
| | | var outputResult = new SugarParameter("o_Result", null, |
| | | System.Data.DbType.Int32, ParameterDirection.Output, 4000); |
| | | |
| | | var outputMessage = new SugarParameter("o_Msg", null, |
| | | System.Data.DbType.String, ParameterDirection.Output, 4000); |
| | | |
| | | // 定义输入参数 |
| | | var parameters = new List<SugarParameter> |
| | | { |
| | | new("p_Gid", gid, System.Data.DbType.Decimal, ParameterDirection.Input), |
| | | new("p_Bill_No", xjInfo.BillNo, System.Data.DbType.String, ParameterDirection.Input), |
| | | new("p_User", createBy, System.Data.DbType.String, ParameterDirection.Input), |
| | | outputResult, |
| | | outputMessage |
| | | }; |
| | | |
| | | // 执行存储过程生成异常处置单 |
| | | db.Ado.ExecuteCommand( |
| | | "BEGIN PRC_XJ_EXCEPTION_ORDER(:p_Gid, :p_Bill_No, :p_User, :o_Result, :o_Msg); END;", |
| | | parameters.ToArray()); |
| | | |
| | | // 获取输出参数的值 |
| | | var resultValue = outputResult.Value?.ToString(); |
| | | var messageValue = outputMessage.Value?.ToString(); |
| | | |
| | | if ("1".Equals(resultValue)) |
| | | { |
| | | throw new Exception($"巡检异常处置单生成失败: {messageValue}"); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | // 记录日志但不影响主流程 |
| | | Console.WriteLine($"巡检异常处置单生成存储过程调用失败: {ex.Message}"); |
| | | // 可以根据需要决定是否抛出异常 |
| | | // throw new Exception($"巡检异常处置单生成失败: {ex.Message}"); |
| | | } |
| | | } |
| | | |
| | | public int UpdateQSItemDetail(QsQaItemXj02 detail) |
| | | { |
| | | var withOracle = SqlSugarHelper.UseTransactionWithOracle(db => |