From c53a461aef16902ca78cdb7bd0c62305e2fee809 Mon Sep 17 00:00:00 2001 From: 啊鑫 <t2856754968@163.com> Date: 星期二, 29 七月 2025 19:23:04 +0800 Subject: [PATCH] Update OQC search API functionality --- MES.Service/service/QC/RKJService.cs | 296 +++++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 256 insertions(+), 40 deletions(-) diff --git a/MES.Service/service/QC/RKJService.cs b/MES.Service/service/QC/RKJService.cs index 7e48bd7..6b2892e 100644 --- a/MES.Service/service/QC/RKJService.cs +++ b/MES.Service/service/QC/RKJService.cs @@ -1,8 +1,10 @@ -锘縰sing MES.Service.DB; +锘縰sing System.Data; +using MES.Service.DB; using MES.Service.Dto.service; using MES.Service.Modes; using MES.Service.util; using SqlSugar; +using DbType = System.Data.DbType; namespace MES.Service.service.QC; @@ -54,14 +56,14 @@ //鑾峰彇宸ュ崟鍙� - /* public List<RKJDaa001> GetDaa001s(string lineNo) - { - var db = SqlSugarHelper.GetInstance(); - return db.Queryable<RKJDaa001>() - .Where(t => t.LineNo == lineNo) - .OrderBy(t => t.LotNo, OrderByType.Desc) - .ToList(); - }*/ + /* public List<RKJDaa001> GetDaa001s(string lineNo) + { + var db = SqlSugarHelper.GetInstance(); + return db.Queryable<RKJDaa001>() + .Where(t => t.LineNo == lineNo) + .OrderBy(t => t.LotNo, OrderByType.Desc) + .ToList(); + }*/ //鏍规嵁妫�楠屾爣鍑嗘潵璁$畻妫�楠屼釜鏁� public List<QsItemOqcItem> SetItems(decimal itemId, decimal quantity) @@ -69,36 +71,37 @@ var db = SqlSugarHelper.GetInstance(); var count = db.Queryable<MesQa>().Where(s => s.QsType == "3" - && s.ItemId == itemId && s.Fsubmit == 1).Count(); + && s.ItemId == itemId && s.Fsubmit == 1).Count(); if (count <= 0) return []; var qsItemOqcItems = db .Queryable<MesQualityStandard>() .Where(b => b.QsType == "3" - && b.ItemId == itemId).Select( - b => new QsItemOqcItem - { - ProjName = b.ProjName, - // ItemMod = b.ItemMod, - InspectionMethod = b.InspectionMethod, - UsingInstruments = b.UsingInstruments, - LevelNum = SqlFunc.IsNull( - SqlFunc.IsNull( Convert.ToDecimal(b.LevelNum) * Convert.ToDecimal(b.InspectionLevel) , 1), - Convert.ToDecimal(b.InspectionLevel)), - MaxValue = Convert.ToDecimal(b.MaxValue), - StandardValue = Convert.ToDecimal(b.StandardValue), - MinValue = Convert.ToDecimal(b.MinValue), - Notes = b.Notes, - FcheckLevel = b.FcheckLevel, - FacLevel = b.FacLevel, - QsCode = b.QsCode, - QsName = b.QsName, - Result = "鏈娴�", - isCheck = 0, - Picture = b.Picture, - Picturename = b.Picturename - }).ToList(); + && b.ItemId == itemId).Select(b => new QsItemOqcItem + { + ProjName = b.ProjName, + // ItemMod = b.ItemMod, + InspectionMethod = b.InspectionMethod, + UsingInstruments = b.UsingInstruments, + LevelNum = SqlFunc.IsNull( + SqlFunc.IsNull( + Convert.ToDecimal(b.LevelNum) * + Convert.ToDecimal(b.InspectionLevel), 1), + Convert.ToDecimal(b.InspectionLevel)), + MaxValue = Convert.ToDecimal(b.MaxValue), + StandardValue = Convert.ToDecimal(b.StandardValue), + MinValue = Convert.ToDecimal(b.MinValue), + Notes = b.Notes, + FcheckLevel = b.FcheckLevel, + FacLevel = b.FacLevel, + QsCode = b.QsCode, + QsName = b.QsName, + Result = "鏈娴�", + isCheck = 0, + Picture = b.Picture, + Picturename = b.Picturename + }).ToList(); qsItemOqcItems.ForEach(item => { @@ -128,11 +131,13 @@ break; default: LEV = ""; // 榛樿鍊� - + break; } - if (string.IsNullOrEmpty(LEV)) throw new Exception("璇ョ墿鏂欐湭缁存姢妫�楠岄」鐩垨妫�楠屾按骞充负绌�"); - + + if (string.IsNullOrEmpty(LEV)) + throw new Exception("璇ョ墿鏂欐湭缁存姢妫�楠岄」鐩垨妫�楠屾按骞充负绌�"); + var sql = "SELECT " + LEV + " FROM MES_QM_AQL1 A LEFT JOIN MES_QM_AQL2 B ON B.AQL1_ID=A.ID WHERE A.SAMPLE_SIZE_NO='" + @@ -356,8 +361,8 @@ result = 1; else if (count - passCount < QsItemOqcItem.FreQty) result = 1; - var useTransactionWithOracle = SqlSugarHelper.UseTransactionWithOracle( - db => + var useTransactionWithOracle = + SqlSugarHelper.UseTransactionWithOracle(db => { var commit = 0; commit += db.Updateable<QsItemOqcItem>() @@ -454,7 +459,159 @@ .ExecuteCommand()); } + public List<QsItemOqcReq> getPage(XJPageResult queryObj) + { + var db = SqlSugarHelper.GetInstance(); + var id = Convert.ToDecimal(queryObj.id); + + string[]? lineNo = null; + + if (StringUtil.IsNotNullOrEmpty(queryObj.createUser)) + lineNo = _baseService.getUserLineNo(queryObj.createUser); + + return db.Queryable<QsItemOqcReq, RKJDaa001>((a, b) => + new JoinQueryInfos(JoinType.Left, + a.Id == b.ItemInId && a.ItemId == b.ItemId)) + .WhereIF(lineNo != null && lineNo.Length > 0, + (a, b) => lineNo.Contains(b.LineNo)) + .WhereIF( + StringUtil.IsNotNullOrEmpty(queryObj.result) && + "鏈畬鎴�".Equals(queryObj.result), + (a, b) => a.FcheckResu == null || a.Fsubmit == null || + a.Fsubmit == 0) + .WhereIF( + StringUtil.IsNotNullOrEmpty(queryObj.result) && + !"鏈畬鎴�".Equals(queryObj.result), + (a, b) => a.FcheckResu != null && a.Fsubmit != null && + a.Fsubmit != 0) + .WhereIF(id > 0, (a, b) => a.Id == id) + .WhereIF(!string.IsNullOrEmpty(queryObj.itemCj), + (a, b) => b.itemCj.Contains(queryObj.itemCj)) + .Select((a, b) => new QsItemOqcReq + { + Id = a.Id, + ReleaseNo = a.ReleaseNo, + BillNo = a.BillNo, + Quantity = b.Quantity, + CreateBy = a.CreateBy, + CreateDate = a.CreateDate, + ItemNo = a.ItemNo, + TaskNo = b.WorkNo, + ItemName = b.ItemName, + ItemModel = b.ItemModel, + LineNo = b.LineNo, + FcheckResu = a.FcheckResu, + FcheckBy = a.FcheckBy, + FcheckDate = a.FcheckDate, + MoidNum = a.MoidNum, + Remarks = a.Remarks, + ItemId = a.ItemId, + Fsubmit = a.Fsubmit, + itemCj = b.itemCj + }) + .OrderBy(a => a.CreateDate, OrderByType.Desc) + .ToPageList(queryObj.PageIndex, queryObj.Limit); + } + + public PageResult<QsItemOqcReq> getSearchPage(XJPageResult queryObj) + { + var db = SqlSugarHelper.GetInstance(); + var id = Convert.ToDecimal(queryObj.id); + string[]? lineNo = null; + + if (StringUtil.IsNotNullOrEmpty(queryObj.createUser)) + lineNo = _baseService.getUserLineNo(queryObj.createUser); + + var query = db.Queryable<QsItemOqcReq, RKJDaa001>((a, b) => + new JoinQueryInfos(JoinType.Left, + a.Id == b.ItemInId && a.ItemId == b.ItemId)) + .WhereIF(lineNo != null && lineNo.Length > 0, + (a, b) => lineNo.Contains(b.LineNo)) + .WhereIF( + StringUtil.IsNotNullOrEmpty(queryObj.result) && + "鏈畬鎴�".Equals(queryObj.result), + (a, b) => a.FcheckResu == null || a.Fsubmit == null || + a.Fsubmit == 0) + .WhereIF( + StringUtil.IsNotNullOrEmpty(queryObj.result) && + !"鏈畬鎴�".Equals(queryObj.result), + (a, b) => a.FcheckResu != null && a.Fsubmit != null && + a.Fsubmit != 0) + .WhereIF(id > 0, (a, b) => a.Id == id) + .WhereIF(!string.IsNullOrEmpty(queryObj.ItemNo), + (a, b) => a.ItemNo.Contains(queryObj.ItemNo)) + .WhereIF(!string.IsNullOrEmpty(queryObj.ItemModel), + (a, b) => b.ItemModel.Contains(queryObj.ItemModel)) + .WhereIF(!string.IsNullOrEmpty(queryObj.SongJ), + (a, b) => a.FcheckBy.Contains(queryObj.SongJ)) + .WhereIF(!string.IsNullOrEmpty(queryObj.SongNo), + (a, b) => a.ReleaseNo.Contains(queryObj.SongNo)) + .WhereIF(!string.IsNullOrEmpty(queryObj.ItemName), + (a, b) => b.ItemName.Contains(queryObj.ItemName)) + .WhereIF(!string.IsNullOrEmpty(queryObj.itemCj), + (a, b) => b.itemCj.Contains(queryObj.itemCj)) + .WhereIF(!string.IsNullOrEmpty(queryObj.ItemCode), + (a, b) => a.BillNo.Contains(queryObj.ItemCode)) + .Select((a, b) => new + { + a.Id, + a.ReleaseNo, + a.BillNo, + b.Quantity, + a.CreateBy, + a.CreateDate, + a.ItemNo, + b.WorkNo, + b.ItemName, + b.ItemModel, + b.LineNo, + a.FcheckResu, + a.FcheckBy, + a.FcheckDate, + a.MoidNum, + a.Remarks, + a.ItemId, + a.Fsubmit, + b.itemCj + }) + .MergeTable() + .OrderBy(it => it.CreateDate, OrderByType.Desc); + + var totalCountRef = 0; + var rawList = query.ToPageList(queryObj.PageIndex, queryObj.Limit, + ref totalCountRef); + + var resultList = rawList.Select(it => new QsItemOqcReq + { + Id = it.Id, + ReleaseNo = it.ReleaseNo, + BillNo = it.BillNo, + Quantity = it.Quantity, + CreateBy = it.CreateBy, + CreateDate = it.CreateDate, + ItemNo = it.ItemNo, + TaskNo = it.WorkNo, + ItemName = it.ItemName, + ItemModel = it.ItemModel, + LineNo = it.LineNo, + FcheckResu = it.FcheckResu, + FcheckBy = it.FcheckBy, + FcheckDate = it.FcheckDate, + MoidNum = it.MoidNum, + Remarks = it.Remarks, + ItemId = it.ItemId, + Fsubmit = it.Fsubmit, + itemCj = it.itemCj + }).ToList(); + + return new PageResult<QsItemOqcReq> + { + tbBillList = resultList + }; + } + +/* public List<QsItemOqcReq> getPage(XJPageResult queryObj) { var db = SqlSugarHelper.GetInstance(); @@ -468,7 +625,7 @@ return db.Queryable<QsItemOqcReq, RKJDaa001>((a, b) => new JoinQueryInfos(JoinType.Left, a.Id == b.ItemInId && a.ItemId ==b.ItemId)) - + .WhereIF( StringUtil.IsNotNullOrEmpty(queryObj.result) && "鏈畬鎴�".Equals(queryObj.result), @@ -495,12 +652,13 @@ FcheckBy = a.FcheckBy, FcheckDate = a.FcheckDate, MoidNum = a.MoidNum, - + Remarks = a.Remarks, ItemId = a.ItemId }).OrderBy(a => a.CreateDate, OrderByType.Desc) .ToPageList(queryObj.PageIndex, queryObj.Limit); } + */ //鍒犻櫎涓昏〃骞朵笖杩炵骇鍒犻櫎瀛愯〃鍜屽瓩琛� public int removeXJ(decimal? id) @@ -556,6 +714,10 @@ rkjDto.ItemXj02s = db.Queryable<QsItemOqcItemDetail>() .Where(s => s.Pid == id) .ToList(); + // 淇锛氭煡璇富琛ㄦ暟鎹簲璇ヤ娇鐢╭sItemOqcItem.Gid鑰岄潪id + // rkjDto.from = db.Queryable<QsItemOqcReq>() + // .Where(s => s.Id == id) + // .First(); // 浣跨敤First()鑾峰彇鍗曚釜瀵硅薄 return rkjDto; } @@ -652,4 +814,58 @@ return Convert.ToInt32(rkjDto.gid); } + + public bool RKJQaSubmit(QsItem item) + { + var (factory, company) = UserUtil.GetFactory(item.userNo); + try + { + // 瀹氫箟杈撳嚭鍙傛暟 + var outputResult = new SugarParameter("o_Result", null, + DbType.Int32, ParameterDirection.Output, + 4000); + + var outputMessage = new SugarParameter("o_Msg", null, DbType.String, + ParameterDirection.Output, 4000); + + // 瀹氫箟杈撳叆鍙傛暟 + var parameters = new List<SugarParameter> + { + new("p_Id", item.gid, DbType.Int32, ParameterDirection.Input), + new("p_Flag", 1, DbType.Int32, ParameterDirection.Input), + new("p_User", item.userNo, DbType.String, + ParameterDirection.Input), + outputResult, + outputMessage + }; + + var db = SqlSugarHelper.GetInstance(); + + // 浣跨敤 SqlSugar 鎵ц瀛樺偍杩囩▼ + db.Ado.ExecuteCommand( + "BEGIN PRC_WOMDAA_RKJ_UPDATE_RES(:p_Id,:p_Flag,: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); + + if ("0".Equals(resultValue)) throw new Exception(messageValue); + + return true; + } + catch (Exception ex) + { + throw new Exception(ex.Message); + } + } + + /// 浣跨敤 MergeTable + 杩斿洖鏈�缁堟墎骞崇粨鏋勶細data.tbBillList = List + /// <T> + public class PageResult<T> + { + public List<T> tbBillList { get; set; } = new(); + } } \ No newline at end of file -- Gitblit v1.9.3