From c6239213a60120d4f3f8d2105f48b6fa715a99ed Mon Sep 17 00:00:00 2001 From: 南骏 池 <chiffly@163.com> Date: 星期三, 21 五月 2025 13:30:02 +0800 Subject: [PATCH] 1.获取携客云信息返回结构优化 2.SRM送货单扫码收料-PDA 3.OA->MES新增字段 --- service/Warehouse/MesXkyShdManager.cs | 156 +++++++++++++++++++++++++++++++ Controllers/Warehouse/MesXkyShdController.cs | 98 +++++++++++++++++++ Controllers/Warehouse/MesXkyController.cs | 6 service/QC/OaApi.cs | 25 +--- service/Warehouse/MesXkyService.cs | 2 5 files changed, 265 insertions(+), 22 deletions(-) diff --git a/Controllers/Warehouse/MesXkyController.cs b/Controllers/Warehouse/MesXkyController.cs index 8d5ef13..5b9a143 100644 --- a/Controllers/Warehouse/MesXkyController.cs +++ b/Controllers/Warehouse/MesXkyController.cs @@ -41,7 +41,7 @@ { status = 0, message = "OK", - data = tbBillList + data = "" }; } catch (Exception ex) @@ -62,7 +62,7 @@ { status = 0, message = "OK", - data = tbBillList + data = "" }; } catch (Exception ex) @@ -83,7 +83,7 @@ { status = 0, message = "OK", - data = tbBillList + data = "" }; } catch (Exception ex) diff --git a/Controllers/Warehouse/MesXkyShdController.cs b/Controllers/Warehouse/MesXkyShdController.cs new file mode 100644 index 0000000..8aad5e8 --- /dev/null +++ b/Controllers/Warehouse/MesXkyShdController.cs @@ -0,0 +1,98 @@ +锘縰sing System.Dynamic; +using Microsoft.AspNetCore.Mvc; +using NewPdaSqlServer.Dto.service; +using NewPdaSqlServer.entity; +using NewPdaSqlServer.service.Warehouse; +using NewPdaSqlServer.util; + +namespace NewPdaSqlServer.Controllers.Warehouse; + +[ApiController] +[Route("api/[controller]")] +public class MesXkyShdController : ControllerBase +{ + private readonly MesXkyShdManager m = new(); + + /// <summary> + /// 鑾峰彇鏉$爜淇℃伅鍜岀墿鏂欎俊鎭� + /// </summary> + /// <returns></returns> + [HttpPost("GetShdhItems")] + public ResponseResult GetShdhItems(dynamic unity) + { + try + { + dynamic resultInfos = new ExpandoObject(); + resultInfos.tbBillList = m.GetShdhItems(unity); + resultInfos.tbMesItems = m.GetShdhBar(unity); + return new ResponseResult + { + status = 0, + message = "OK", + data = resultInfos + }; + } + catch (Exception ex) + { + return ResponseResult.ResponseError(ex); + } + } + + /// <summary> + /// 鑾峰彇鏉$爜淇℃伅鍜岀墿鏂欎俊鎭� + /// </summary> + /// <returns></returns> + [HttpPost("GetBarInfo")] + public ResponseResult GetBarInfo(WarehouseQuery unity) + { + try + { + dynamic resultInfos = new ExpandoObject(); + resultInfos.tbBillList = m.GetBarInfo(unity); + if(resultInfos.tbBillList == null) + { + return new ResponseResult + { + status = -1, + message = "姝ゆ潯鐮佷笉瀛樺湪锛侊紒锛�", + data = resultInfos + }; + } + resultInfos.tbMesItems = m.GetItemNo(resultInfos.tbBillList.ItemId); + return new ResponseResult + { + status = 0, + message = "OK", + data = resultInfos + }; + } + catch (Exception ex) + { + return ResponseResult.ResponseError(ex); + } + } + + /// <summary> + /// 鍒拌揣鍗曟敹璐� + /// </summary> + /// <returns></returns> + [HttpPost("ScanBar")] + public ResponseResult ScanBar(dynamic unity) + { + try + { + dynamic resultInfos = new ExpandoObject(); + resultInfos.tbBillList = m.ScanBar(unity); + return new ResponseResult + { + status = 0, + message = resultInfos.tbBillList, + data = resultInfos + }; + } + catch (Exception ex) + { + return ResponseResult.ResponseError(ex); + } + } +} \ No newline at end of file diff --git a/service/QC/OaApi.cs b/service/QC/OaApi.cs index 8430e3b..0d83dd4 100644 --- a/service/QC/OaApi.cs +++ b/service/QC/OaApi.cs @@ -185,21 +185,7 @@ private JArray BuildMainData(dynamic queryObj) { // 浣跨敤鍙傛暟鍖栨煡璇㈤槻姝QL娉ㄥ叆 - const string mainSql = @" -SELECT TOP 1 - A.fBillNo AS ycczdh, - C.item_no AS wlbm, - C.item_name AS jzmcwlmc, - D.supp_name AS khgys, - B.bill_no AS dhdhmes, - (SELECT STRING_AGG(releaseNo+':' + mx.fng_desc+'\n', ',') AS OrderIDs -FROM [Mes_QC_Exceptional_Detail] mx where mx.pGuid=a.guid -) AS bhgpqxms -FROM Mes_QC_Exceptional A -LEFT JOIN MES_INV_ITEM_ARN B ON A.aboutGuid = b.guid -LEFT JOIN MES_ITEMS C ON A.itemId = c.item_id -LEFT JOIN MES_SUPPLIER D ON B.supp_id = D.id -WHERE a.guid = @guid"; + const string mainSql = @"EXEC select_oa_BuildMainData @guid"; var mainData = Db.Ado.SqlQuery<dynamic>(mainSql, new { guid = queryObj.qcczdGuid }); @@ -375,8 +361,10 @@ { // 浣跨敤鍙傛暟鍖栨煡璇㈣幏鍙栨槑缁嗘暟鎹� const string mainSql = @"select ROW_NUMBER() over (ORDER BY Jy_Date) AS xh,releaseNo AS jydh, Jy_Date AS jydrq, batchQty as sjsl, - chouQty AS cys, badQty AS bls, badProb AS bll - from [Mes_QC_Exceptional_Detail] + chouQty AS cys, badQty AS bls, badProb AS bll,C.USER_NAME AS jyr + from Mes_QC_Exceptional_Detail A + LEFT JOIN MES_QA_ITEMS_DETECT_01 B ON A.releaseNo = B.release_no + LEFT JOIN SYS_USER C ON C.ACCOUNT = B.fcheck_by WHERE pGuid = @guid"; var details = Db.Ado.SqlQuery<dynamic>(mainSql, new { guid = queryObj.qcczdGuid }); @@ -391,6 +379,7 @@ { //new JObject { ["fieldName"] = "xh", ["fieldValue"] = record.xh?.ToString() ?? "" }, new JObject { ["fieldName"] = "jydh", ["fieldValue"] = record.jydh?.ToString() ?? "" }, + new JObject { ["fieldName"] = "jyr", ["fieldValue"] = record.jyr?.ToString() ?? "" }, new JObject { ["fieldName"] = "jydrq", // 鏍煎紡鍖栦负"yyyy-MM-dd"瀛楃涓� @@ -403,7 +392,7 @@ new JObject { ["fieldName"] = "sjsl", ["fieldValue"] = (float)(record.sjsl ?? 0m) }, new JObject { ["fieldName"] = "cys", ["fieldValue"] = (float)(record.cys ?? 0) }, new JObject { ["fieldName"] = "bls", ["fieldValue"] = (float)(record.bls ?? 0) }, - new JObject { ["fieldName"] = "bll", ["fieldValue"] = 1 } + new JObject { ["fieldName"] = "bll", ["fieldValue"] = 1, } }; tableRecords.Add(new JObject diff --git a/service/Warehouse/MesXkyService.cs b/service/Warehouse/MesXkyService.cs index cbb4aca..ceb40ea 100644 --- a/service/Warehouse/MesXkyService.cs +++ b/service/Warehouse/MesXkyService.cs @@ -152,7 +152,7 @@ // 鏂板鍒楄〃绌哄�兼鏌� if (noticeList == null || !noticeList.Any() || noticeList.Count < 1) { - _logMessageDhdBar += $"鏈鑾峰彇鏀惰揣鍗曟暟鎹负绌�"; + _logMessageDHD += $"鏈鑾峰彇鏀惰揣鍗曟暟鎹负绌�"; return result; } diff --git a/service/Warehouse/MesXkyShdManager.cs b/service/Warehouse/MesXkyShdManager.cs new file mode 100644 index 0000000..f86518d --- /dev/null +++ b/service/Warehouse/MesXkyShdManager.cs @@ -0,0 +1,156 @@ +锘縰sing System.Data; +using System.Data.SqlClient; +using Masuit.Tools; +using NewPdaSqlServer.DB; +using NewPdaSqlServer.Dto.service; +using NewPdaSqlServer.entity; +using SqlSugar; +using static Microsoft.EntityFrameworkCore.DbLoggerCategory; + +namespace NewPdaSqlServer.service.Warehouse; + +public class MesXkyShdManager : Repository<MesCgthSq> +{ + + public dynamic GetShdhItems(dynamic unity) + { + //// 浣跨敤鍙傛暟鍖栨煡璇㈤槻姝QL娉ㄥ叆 + var sqlParams = new List<SugarParameter> { new("@shdh", unity.shdh) }; + + var sql1 = @"select 1 from DELIVERY_NOTICE WHERE delivery_no = @shdh "; + + var shdh = Db.Ado.SqlQuery<dynamic>(sql1, sqlParams); + if (shdh.Count < 1) + throw new Exception($"閫佽揣鍗曞彿銆恵unity.shdh}銆戜笉瀛樺湪鎴栨湭鍚屾!"); + + + + var sql2 = @"select D.item_no, + D.item_name, + D.item_model, + A.delivery_qty AS shsl, + ISNULL(E.quantity, 0) as ysl, + A.delivery_qty - ISNULL(E.quantity, 0) as dssl, + A.po_erp_no, + C.PURCHASE_ORDER_LINE_NUMBER, + B.GUID AS DDHID +from DELIVERY_NOTICE_DETAIL A + LEFT JOIN dbo.MES_INV_ITEM_ARN B on B.paper_bill_no = A.delivery_no + LEFT JOIN MES_ROH_IN_DATA C ON A.po_line_no = C.EBELN_K3ID + LEFT JOIN MES_ITEMS D ON C.ITEM_ID = D.item_id + LEFT JOIN dbo.MES_INV_ITEM_ARN_DETAIL E on E.parent_Guid = B.guid AND E.line_k3id = A.po_line_no +WHERE A.delivery_no = @shdh"; + + var XcslItem = Db.Ado.SqlQuery<dynamic>(sql2, sqlParams); + if (XcslItem.Count < 1) + throw new Exception($"閫佽揣鍗曞彿銆恵unity.shdh}銆戦�佽揣鏄庣粏涓嶅瓨鍦ㄦ垨鏈悓姝�!"); + + return XcslItem; // 杩斿洖绗竴琛屾暟鎹紝濡傛灉娌℃湁鍒欒繑鍥� null + } + + public dynamic GetShdhBar(dynamic unity) + { + + //// 浣跨敤鍙傛暟鍖栨煡璇㈤槻姝QL娉ㄥ叆 + var sqlParams = new List<SugarParameter> { new("@shdh", unity.shdh) }; + + var sql2 = @"SELECT A.small_barcode, + D.item_no, + D.item_name, + D.item_model, + A.include_qty, + A.po_erp_no, + ISNULL(B.OLDQTY,0) AS ysl +FROM TBL_BARCODE_INFORMATION A + LEFT JOIN MES_INV_ITEM_BARCODES B ON a.small_barcode = b.ITEM_BARCODE + LEFT JOIN MES_ROH_IN_DATA C ON C.EBELN_K3ID = A.po_line_no + LEFT JOIN MES_ITEMS D ON D.item_id = C.item_id +WHERE A.delivery_no = @shdh"; + + var XcslItem = Db.Ado.SqlQuery<dynamic>(sql2, sqlParams); + + if (XcslItem.Count < 1) + throw new Exception($"閫佽揣鍗曞彿銆恵unity.shdh}銆戞潯鐮佹槑缁嗕笉瀛樺湪鎴栨湭鍚屾!"); + + return XcslItem; // 杩斿洖绗竴琛屾暟鎹紝濡傛灉娌℃湁鍒欒繑鍥� null + } + + + public MesInvItemBarcodes GetBarInfo(WarehouseQuery unity) + { + return Db.Queryable<MesInvItemBarcodes>() + .Where(s => s.ItemBarcode == unity.barcode) + .First(); // 杩斿洖绗竴琛屾暟鎹紝濡傛灉娌℃湁鍒欒繑鍥� null + } + + public MesItems GetItemNo(decimal strItemId) + { + return Db.Queryable<MesItems>() + .Where(s => s.Id == strItemId) + .First(); + } + + public string ScanBar(dynamic unity) + { + var _strMsg = ""; + var _intSum = ""; + using (var conn = new SqlConnection(DbHelperSQL.strConn)) + { + // 鏂板绌哄璞℃牎楠� + if (unity == null) throw new ArgumentNullException(nameof(unity), "鍙傛暟瀵硅薄涓嶈兘涓� null"); + + // 鍙傛暟鏍¢獙澧炲己 + if (string.IsNullOrEmpty(unity.userName?.ToString())) + throw new ArgumentException("鐢ㄦ埛璐︽埛涓嶅厑璁镐负绌�", nameof(unity.userName)); + + if (string.IsNullOrEmpty(unity.shdh?.ToString())) + throw new ArgumentException("閫佽揣鍗曞彿涓嶅厑璁镐负绌�", nameof(unity.shdh)); + + if (string.IsNullOrEmpty(unity.barcode?.ToString())) + throw new ArgumentException("鏉$爜涓嶅厑璁镐负绌�", nameof(unity.barcode)); + + using (var cmd = new SqlCommand("[prc_pda_inv_dhdsh]", conn)) + { + try + { + conn.Open(); + cmd.CommandType = CommandType.StoredProcedure; + SqlParameter[] parameters = + { + new("@po_outMsg", SqlDbType.NVarChar, 300) { Direction = ParameterDirection.Output }, + new("@po_outSum", SqlDbType.NVarChar, 300) { Direction = ParameterDirection.Output }, + new("@pi_user", SqlDbType.NVarChar) { Value = unity.userName.ToString() }, // 鏄惧紡绫诲瀷杞崲 + new("@pi_barcode", SqlDbType.NVarChar) { Value = unity.barcode.ToString() }, + new("@pi_shdh", SqlDbType.NVarChar) { Value = unity.shdh.ToString() } + }; + parameters[0].Direction = ParameterDirection.Output; + parameters[1].Direction = ParameterDirection.Output; + + foreach (var parameter in parameters) + cmd.Parameters.Add(parameter); + cmd.ExecuteNonQuery(); + _strMsg = parameters[0].Value.ToString(); + _intSum = parameters[1].Value.ToString(); + + var result = Convert.ToInt32(_intSum); + if (result <= 0) throw new Exception(_strMsg); + + return _strMsg; + + //return 0; + + } + catch (Exception ex) + { + throw new Exception(ex.Message); + } + finally + { + conn.Close(); + } + } + } + } +} + + -- Gitblit v1.9.3