From bdfcb2760a617d0fb95ee934696a3dde477d7e68 Mon Sep 17 00:00:00 2001 From: kyy <3283105747@qq.com> Date: 星期五, 29 八月 2025 17:56:58 +0800 Subject: [PATCH] 1、获取检验项目前先删除 --- MES.Service/service/QC/SJService.cs | 230 +++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 196 insertions(+), 34 deletions(-) diff --git a/MES.Service/service/QC/SJService.cs b/MES.Service/service/QC/SJService.cs index e1cb463..a51fd57 100644 --- a/MES.Service/service/QC/SJService.cs +++ b/MES.Service/service/QC/SJService.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; @@ -34,6 +36,88 @@ } //鑾峰彇鎵�鏈夋暟鎹垎椤� + + public List<SJPageResult> getPage(SJPageResult queryObj) + { + var db = SqlSugarHelper.GetInstance(); + + string[]? lineNo = null; + + if (StringUtil.IsNotNullOrEmpty(queryObj.StatusUser)) + lineNo = _baseService.getUserLineNo(queryObj.StatusUser); + + var data = db.Queryable<SJPageResult>() + .WhereIF(lineNo != null && lineNo.Length > 0, + a => lineNo.Contains(a.line)) + .WhereIF(queryObj.Id != null, a => a.Id == queryObj.Id) + .WhereIF(StringUtil.IsNotNullOrEmpty(queryObj.BillNo), + a => a.BillNo == queryObj.BillNo) + .WhereIF( + (StringUtil.IsNotNullOrEmpty(queryObj.Result) && + "鏈畬鎴�".Equals(queryObj.Result)) || + (queryObj.Fsubmit != null && + (queryObj.Fsubmit == 0 || queryObj.Fsubmit == null)), + a => a.Result == "鏈畬鎴�" || + (a.Fsubmit != null && a.Fsubmit == 0) || a.Fsubmit == null) + .WhereIF( + StringUtil.IsNotNullOrEmpty(queryObj.Result) && + !"鏈畬鎴�".Equals(queryObj.Result), + a => a.Result != "鏈畬鎴�" && a.Fsubmit != null && a.Fsubmit != 0) + .WhereIF(StringUtil.IsNotNullOrEmpty(queryObj.ItemCj), + a => a.ItemCj == queryObj.ItemCj) + .OrderBy(a => a.BillNo, OrderByType.Desc) + .ToPageList(queryObj.PageIndex, queryObj.Limit); + + return data; + } + + public List<SJPageResult> getSearchPage(SJPageResult queryObj) + { + var db = SqlSugarHelper.GetInstance(); + + string[]? lineNo = null; + + if (StringUtil.IsNotNullOrEmpty(queryObj.StatusUser)) + lineNo = _baseService.getUserLineNo(queryObj.StatusUser); + + var data = db.Queryable<SJPageResult>() + .WhereIF(lineNo != null && lineNo.Length > 0, + a => lineNo.Contains(a.line)) + .WhereIF(queryObj.Id != null, a => a.Id == queryObj.Id) + // .WhereIF(StringUtil.IsNotNullOrEmpty(queryObj.BillNo), a => a.BillNo == queryObj.BillNo) + .WhereIF( + (StringUtil.IsNotNullOrEmpty(queryObj.Result) && + "鏈畬鎴�".Equals(queryObj.Result)) || + (queryObj.Fsubmit != null && + (queryObj.Fsubmit == 0 || queryObj.Fsubmit == null)), + a => a.Result == "鏈畬鎴�" || + (a.Fsubmit != null && a.Fsubmit == 0) || a.Fsubmit == null) + .WhereIF( + StringUtil.IsNotNullOrEmpty(queryObj.Result) && + !"鏈畬鎴�".Equals(queryObj.Result), + a => a.Result != "鏈畬鎴�" && a.Fsubmit != null && a.Fsubmit != 0) + .WhereIF(!string.IsNullOrEmpty(queryObj.ItemNo), + a => a.ItemNo.Contains(queryObj.ItemNo)) + .WhereIF(!string.IsNullOrEmpty(queryObj.ItemModel), + a => a.ItemModel.Contains(queryObj.ItemModel)) + .WhereIF(!string.IsNullOrEmpty(queryObj.SongJ), + a => a.SongJ.Contains(queryObj.SongJ)) + .WhereIF(!string.IsNullOrEmpty(queryObj.BillNo), + a => a.BillNo.Contains(queryObj.BillNo)) + .WhereIF(!string.IsNullOrEmpty(queryObj.ItemName), + a => a.ItemName.Contains(queryObj.ItemName)) + .WhereIF(!string.IsNullOrEmpty(queryObj.ItemCj), + a => a.ItemCj.Contains(queryObj.ItemCj)) + .WhereIF(!string.IsNullOrEmpty(queryObj.daa001), + a => a.daa001.Contains(queryObj.daa001)) + .WhereIF(!string.IsNullOrEmpty(queryObj.Cjr), + a => a.Cjr.Contains(queryObj.Cjr)) + .OrderBy(a => a.BillNo, OrderByType.Desc) + .ToPageList(queryObj.PageIndex, queryObj.Limit); + + return data; + } + /* public List<SJPageResult> getPage(SJPageResult queryObj) { var db = SqlSugarHelper.GetInstance(); @@ -62,6 +146,7 @@ return data; } + */ //SetQSItem @@ -92,30 +177,34 @@ // result = "鏈娴�" // }).ToList(); // } - public List<QsItemIpiItem> SetQSItems(string itemNo) + public List<QsItemIpiItem> SetQSItems(decimal itemId) { var db = SqlSugarHelper.GetInstance(); var count = db.Queryable<MesQa>().Where(s => s.QsType == "1" - && s.ItemNo == itemNo && s.Fsubmit == 1).Count(); + && s.ItemId == itemId && s.Fsubmit == 1).Count(); if (count <= 0) return new List<QsItemIpiItem>(); return db .Queryable<MesQualityStandard>() - .Where(b => b.QsType == "1" && b.ItemNo == itemNo).Select( - b => new QsItemIpiItem + .Where(b => b.QsType == "1" && b.ItemId == itemId) + .OrderBy(b => b.Xh) // 鎸塜h瀛楁鍗囧簭鎺掑簭 + .Select(b => + new QsItemIpiItem { ProjName = b.ProjName, ItemMod = b.ItemMod, InspectionMethod = b.InspectionMethod, UsingInstruments = b.UsingInstruments, LevelNum = SqlFunc.IsNull( - SqlFunc.IsNull(b.LevelNum * b.InspectionLevel, 1), - b.InspectionLevel), - MaxValue = b.MaxValue, - StandardValue = b.StandardValue, - MinValue = b.MinValue, + 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, @@ -134,7 +223,8 @@ var qsItemIpiItems = db .Queryable<QsItemIpiItem>() .WhereIF(pid > 0, a => a.Pid == pid) - .WhereIF(id > 0, a => a.Id == id).ToList(); + .WhereIF(id > 0, a => a.Id == id) + .ToList(); var array = qsItemIpiItems.Select(s => s.Id).ToArray(); var qsItemIpiItemDetails = db.Queryable<QsItemIpiItemDetail>() @@ -188,21 +278,20 @@ { var qsItemIpiReq = item.From; var qsItemIpiItems = item.Items; - SqlSugarHelper.UseTransactionWithOracle( - db => - { - qsItemIpiReq.StatusDate = DateTime.Now; - var pid = db.Insertable(qsItemIpiReq) - .ExecuteReturnIdentity(); - qsItemIpiReq.Id = pid; + SqlSugarHelper.UseTransactionWithOracle(db => + { + qsItemIpiReq.StatusDate = DateTime.Now; + var pid = db.Insertable(qsItemIpiReq) + .ExecuteReturnIdentity(); + qsItemIpiReq.Id = pid; - item.gid = pid; + item.gid = pid; - qsItemIpiItems.ForEach(s => s.Pid = pid); + qsItemIpiItems.ForEach(s => s.Pid = pid); - return db.Insertable(qsItemIpiItems) - .ExecuteCommand(); - }); + return db.Insertable(qsItemIpiItems) + .ExecuteCommand(); + }); item.Items = getQSItems(qsItemIpiReq.Id, null); //娌℃湁涓婁笅闄愮殑妫�楠岄」鐩嚜鍔ㄧ洏鐐逛负鍚堟牸 @@ -230,15 +319,24 @@ public QsItem SaveItem(QsItem item) { + var db = SqlSugarHelper.GetInstance(); + db.Deleteable<QsItemIpiItem>() + .Where(s => s.Pid == item.gid) + .ExecuteCommand(); + + db.Deleteable<QsItemIpiItemDetail>() + .Where(s => s.Gid == item.gid) + .ExecuteCommand(); + + var qsItemIpiItems = item.Items; - SqlSugarHelper.UseTransactionWithOracle( - db => - { - qsItemIpiItems.ForEach(s => s.Pid = item.gid); + SqlSugarHelper.UseTransactionWithOracle(db => + { + qsItemIpiItems.ForEach(s => s.Pid = item.gid); - return db.Insertable(qsItemIpiItems) - .ExecuteCommand(); - }); + return db.Insertable(qsItemIpiItems) + .ExecuteCommand(); + }); item.Items = getQSItems(item.gid, null); //娌℃湁涓婁笅闄愮殑妫�楠岄」鐩嚜鍔ㄧ洏鐐逛负鍚堟牸 @@ -322,8 +420,8 @@ if (count == passCount) result = 1; - var useTransactionWithOracle = SqlSugarHelper.UseTransactionWithOracle( - db => + var useTransactionWithOracle = + SqlSugarHelper.UseTransactionWithOracle(db => { var commit = 0; commit += db.Updateable<QsItemIpiItem>() @@ -358,12 +456,13 @@ //鍚堟牸鐨勬楠岀粨鏋滅瓑浜庢�绘楠屾暟瑙嗕负鍚堟牸 if (icount == passCount) result = 1; - useTransactionWithOracle += SqlSugarHelper.UseTransactionWithOracle( - db => + useTransactionWithOracle += + SqlSugarHelper.UseTransactionWithOracle(db => { return db.Updateable<QsItemIpiReq>() .SetColumns(s => s.IsPass == result) .SetColumns(s => s.StatusUser == detail.CreateBy) + .SetColumns(s => s.StatusDate== DateTime.Now) .SetColumns(s => s.CompleteTime == DateTime.Now) .Where(s => s.Id == detail.Gid) .ExecuteCommand(); @@ -455,4 +554,67 @@ return withOracle; } + + public bool SJQaSubmit(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_SJ_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}"); + + // 褰� resultValue 涓� "0" 鏃惰繑鍥炴垚鍔熺姸鎬� + return true; + } + catch (Exception ex) + { + // 閲嶆柊鎶涘嚭鏇村弸濂界殑寮傚父淇℃伅 + throw new Exception($"鎻愪氦璐ㄩ噺妫�楠屾暟鎹椂鍙戠敓閿欒: {ex.Message}", ex); + } + } + + public List<SysDepartment> getWorkshop() + { + var db = SqlSugarHelper.GetInstance(); + + return db.Queryable<SysDepartment>() + .Where(d => d.Depextr1 == "鍩烘湰鐢熶骇閮ㄩ棬") + .GroupBy(d => new { d.Departmentname }) + .Select(d => new SysDepartment + { + Departmentname = d.Departmentname + // 鍏朵粬闇�瑕佺殑瀛楁 + }) + .OrderBy("DEPARTMENTNAME") + .ToList(); + } } \ No newline at end of file -- Gitblit v1.9.3