From 4910c0fa81d93635e19a57c073c3a62c76053320 Mon Sep 17 00:00:00 2001 From: 南骏 池 <chiffly@163.com> Date: 星期五, 25 七月 2025 13:24:18 +0800 Subject: [PATCH] 1.巡检扫描工位 --- service/QC/IpqcService.cs | 212 +++++++++++++++++++++++++++++++++-------------------- 1 files changed, 132 insertions(+), 80 deletions(-) diff --git a/service/QC/IpqcService.cs b/service/QC/IpqcService.cs index 5fb5477..8186562 100644 --- a/service/QC/IpqcService.cs +++ b/service/QC/IpqcService.cs @@ -7,6 +7,7 @@ using SqlSugar; using System.Data; using System.Data.SqlClient; +using System.Text; using static Azure.Core.HttpHeader; using static Microsoft.EntityFrameworkCore.DbLoggerCategory; @@ -45,84 +46,48 @@ return (pageList, totalCount); } - public List<MesQaItemsDetectDetail5> GetItems(string? releaseNo, + public List<dynamic> GetItems(string? releaseNo, string? id) { var parsedGuid = Guid.Empty; - if (id != null) - { - var isValid = Guid.TryParse(id, out parsedGuid); - if (!isValid) - throw new ApplicationException("GUID杞崲閿欒"); - } + var sql = string.Format(@"SELECT [a].[guid] AS [Guid], + [a].[parent_guid] AS [ParentGuid], + [a].[release_no] AS [ReleaseNo], + [a].[check_qyt] AS [CheckQyt], + [a].[fac_level] AS [FacLevel], + [a].[fcheck_item] AS [FcheckItem], + [a].[fcheck_tool] AS [FcheckTool], + [a].[fdown_allow] AS [FdownAllow], + [a].[fcheck_level] AS [FcheckLevel], + [a].[fstand] AS [Fstand], + [a].[fup_allow] AS [FupAllow], + [a].[sample_size_no] AS [SampleSizeNo], + [a].[fspec_requ] AS [FspecRequ], + [a].[fre_qty] AS [FreQty], + N'1000' AS [Factory], + N'1000' AS [Company], + COUNT([b].[guid]) AS [FenterQty], + [a].[fcheck_resu] AS [FcheckResu], + [a].[forder] AS [Order], + [a].[ybsl] AS [Ybsl], + [a].stationName, + [a].IS_GWSCAN, + ISNULL((SELECT COUNT(1) + FROM MES_QA_ITEMS_DETECT_DETAIL13 C + WHERE C.parent_guid = A.guid), 0) AS [YbslIn] +FROM [MES_QA_ITEMS_DETECT_DETAIL5] [a] + Left JOIN [MES_QA_ITEMS_DETECT_DETAIL12] [b] ON ([a].[guid] = [b].[parent_guid]) +WHERE ([a].[release_no] = N'{0}' AND IS_GWSCAN = 1) +GROUP BY [a].[guid], [a].[parent_guid], [a].[release_no], [a].[fac_level], [a].[fcheck_item], [a].[fcheck_tool], + [a].[fdown_allow], [a].[fcheck_level], [a].[fstand], [a].[fup_allow], [a].[sample_size_no], [a].[fspec_requ], + [a].[fre_qty], [a].[check_qyt], [a].[fcheck_resu], [a].[forder], [a].[ybsl], [a].stationName, + [a].IS_GWSCAN +ORDER BY [a].[forder] ASC", releaseNo); - var Ybsl_In = Db.Queryable<MesQaItemsDetectDetail5>() - .Where(a => a.ParentGuid == parsedGuid) - .Count(); + var Ybsl_In = Db.Ado.SqlQuery<dynamic>(sql).ToList(); - return Db.Queryable<MesQaItemsDetectDetail5, MesQaItemsDetectDetail12>( - (a, b) => - new JoinQueryInfos(JoinType.Left, a.Guid == b.ParentGuid)) - .Where((a, b) => a.ReleaseNo == releaseNo) - .WhereIF(UtilityHelper.CheckGuid(parsedGuid), - (a, b) => a.Guid == parsedGuid) - .GroupBy((a, b) => new - { - a.Guid, - a.ParentGuid, - a.ReleaseNo, - a.FacLevel, - a.FcheckItem, - a.FcheckTool, - a.FdownAllow, - a.FcheckLevel, - a.Fstand, - a.FupAllow, - a.SampleSizeNo, - a.FspecRequ, - a.FreQty, - a.CheckQyt, - a.FcheckResu, - a.Order, - a.Ybsl, - a.ISRZXX, - a.IPQCRZXX, - a.IPQCRZXXDate, - a.IPQCRZXXNum, - a.IPQCpscs, - a.FcheckType, - }).Select((a, b) => new MesQaItemsDetectDetail5 - { - Guid = a.Guid, - ParentGuid = a.ParentGuid, - ReleaseNo = a.ReleaseNo, - CheckQyt = a.CheckQyt, - FacLevel = a.FacLevel, - FcheckItem = a.FcheckItem, - FcheckTool = a.FcheckTool, - FdownAllow = a.FdownAllow, - FcheckLevel = a.FcheckLevel, - Fstand = a.Fstand, - FupAllow = a.FupAllow, - SampleSizeNo = a.SampleSizeNo, - FspecRequ = a.FspecRequ, - FreQty = a.FreQty, - Factory = "1000", - Company = "1000", - FenterQty = SqlFunc.AggregateCount(b.Guid), - FcheckResu = a.FcheckResu, - Order = a.Order, - Ybsl = a.Ybsl, - YbslIn = Ybsl_In, - ISRZXX = a.ISRZXX, - IPQCRZXX = a.IPQCRZXX, - IPQCRZXXDate = a.IPQCRZXXDate.ToString(), - IPQCRZXXNum = a.IPQCRZXXNum, - IPQCpscs = a.IPQCpscs, - FcheckType =a.FcheckType, - }).OrderBy(a => a.Order) - .ToList(); + return Ybsl_In; } @@ -152,6 +117,7 @@ a => a.Guid == parsedGuid.ToString()) .Where(a => (a.FSubmit ?? 0) == 0) .OrderByDescending(a => a.CreateDate) + .OrderBy(a => a.checkTimeSlot) .ToPageList(queryObj.PageIndex, queryObj.Limit, ref totalCount); return (pageList, totalCount); @@ -159,20 +125,22 @@ //鏇存柊涓嶅悎鏍兼弿杩� - public int updateIpqcRzxx(LLJDto dto) + public int updateIpqcRzxx(dynamic dto) { if (dto == null) throw new ArgumentNullException(nameof(dto), "鍙傛暟瀵硅薄涓嶈兘涓� null"); - - // 鍙傛暟鏍¢獙锛堟牴鎹瓨鍌ㄨ繃绋嬫柊澧炲弬鏁帮級 if (string.IsNullOrEmpty(dto.pid?.ToString())) throw new ArgumentException("椤圭洰鏄庣粏id瀛樺湪闂锛岃鑱旂郴绠$悊鍛橈紒", nameof(dto.pid)); - var withOracle = Db.Updateable<MesQaItemsDetectDetail5>() - .SetColumns(s => s.IPQCRZXX == dto.inRzxxValue) - .Where(s => s.Guid.ToString() == dto.pid) - .ExecuteCommand(); + var sqlParams = new List<SugarParameter> { + new("@inRzxxValue", dto.inRzxxValue), + new("@pid", dto.pid) + }; - return withOracle; + var sql = @"UPDATE MES_QA_ITEMS_DETECT_DETAIL5 + SET ipqc_rzxx = @inRzxxValue + WHERE guid = @pid"; + + return Db.Ado.ExecuteCommand(sql, sqlParams); } @@ -335,4 +303,88 @@ return Db.Ado.ExecuteCommand(sql, sqlParams); } + + + public dynamic GetIpqcXjDaa(dynamic unity) + { + + var sqlParams = new List<SugarParameter> { }; + sqlParams.Add(new("@xt", unity.xt)); + + var sql2 = new StringBuilder(@" + SELECT '['+DAA001+']['+DAA021+']' AS daaInfo,DAA001,DAA021 + FROM WOMDAA + WHERE DAA015 = @xt AND daa018 NOT IN ('W:瀹屽伐', 'D:寰呭紑宸�')"); + + if (!string.IsNullOrWhiteSpace(unity.selectKey?.ToString())) + { + sqlParams.Add(new("@selectKey", unity.selectKey)); + sql2.Append(@" + AND (DAA001 LIKE '%' + @selectKey + '%' + OR DAA021 LIKE '%' + @selectKey + '%')"); + } + + var XcslItem = Db.Ado.SqlQuery<dynamic>(sql2.ToString(), sqlParams); + + if (XcslItem == null) + { + throw new Exception("璇ユ潯浠朵笅鏃犲搴斿伐鍗曚俊鎭紝璇烽噸鏂拌緭鍏ワ紒"); + } + + return XcslItem; + } + + + public dynamic SelIpqcItemsByGw(dynamic query) + { + if (query == null) throw new ArgumentNullException(nameof(query)); + + if (string.IsNullOrEmpty(query.userAccount?.ToString())) + throw new ArgumentException("鐢ㄦ埛鍚嶄笉鍏佽涓虹┖", nameof(query.userAccount)); + + if (string.IsNullOrEmpty(query.inOrderGuid1?.ToString())) + throw new ArgumentException("妫�楠屽崟涓昏〃GUID涓嶅厑璁镐负绌�", nameof(query.inOrderGuid1)); + + var _strMsg = ""; + var _status = -1; + + using (var conn = new SqlConnection(DbHelperSQL.strConn)) + using (var cmd = new SqlCommand("prc_selIpqcItemsByGw", conn)) + { + try + { + conn.Open(); + cmd.CommandType = CommandType.StoredProcedure; + + SqlParameter[] parameters = + { + new("@pi_user", SqlDbType.NVarChar, 100) { Value = query.userAccount }, + new("@pi_gw", SqlDbType.NVarChar, 100) { Value = query.gw }, + new("@pi_QaGuid1", SqlDbType.NVarChar, 100) { Value = query.inOrderGuid1 }, + new("@po_outMsg", SqlDbType.NVarChar, 2000) { Direction = ParameterDirection.Output }, + new("@po_outStatus", SqlDbType.Int) { Direction = ParameterDirection.Output } + }; + + cmd.Parameters.AddRange(parameters); + cmd.ExecuteNonQuery(); + + _strMsg = parameters[3].Value?.ToString() ?? ""; + _status = Convert.ToInt32(parameters[4].Value ?? -1); + + if (_status <= 0) throw new Exception(_strMsg); + + return new + { + message = _strMsg, + status = _status, + qaGuid = query.inOrderGuid1, + gw = query.gw + }; + } + catch (Exception ex) + { + throw new Exception($"宸ヤ綅鎵弿澶辫触锛歿ex.Message}"); + } + } + } } \ No newline at end of file -- Gitblit v1.9.3