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