From f1d1d3b67316c4dd7d36c15a82df5e66fde74a69 Mon Sep 17 00:00:00 2001 From: cdk <2441919651@qq.com> Date: 星期三, 10 九月 2025 19:22:11 +0800 Subject: [PATCH] 增加agc点位 --- service/Wom/WomdaaManager.cs | 199 ++++++++++++++++++++++++++++++------------------- 1 files changed, 120 insertions(+), 79 deletions(-) diff --git a/service/Wom/WomdaaManager.cs b/service/Wom/WomdaaManager.cs index cff4625..547ff5b 100644 --- a/service/Wom/WomdaaManager.cs +++ b/service/Wom/WomdaaManager.cs @@ -2,6 +2,7 @@ using System.Data.SqlClient; using System.Text; using Masuit.Tools; +using Masuit.Tools.Hardware; using Microsoft.SqlServer.Server; using NewPdaSqlServer.DB; using NewPdaSqlServer.Dto.service; @@ -17,7 +18,7 @@ //杩欓噷闈㈠啓鐨勪唬鐮佷笉浼氱粰瑕嗙洊,濡傛灉瑕侀噸鏂扮敓鎴愯鍒犻櫎 WomdaaManager.cs //鑾峰彇宸ュ崟鍙� - public List<string> GetProductionPickDaa001(WarehouseQuery query,string orgId) + public List<string> GetProductionPickDaa001(WarehouseQuery query, dynamic requestInfo) { var sql = "SELECT DAA001 FROM WOMDAA A LEFT JOIN (SELECT COUNT(1) UN_NUM, PID FROM WOMDAB WHERE DAB006 > DAB007 GROUP BY DAB002) B ON A.GUID = B.daaGuid WHERE DAA001 = " + @@ -28,9 +29,57 @@ } //鏍规嵁宸ュ崟鍙疯繑鍥炰骇鍝佸瀷鍙峰拰寰呴鐗╂枡 - public ProductionPickDto GetItemsByDaa001(WarehouseQuery query,string OrgId) + public dynamic GetItemsByDaa001(WarehouseQuery query, dynamic requestInfo) { - return getDaa001(query); + if (string.IsNullOrEmpty(query.daa001)) + throw new Exception("璇烽�夊伐鍗曞彿锛�"); + + if (query == null) + throw new ArgumentNullException(nameof(query), "鍙傛暟瀵硅薄涓嶈兘涓簄ull"); + + if (string.IsNullOrEmpty(query.daa001?.ToString())) + throw new ArgumentException("宸ュ崟鍙蜂笉鑳戒负绌�", nameof(query.daa001)); + + var orgId = requestInfo.OrgId; + + if (orgId == null) + throw new Exception("缁勭粐涓嶅瓨鍦紒"); + + // 璋冪敤瀛樺偍杩囩▼鑾峰彇鐗╂枡鏄庣粏 + var parameters = new[] + { + new SugarParameter("@daa001", query.daa001), + new SugarParameter("@pi_orgId",orgId), + new SugarParameter("@inP1", null), + new SugarParameter("@inP2", null), + new SugarParameter("@inP3", null), + new SugarParameter("@inP4", null) + }; + var womdabs = Db.Ado.SqlQuery<ItemDetailModel>("EXEC prc_pda_scll_detailList @daa001", parameters); + + var DS_list = womdabs.Where(s => s.DSQty > 0).ToList(); + var YS_list = womdabs.Where(s => s.SQty > 0).ToList(); + + // 淇锛氳ˉ鍏呰幏鍙� womdaa 瀵硅薄 + var daa001Value = query.daa001?.ToString(); + var womdaa = Db.Ado.SqlQuery<dynamic>("EXEC prc_pda_getDaaInfo @daa001", parameters).First(); + + if (womdaa == null) + { + throw new Exception("璇ュ伐鍗曚俊鎭笉瀛樺湪锛岃鏍稿锛�"); + } + + var dto = new ProductionPickDto + { + daa001 = query.daa001, + daaInfo = womdaa, + PlanNo = womdaa.workNo, + startTime = womdaa.startTime, + items = DS_list, + Ysitems = YS_list + }; + + return dto; } public ProductionPickDto ScanCode(WarehouseQuery query) @@ -425,10 +474,11 @@ if (string.IsNullOrEmpty(query.Kbbarcode?.ToString())) throw new ArgumentException("鍗℃澘鏉$爜涓嶅厑璁镐负绌�", nameof(query.userName)); - var sql = string.Format(@"SELECT QUANTITY, + var sql = string.Format(@"SELECT QUANTITY,agvPostion, ISNULL((SELECT COUNT(1) FROM MES_INV_ITEM_BARCODES_TBMX WHERE ABOUT_TB_BARCODE = '{0}'), 0) AS YSum, DAA001 FROM MES_INV_ITEM_BARCODES A LEFT JOIN WOMDAA B ON A.ABOUT_GUID = B.guid +left join MES_WORKSHOP_LINE C ON DAA015 = C.id AND iSAgV = 1 WHERE ITEM_BARCODE = '{0}' ", query.Kbbarcode); var ZsBarInfo = Db.Ado.SqlQuery<dynamic>(sql); @@ -706,7 +756,7 @@ //鏍规嵁宸ュ崟鍙疯繑鍥炰骇鍝佸瀷鍙峰拰寰呴鐗╂枡 - public XcslResultDto GetItemsXcsl(WarehouseQuery query) + public dynamic GetItemsXcsl(WarehouseQuery query) { if (string.IsNullOrEmpty(query.daa001)) throw new Exception("宸ュ崟鍙蜂负绌�"); @@ -725,73 +775,49 @@ if (womdaa?.Daa001 == null) throw new Exception("宸ュ崟鍙蜂笉瀛樺湪"); - // 浣跨敤鍙傛暟鍖栨煡璇㈤槻姝QL娉ㄥ叆 - var sqlParams = new List<SugarParameter> { new("@daa001", query.daa001) }; + if (womdaa?.Daa001 == null) throw new Exception("宸ュ崟鍙蜂笉瀛樺湪"); - var sql1 = @"SELECT A.item_out_no, - SUM(B.QUANTITY) AS BL_Num, - ISNULL(Sub.JS_Sum, 0) AS JS_Num, -- 浣跨敤LEFT JOIN瀛愭煡璇㈢殑缁撴灉 - C.item_no, - C.item_name, - C.item_model, - D.USER_NAME -FROM MES_INV_ITEM_OUTS A - LEFT JOIN MES_INV_ITEM_OUT_C_DETAILS B ON A.GUID = B.ITEM_OUT_ID - LEFT JOIN MES_ITEMS C ON B.ITEM_ID = C.item_id - LEFT JOIN SYS_USER D ON A.create_by = D.ACCOUNT --- 鏂板LEFT JOIN鑱氬悎瀛愭煡璇� - LEFT JOIN (SELECT B1.ITEM_ID, - SUM(B1.QUANTITY) AS JS_Sum - FROM MES_INV_ITEM_OUTS A1 - LEFT JOIN MES_INV_ITEM_OUT_C_DETAILS B1 ON A1.GUID = B1.ITEM_OUT_ID - WHERE A1.out_type = '鐢熶骇棰嗘枡' - AND A1.task_no = @daa001 - AND ISNULL(B1.IS_XCSL, '0') = 1 - GROUP BY B1.ITEM_ID -- 鎸塈TEM_ID鎻愬墠鑱氬悎 -) AS Sub ON Sub.ITEM_ID = C.item_id -WHERE A.out_type = '鐢熶骇棰嗘枡' - AND A.task_no = @daa001 -GROUP BY A.item_out_no, - C.item_no, - C.item_name, - C.item_model, - D.USER_NAME, - C.item_id, - ISNULL(Sub.JS_Sum, 0);"; + // 浣跨敤ADO.NET鐩存帴璋冪敤瀛樺偍杩囩▼ + var ds = new DataSet(); - var XcslItem = Db.Ado.SqlQuery<dynamic>(sql1, sqlParams); + // 鍋囪鎮ㄤ娇鐢ㄧ殑鏄疭QL Server锛屽垱寤篠qlConnection + using (var conn = new SqlConnection(DbHelperSQL.strConn)) + { + conn.Open(); - var sql2 = @"SELECT B.ITEM_BARCODE ,B.QUANTITY,C.item_no,C.item_name,D.USER_NAME,A.create_date -FROM MES_INV_ITEM_OUTS A -LEFT JOIN MES_INV_ITEM_OUT_C_DETAILS B ON A.GUID = B.ITEM_OUT_ID -LEFT JOIN MES_ITEMS C ON B.ITEM_ID = C.item_id -LEFT JOIN SYS_USER D ON A.create_by = D.ACCOUNT -WHERE out_type = '鐢熶骇棰嗘枡' -AND A.task_no = @daa001 -AND ISNULL(IS_XCSL,'0') = 0"; + using (var cmd = new SqlCommand("prc_pda_xcsl_detailList", conn)) + { + cmd.CommandType = CommandType.StoredProcedure; - var XcslWjsBar = Db.Ado.SqlQuery<dynamic>(sql2, sqlParams); + // 娣诲姞鍙傛暟 + cmd.Parameters.Add(new SqlParameter("@daa001", query.daa001)); + cmd.Parameters.Add(new SqlParameter("@pi_orgId", DBNull.Value)); + cmd.Parameters.Add(new SqlParameter("@inP1", DBNull.Value)); + cmd.Parameters.Add(new SqlParameter("@inP2", DBNull.Value)); + cmd.Parameters.Add(new SqlParameter("@inP3", DBNull.Value)); + cmd.Parameters.Add(new SqlParameter("@inP4", DBNull.Value)); - var sql3 = @"SELECT B.ITEM_BARCODE ,B.QUANTITY,C.item_no,C.item_name,D.USER_NAME,B.XCSL_CREATE_DATE -FROM MES_INV_ITEM_OUTS A -LEFT JOIN MES_INV_ITEM_OUT_C_DETAILS B ON A.GUID = B.ITEM_OUT_ID -LEFT JOIN MES_ITEMS C ON B.ITEM_ID = C.item_id -LEFT JOIN SYS_USER D ON B.XCSL_CREATE_BY = D.ACCOUNT -WHERE out_type = '鐢熶骇棰嗘枡' -AND A.task_no = @daa001 -AND ISNULL(IS_XCSL,'0') = 1"; + using (var adapter = new System.Data.SqlClient.SqlDataAdapter(cmd)) + { + adapter.Fill(ds); + } + } + } - var XcslYjsBar = Db.Ado.SqlQuery<dynamic>(sql3, sqlParams); + // 杞崲缁撴灉 + var XcslItem = Db.Utilities.DataTableToDynamic(ds.Tables[0]); + var XcslWjsBar = Db.Utilities.DataTableToDynamic(ds.Tables[1]); + var XcslYjsBar = Db.Utilities.DataTableToDynamic(ds.Tables[2]); + var daaInfo = Db.Utilities.DataTableToDynamic(ds.Tables[3]); - - var dto = new XcslResultDto + var dto = new { GD_Num = womdaa.Daa008, workNo = womdaa.Daa021, XcslItemList = XcslItem, XcslWjsBarList = XcslWjsBar, - XcslYjsBarList = XcslYjsBar - + XcslYjsBarList = XcslYjsBar, + DaaInfoList = daaInfo }; return dto; @@ -935,32 +961,45 @@ } } - public dynamic GetXcslDaa(dynamic unity) + public dynamic GetXcslDaa(dynamic unity,dynamic RequestInfo) { - var sqlParams = new List<SugarParameter> { }; + //var sqlParams = new List<SugarParameter> { }; - var sql2 = new StringBuilder(@" - SELECT '['+DAA001+']['+DAA021+']' AS daaInfo,DAA001,DAA021 - FROM WOMDAA - WHERE daa018 <>'W:瀹屽伐'"); + //var sql2 = new StringBuilder(@" + //SELECT '['+DAA001+']['+DAA021+']' AS daaInfo,DAA001,DAA021 + //FROM WOMDAA + //WHERE daa018 <>'W:瀹屽伐'"); - if (!string.IsNullOrWhiteSpace(unity.selectKey?.ToString())) + //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("璇ユ潯浠朵笅鏃犲搴斿伐鍗曚俊鎭紝璇烽噸鏂拌緭鍏ワ紒"); + //} + var orgId = RequestInfo.OrgId; + var parameters = new List<SugarParameter> { - sqlParams.Add(new("@selectKey", unity.selectKey)); - sql2.Append(@" - AND (DAA001 LIKE '%' + @selectKey + '%' - OR DAA021 LIKE '%' + @selectKey + '%')"); - } + new SugarParameter("@selectKey", unity.selectKey), + new SugarParameter("@inP1", orgId), // 鍙�夊弬鏁� + new SugarParameter("@inP2", unity.selDaaType), // 鍙�夊弬鏁� + new SugarParameter("@inP3", null), // 鍙�夊弬鏁� + new SugarParameter("@inP4", null), // 鍙�夊弬鏁� + // ...鍏朵粬鍙�夊弬鏁� + }; - var XcslItem = Db.Ado.SqlQuery<dynamic>(sql2.ToString(), sqlParams); + var result = Db.Ado.SqlQuery<dynamic>("EXEC prc_pda_getWorkOrderInfo @selectKey, @inP1, @inP2, @inP3, @inP4", parameters); - if (XcslItem == null) - { - throw new Exception("璇ユ潯浠朵笅鏃犲搴斿伐鍗曚俊鎭紝璇烽噸鏂拌緭鍏ワ紒"); - } - return XcslItem; + return result; } @@ -1342,7 +1381,8 @@ var sqlParams = new List<SugarParameter> { }; - var sql2 = new StringBuilder(@"SELECT NAME,line_no FROM MES_WORKSHOP_LINE WHERE isAgv = 1 ORDER BY line_no"); + var sql2 = new StringBuilder(@" +SELECT NAME,line_no FROM MES_WORKSHOP_LINE WHERE isAgv = 1 ORDER BY line_no"); var XtItem = Db.Ado.SqlQuery<dynamic>(sql2.ToString(), sqlParams); @@ -1382,6 +1422,7 @@ { new("@pi_user", SqlDbType.NVarChar, 100) { Value = query.userAccount }, new("@pi_kb_barcode", SqlDbType.NVarChar, 100) { Value = query.KbBar }, + new("@in1", SqlDbType.NVarChar, 100) { Value = query.AgvDw }, new("@outMsg", SqlDbType.NVarChar, 2500) { Direction = ParameterDirection.Output }, new("@outSum", SqlDbType.Int) { Direction = ParameterDirection.Output } }; -- Gitblit v1.9.3