sjz
2025-06-13 171d81fdf8d730f6cb6869a003d81d17b5e81117
StandardInterface/MES.Service/service/QC/LljService.cs
@@ -47,11 +47,12 @@
                     || a.LotNo.ToLower()
                        .Contains(queryObj.SearchValue.ToLower())
                     || a.ReleaseNo.ToLower()
                        .Contains(queryObj.SearchValue.ToLower())
                     || a.ItemModel.ToLower()
                        .Contains(queryObj.SearchValue.ToLower()))
            .OrderByDescending(a => a.Id)
            .ToPageList(queryObj.PageIndex, queryObj.Limit, ref totalCount);
            var emergencyValues = pageList.Select(item => item.EMERGENCY).ToList();
        return (pageList, totalCount);
    }
@@ -101,6 +102,92 @@
    }
    //紧急放行
    public string[] EmergencyRelease(int id)
    {
        var db = SqlSugarHelper.GetInstance();
        int emergencyStatus = db.Queryable<MesQaItemsDetect01>()
                                .Where(t => t.Id == id)
                                .Select(t => t.EMERGENCY)
                                .First();
        if (emergencyStatus != 0)
        {
            return new string[] { "1", "非紧急状态,无法执行紧急放行" };
        }
        var outputResult = new SugarParameter("PO_RESULT", null,
            DbType.Int32, ParameterDirection.Output, 4000);
        var outputMessage = new SugarParameter("PO_MSG", null,
            DbType.String, ParameterDirection.Output, 4000);
        var parameters = new List<SugarParameter>
    {
        new("P_ID", id, DbType.Int32, ParameterDirection.Input),
        outputResult,
        outputMessage
    };
        db.Ado.ExecuteCommand(
            "BEGIN prc_MES_QA_ITEMS_update1(:P_ID, :PO_RESULT, :PO_MSG); END;",
            parameters.ToArray());
        var lotNo1 = db.Queryable<MesQaItemsDetect01>()
                   .Where(t => t.Id == id)
                   .Select(t => t.LotNo1)
                   .First();
        var resultValue = outputResult.Value?.ToString();
        var messageValue = outputMessage.Value?.ToString();
        return new string[] { resultValue, messageValue, lotNo1?.ToString() ?? "" };
    }
    public string[] WithdrawEmergencyRelease(int id)
    {
        var db = SqlSugarHelper.GetInstance();
        int emergencyStatus = db.Queryable<MesQaItemsDetect01>()
                                .Where(t => t.Id == id)
                                .Select(t => t.EMERGENCY)
                                .First();
        if (emergencyStatus != 0)
        {
            return new string[] { "1", "非紧急状态,无需撤回" };
        }
        var outputResult = new SugarParameter("PO_RESULT", null,
            DbType.Int32, ParameterDirection.Output, 4000);
        var outputMessage = new SugarParameter("PO_MSG", null,
            DbType.String, ParameterDirection.Output, 4000);
        var parameters = new List<SugarParameter>
    {
        new("P_ID", id, DbType.Int32, ParameterDirection.Input),
        outputResult,
        outputMessage
    };
        db.Ado.ExecuteCommand(
            "BEGIN prc_MES_QA_ITEMS_update2(:P_ID, :PO_RESULT, :PO_MSG); END;",
            parameters.ToArray());
        var lotNo1 = db.Queryable<MesQaItemsDetect01>()
                   .Where(t => t.Id == id)
                   .Select(t => t.LotNo1)
                   .First();
        var resultValue = outputResult.Value?.ToString();
        var messageValue = outputMessage.Value?.ToString();
        return new string[] { resultValue, messageValue, lotNo1?.ToString() ?? "" };
    }
    private string ExtractSubstring(string input, char startChar, char endChar)
    {
        var startIndex = input.IndexOf(startChar);
@@ -192,7 +279,9 @@
                a.FreQty,
                a.CheckQyt,
                a.FcheckResu,
                a.FcheckItemDesc
                a.FcheckItemDesc,
                a.Funit,
                a.Meom
            }).Select((a, b) => new MesQaItemsDetectDetail5
            {
                Id = a.Id,
@@ -213,7 +302,9 @@
                FenterQty = SqlFunc.AggregateCount(b.Id),
                FcheckResu = a.FcheckResu,
                // FcheckItemDesc = a.FcheckItemDesc
                FcheckItemDesc = a.FspecRequ
                FcheckItemDesc = a.FspecRequ,
                Funit = a.Funit,
                Meom = a.Meom,
            }).ToList();
    }
@@ -294,8 +385,8 @@
                return commit;
            });
        var isNull = db.Queryable<MesQaItemsDetectDetail5>()
        //5.20xwt修改将更新主表检验结果字段放在IqcQaSubmit方法下
        /*var isNull = db.Queryable<MesQaItemsDetectDetail5>()
            .Where(s => s.ReleaseNo == detail.ReleaseNo && s.FcheckResu == null)
            .Count();
@@ -333,7 +424,7 @@
                .SetColumns(s => s.LastupdateDate == DateTime.Now)
                .Where(s => s.ReleaseNo == detail.ReleaseNo)
                .ExecuteCommand();
        });
        });*/
        //  if (FcheckResu.Equals("不合格"))
        //自动生成入库检异常对策
        ///     saveDetect02(detail.Id, detail.CreateBy);
@@ -490,6 +581,11 @@
                     it.Funit == dto.Remarks) //SetColumns是可以叠加的 写2个就2个字段赋值
                .Where(it => it.Id == dto.pid)
                .ExecuteCommand();
            return db.Updateable<MesQaItemsDetectDetail5>()
                 .SetColumns(it =>
                     it.Meom == dto.Meom)
                .Where(it => it.Id == dto.pid)
                .ExecuteCommand();
        });
    }
@@ -559,6 +655,34 @@
            if ("1".Equals(resultValue)) throw new Exception(messageValue);
            var sum = db.Queryable<MesQaItemsDetectDetail5>()
            .Where(s => s.ReleaseNo == dto.releaseNo).Count();
            if (sum == 0) return true;
            var icount = db.Queryable<MesQaItemsDetectDetail5>()
                .Where(s => s.ReleaseNo == dto.releaseNo && s.FcheckResu == "合格")
                .Count();
            var FcheckResu = "不合格";
            if (sum == icount)
                FcheckResu = "合格";
            var sysUser = db.Queryable<SysUser>()
                .Where(s => s.Fcode == dto.userNo).First();
            SqlSugarHelper.UseTransactionWithOracle(db =>
            {
                return db.Updateable<MesQaItemsDetect01>()
                    .SetColumns(s => s.FcheckResu == FcheckResu)
                    .SetColumns(s => s.FcheckDate == DateTime.Now)
                    .SetColumns(s => s.FcheckBy == sysUser.Fname)
                    .SetColumns(s => s.LastupdateBy == dto.userNo)
                    .SetColumns(s => s.LastupdateDate == DateTime.Now)
                    .Where(s => s.ReleaseNo == dto.releaseNo)
                    .ExecuteCommand();
            });
            return true;
        }
        catch (Exception ex)