From 567b9c89e3a8a7812a668909354f9fa634972278 Mon Sep 17 00:00:00 2001
From: 南骏 池 <chiffly@163.com>
Date: 星期四, 06 三月 2025 13:22:36 +0800
Subject: [PATCH] 1.销售退货初步功能完成(后续新增防呆)

---
 entity/SalesReturnNoticeDetail.cs          |  184 +++++++++++++
 Controllers/Warehouse/MesXsthController.cs |  255 ++++++++++++++++++
 entity/SalesReturnNotice.cs                |  268 +++++++++++++++++++
 service/Warehouse/MesXsthManager.cs        |  129 +++++++++
 4 files changed, 836 insertions(+), 0 deletions(-)

diff --git a/Controllers/Warehouse/MesXsthController.cs b/Controllers/Warehouse/MesXsthController.cs
new file mode 100644
index 0000000..3241ac0
--- /dev/null
+++ b/Controllers/Warehouse/MesXsthController.cs
@@ -0,0 +1,255 @@
+锘縰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;
+
+/// <summary>
+///     鐢熶骇琛ユ枡鐩稿叧鎺ュ彛
+/// </summary>
+[Route("api/[controller]")]
+[ApiController]
+public class MesXsthController : ControllerBase
+{
+    private readonly MesXsthManager _manager = new();
+
+    #region 鍩虹
+    /***杩涘叆妯$増绠$悊鍙互淇敼妯$増***/
+
+    /// <summary>
+    ///     鑾峰彇鎵�鏈�
+    /// </summary>
+    /// <returns></returns>
+    [HttpPost("GetList")]
+    public ResponseResult GetList()
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = _manager.GetList();
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
+    ///     鏍规嵁涓婚敭鑾峰彇
+    /// </summary>
+    /// <returns></returns>
+    [HttpPost("GetById")]
+    public ResponseResult GetById(int id)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = _manager.GetById(id);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
+    ///     鏍规嵁涓婚敭鍒犻櫎
+    /// </summary>
+    /// <returns></returns>
+    [HttpPost("DeleteByIds")]
+    public ResponseResult DeleteByIds([FromBody] object[] ids)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = _manager.DeleteByIds(ids);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
+    ///     娣诲姞
+    /// </summary>
+    /// <returns></returns>
+    [HttpPost("Insert")]
+    public ResponseResult Add([FromBody] MesItemBl data)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = _manager.Insert(data);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
+    ///     娣诲姞杩斿洖鑷
+    /// </summary>
+    /// <returns></returns>
+    [HttpPost("InsertReturnIdentity")]
+    public ResponseResult InsertReturnIdentity([FromBody] MesItemBl data)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = _manager.InsertReturnIdentity(data);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
+    ///     淇敼
+    /// </summary>
+    /// <returns></returns>
+    [HttpPost("Update")]
+    public ResponseResult Update([FromBody] MesItemBl data)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = _manager.Update(data);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    #endregion
+
+
+    /// <summary>
+    ///     鑾峰彇閿�鍞��璐х敵璇峰垪琛�
+    /// </summary>
+    /// <returns>閿�鍞��璐х敵璇峰垪琛�</returns>
+    [HttpPost("GetXsthBillNo")]
+    public ResponseResult GetXsthBillNo(WarehouseQuery query)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = _manager.GetXsthBillNo(query);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
+    ///     鏍规嵁鍗曞彿鑾峰彇閿�鍞��璐у崟鏄庣粏
+    /// </summary>
+    /// <param name="query">鏌ヨ鍙傛暟</param>
+    /// <returns>閿�鍞��璐у崟鏄庣粏鍒楄〃</returns>
+    [HttpPost("GetMesItemDetailByBillNo")]
+    public ResponseResult GetMesItemDetailByBillNo(
+        [FromBody] WarehouseQuery query)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = _manager.GetMesItemDetailByBillNo(query);
+
+            if (resultInfos.tbBillList.Count < 1)
+            {
+                return new ResponseResult
+                {
+                    status = 1,
+                    message = "璇ョ敵璇峰崟鍙蜂笉瀛樺湪鎴栨湭瀹℃牳锛侊紒锛�",
+                    data = ""
+                };
+            }
+
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
+    ///     鑾峰彇鏉$爜淇℃伅鍜岀墿鏂欎俊鎭�
+    /// </summary>
+    /// <returns></returns>
+    [HttpPost("XsthScanBarcode")]
+    public ResponseResult XsthScanBarcode(WarehouseQuery unity)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = _manager.XsthScanBarcode(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/entity/SalesReturnNotice.cs b/entity/SalesReturnNotice.cs
new file mode 100644
index 0000000..4b70e06
--- /dev/null
+++ b/entity/SalesReturnNotice.cs
@@ -0,0 +1,268 @@
+锘縰sing SqlSugar;
+
+namespace MES.Service.Modes;
+
+/// <summary>
+///     閿�鍞��璐х敵璇峰崟
+/// </summary>
+[SugarTable("SALES_RETURN_NOTICE")]
+public class SalesReturnNotice
+{
+    /// <summary>
+    ///     涓婚敭
+    /// </summary>
+    [SugarColumn(ColumnName = "ID", IsPrimaryKey = true)]
+    public Guid? Id { get; set; }
+
+    /// <summary>
+    ///     鍗曟嵁绫诲瀷
+    /// </summary>
+    [SugarColumn(ColumnName = "BILL_TYPE")]
+    public string? BillType { get; set; }
+
+    /// <summary>
+    ///     鍗曟嵁缂栧彿
+    /// </summary>
+    [SugarColumn(ColumnName = "BILL_NO")]
+    public string? BillNo { get; set; }
+
+    /// <summary>
+    ///     鏃ユ湡
+    /// </summary>
+    [SugarColumn(ColumnName = "F_DATE")]
+    public DateTime? FDate { get; set; }
+
+    /// <summary>
+    ///     缁撶畻甯佸埆
+    /// </summary>
+    [SugarColumn(ColumnName = "CURRENCY")]
+    public string? Currency { get; set; }
+
+    /// <summary>
+    ///     閿�鍞粍缁�
+    /// </summary>
+    [SugarColumn(ColumnName = "SALES_ORG")]
+    public string? SalesOrg { get; set; }
+
+    /// <summary>
+    ///     閿�鍞儴闂�
+    /// </summary>
+    [SugarColumn(ColumnName = "SALES_DEPT")]
+    public string? SalesDept { get; set; }
+
+    /// <summary>
+    ///     瀹㈡埛璁㈠崟
+    /// </summary>
+    [SugarColumn(ColumnName = "CUSTOMER_ORDER_NO")]
+    public string? CustomerOrderNo { get; set; }
+
+    /// <summary>
+    ///     閫�璐у鎴�
+    /// </summary>
+    [SugarColumn(ColumnName = "RETURN_CUSTOMER")]
+    public string? ReturnCustomer { get; set; }
+
+    /// <summary>
+    ///     娣樺疂瀹㈡埛澶囨敞
+    /// </summary>
+    [SugarColumn(ColumnName = "TAOBAO_REMARK")]
+    public string? TaobaoRemark { get; set; }
+
+    /// <summary>
+    ///     閫�璐у師鍥�
+    /// </summary>
+    [SugarColumn(ColumnName = "RETURN_REASON")]
+    public string? ReturnReason { get; set; }
+
+    /// <summary>
+    ///     浜よ揣鍦扮偣
+    /// </summary>
+    [SugarColumn(ColumnName = "DELIVERY_LOCATION")]
+    public string? DeliveryLocation { get; set; }
+
+    /// <summary>
+    ///     搴撳瓨缁勭粐
+    /// </summary>
+    [SugarColumn(ColumnName = "INVENTORY_ORG")]
+    public string? InventoryOrg { get; set; }
+
+    /// <summary>
+    ///     搴撳瓨閮ㄩ棬
+    /// </summary>
+    [SugarColumn(ColumnName = "INVENTORY_DEPT")]
+    public string? InventoryDept { get; set; }
+
+    /// <summary>
+    ///     搴撳瓨缁�
+    /// </summary>
+    [SugarColumn(ColumnName = "INVENTORY_GROUP")]
+    public string? InventoryGroup { get; set; }
+
+    /// <summary>
+    ///     浠撶鍛�
+    /// </summary>
+    [SugarColumn(ColumnName = "WAREHOUSE_MANAGER")]
+    public string? WarehouseManager { get; set; }
+
+    /// <summary>
+    ///     閿�鍞粍
+    /// </summary>
+    [SugarColumn(ColumnName = "SALES_GROUP")]
+    public string? SalesGroup { get; set; }
+
+    /// <summary>
+    ///     閿�鍞憳
+    /// </summary>
+    [SugarColumn(ColumnName = "SALES_PERSON")]
+    public string? SalesPerson { get; set; }
+
+    /// <summary>
+    ///     蹇�掑崟鍙�
+    /// </summary>
+    [SugarColumn(ColumnName = "EXPRESS_NO")]
+    public string? ExpressNo { get; set; }
+
+    /// <summary>
+    ///     鏀惰揣鏂�
+    /// </summary>
+    [SugarColumn(ColumnName = "RECEIVER")]
+    public string? Receiver { get; set; }
+
+    /// <summary>
+    ///     鏀惰揣鏂硅仈绯讳汉
+    /// </summary>
+    [SugarColumn(ColumnName = "RECEIVER_CONTACT")]
+    public string? ReceiverContact { get; set; }
+
+    /// <summary>
+    ///     鏀惰揣鏂瑰湴鍧�
+    /// </summary>
+    [SugarColumn(ColumnName = "RECEIVER_ADDRESS")]
+    public string? ReceiverAddress { get; set; }
+
+    /// <summary>
+    ///     鏀惰揣鏂瑰鍚�
+    /// </summary>
+    [SugarColumn(ColumnName = "RECEIVER_NAME")]
+    public string? ReceiverName { get; set; }
+
+    /// <summary>
+    ///     缁撶畻鏂�
+    /// </summary>
+    [SugarColumn(ColumnName = "SETTLE_PARTY")]
+    public string? SettleParty { get; set; }
+
+    /// <summary>
+    ///     鍒涘缓浜�
+    /// </summary>
+    [SugarColumn(ColumnName = "CREATED_BY")]
+    public string? CreatedBy { get; set; }
+
+    /// <summary>
+    ///     鍒涘缓鏃堕棿
+    /// </summary>
+    [SugarColumn(ColumnName = "CREATED_DATE")]
+    public DateTime? CreatedDate { get; set; }
+
+    /// <summary>
+    ///     淇敼浜�
+    /// </summary>
+    [SugarColumn(ColumnName = "MODIFIED_BY")]
+    public string? ModifiedBy { get; set; }
+
+    /// <summary>
+    ///     淇敼鏃堕棿
+    /// </summary>
+    [SugarColumn(ColumnName = "MODIFIED_DATE")]
+    public DateTime? ModifiedDate { get; set; }
+
+    /// <summary>
+    ///     鍏抽棴浜�
+    /// </summary>
+    [SugarColumn(ColumnName = "CLOSED_BY")]
+    public string? ClosedBy { get; set; }
+
+    /// <summary>
+    ///     鍏抽棴鍘熷洜
+    /// </summary>
+    [SugarColumn(ColumnName = "CLOSE_REASON")]
+    public string? CloseReason { get; set; }
+
+    /// <summary>
+    ///     鍏抽棴鏃ユ湡
+    /// </summary>
+    [SugarColumn(ColumnName = "CLOSE_DATE")]
+    public DateTime? CloseDate { get; set; }
+
+    /// <summary>
+    ///     瀹℃牳浜�
+    /// </summary>
+    [SugarColumn(ColumnName = "APPROVED_BY")]
+    public string? ApprovedBy { get; set; }
+
+    /// <summary>
+    ///     瀹℃牳鏃ユ湡
+    /// </summary>
+    [SugarColumn(ColumnName = "APPROVED_DATE")]
+    public DateTime? ApprovedDate { get; set; }
+
+    /// <summary>
+    ///     浣滃簾鐘舵��
+    /// </summary>
+    [SugarColumn(ColumnName = "CANCEL_STATUS")]
+    public string? CancelStatus { get; set; }
+
+    /// <summary>
+    ///     浣滃簾浜�
+    /// </summary>
+    [SugarColumn(ColumnName = "CANCELLED_BY")]
+    public string? CancelledBy { get; set; }
+
+    /// <summary>
+    ///     浣滃簾鏃ユ湡
+    /// </summary>
+    [SugarColumn(ColumnName = "CANCEL_DATE")]
+    public DateTime? CancelDate { get; set; }
+
+    /// <summary>
+    ///     鍏抽棴鐘舵��
+    /// </summary>
+    [SugarColumn(ColumnName = "CLOSE_STATUS")]
+    public string? CloseStatus { get; set; }
+
+    /// <summary>
+    ///     鏄惁鎵嬪姩鍏抽棴
+    /// </summary>
+    [SugarColumn(ColumnName = "MANUAL_CLOSE_FLAG")]
+    public string? ManualCloseFlag { get; set; }
+
+    /// <summary>
+    ///     ERP澶碔D
+    /// </summary>
+    [SugarColumn(ColumnName = "ERP_ID")]
+    public string? ErpId { get; set; }
+
+    /// <summary>
+    ///     鍗曟嵁鐘舵��
+    /// </summary>
+    [SugarColumn(ColumnName = "BILL_STATUS")]
+    public string? BillStatus { get; set; }
+
+    /// <summary>
+    ///     妫�鏌ョ姸鎬�
+    /// </summary>
+    [SugarColumn(ColumnName = "checkStatus")]
+    public bool? CheckStatus { get; set; }
+
+    /// <summary>
+    ///     瀹岀粨鐘舵��
+    /// </summary>
+    [SugarColumn(ColumnName = "finishStatus")]
+    public bool? FinishStatus { get; set; }
+
+    /// <summary>
+    ///     閿�鍞鍗曞彿
+    /// </summary>
+    [SugarColumn(ColumnName = "SALES_ORDER_ID")]
+    public Guid? SalesOrderId { get; set; }
+}
\ No newline at end of file
diff --git a/entity/SalesReturnNoticeDetail.cs b/entity/SalesReturnNoticeDetail.cs
new file mode 100644
index 0000000..48df0dc
--- /dev/null
+++ b/entity/SalesReturnNoticeDetail.cs
@@ -0,0 +1,184 @@
+锘縰sing SqlSugar;
+
+namespace MES.Service.Modes;
+
+/// <summary>
+///     閿�鍞��璐ч�氱煡鍗曟槑缁嗚〃
+/// </summary>
+[SugarTable("SALES_RETURN_NOTICE_DETAIL")]
+public class SalesReturnNoticeDetail
+{
+    /// <summary>
+    ///     涓婚敭
+    /// </summary>
+    [SugarColumn(ColumnName = "ID", IsPrimaryKey = true)]
+    public Guid? Id { get; set; }
+
+    /// <summary>
+    ///     鐢宠鍗曚富閿�
+    /// </summary>
+    [SugarColumn(ColumnName = "pid")]
+    public Guid? Pid { get; set; }
+
+    /// <summary>
+    ///     鐗╂枡ID
+    /// </summary>
+    [SugarColumn(ColumnName = "MATERIAL_ID")]
+    public string? MaterialId { get; set; }
+
+    /// <summary>
+    ///     鐗╂枡鍚嶇О
+    /// </summary>
+    [SugarColumn(ColumnName = "MATERIAL_NAME")]
+    public string? MaterialName { get; set; }
+
+    /// <summary>
+    ///     鐗╂枡瑙勬牸
+    /// </summary>
+    [SugarColumn(ColumnName = "MATERIAL_SPECIFICATION")]
+    public string? MaterialSpecification { get; set; }
+
+    /// <summary>
+    ///     閿�鍞崟浣�
+    /// </summary>
+    [SugarColumn(ColumnName = "SALES_UNIT_ID")]
+    public string? SalesUnitId { get; set; }
+
+    /// <summary>
+    ///     閿�鍞暟閲�
+    /// </summary>
+    [SugarColumn(ColumnName = "SALES_QUANTITY")]
+    public decimal? SalesQuantity { get; set; }
+
+    /// <summary>
+    ///     鏄惁璧犲搧
+    /// </summary>
+    [SugarColumn(ColumnName = "IS_FREE")]
+    public bool? IsFree { get; set; }
+
+    /// <summary>
+    ///     閫�璐ф棩鏈�
+    /// </summary>
+    [SugarColumn(ColumnName = "RETURN_DATE")]
+    public DateTime? ReturnDate { get; set; }
+
+    /// <summary>
+    ///     浠撳簱
+    /// </summary>
+    [SugarColumn(ColumnName = "WAREHOUSE")]
+    public string? Warehouse { get; set; }
+
+    /// <summary>
+    ///     璁″垝璺熻釜鍙�
+    /// </summary>
+    [SugarColumn(ColumnName = "PLAN_TRACKING_NUMBER")]
+    public string? PlanTrackingNumber { get; set; }
+
+    /// <summary>
+    ///     鎵瑰彿
+    /// </summary>
+    [SugarColumn(ColumnName = "LOT_NUMBER")]
+    public string? LotNumber { get; set; }
+
+    /// <summary>
+    ///     澶囨敞
+    /// </summary>
+    [SugarColumn(ColumnName = "NOTE")]
+    public string? Note { get; set; }
+
+    /// <summary>
+    ///     閫�璐х被鍨�
+    /// </summary>
+    [SugarColumn(ColumnName = "RETURN_TYPE")]
+    public string? ReturnType { get; set; }
+
+    /// <summary>
+    ///     璺熷崟鍛�
+    /// </summary>
+    [SugarColumn(ColumnName = "SALES_CLERK")]
+    public string? SalesClerk { get; set; }
+
+    /// <summary>
+    ///     搴撳瓨鍗曚綅
+    /// </summary>
+    [SugarColumn(ColumnName = "INVENTORY_UNIT")]
+    public string? InventoryUnit { get; set; }
+
+    /// <summary>
+    ///     搴撳瓨鏁伴噺
+    /// </summary>
+    [SugarColumn(ColumnName = "INVENTORY_QUANTITY")]
+    public decimal? InventoryQuantity { get; set; }
+
+    /// <summary>
+    ///     鐗╂枡绫诲埆
+    /// </summary>
+    [SugarColumn(ColumnName = "MATERIAL_CATEGORY")]
+    public string? MaterialCategory { get; set; }
+
+    /// <summary>
+    ///     璐т富绫诲瀷
+    /// </summary>
+    [SugarColumn(ColumnName = "OWNER_TYPE_ID")]
+    public string? OwnerTypeId { get; set; }
+
+    /// <summary>
+    ///     璐т富
+    /// </summary>
+    [SugarColumn(ColumnName = "OWNER_ID")]
+    public string? OwnerId { get; set; }
+
+    /// <summary>
+    ///     婧愬崟绫诲瀷
+    /// </summary>
+    [SugarColumn(ColumnName = "SOURCE_BILL_TYPE")]
+    public string? SourceBillType { get; set; }
+
+    /// <summary>
+    ///     婧愬崟鍗曞彿
+    /// </summary>
+    [SugarColumn(ColumnName = "SOURCE_BILL_NO")]
+    public string? SourceBillNo { get; set; }
+
+    /// <summary>
+    ///     璁㈠崟鍗曞彿
+    /// </summary>
+    [SugarColumn(ColumnName = "ORDER_BILL_NO")]
+    public string? OrderBillNo { get; set; }
+
+    /// <summary>
+    ///     ERP琛孖D
+    /// </summary>
+    [SugarColumn(ColumnName = "ERP_LINE_ID")]
+    public string? ErpLineId { get; set; }
+
+    /// <summary>
+    ///     ERP澶碔D
+    /// </summary>
+    [SugarColumn(ColumnName = "ERP_HEAD_ID")]
+    public string? ErpHeadId { get; set; }
+
+    /// <summary>
+    ///     鐢宠鏁伴噺
+    /// </summary>
+    [SugarColumn(ColumnName = "SQ_Qty")]
+    public decimal? SqQty { get; set; }
+
+    /// <summary>
+    ///     宸叉壂鏁伴噺
+    /// </summary>
+    [SugarColumn(ColumnName = "YS_Qty")]
+    public decimal? YsQty { get; set; }
+
+    /// <summary>
+    ///     閫佽揣鍗曟槑缁咷UID
+    /// </summary>
+    [SugarColumn(ColumnName = "DELIVE_DETAIL_GUID")]
+    public Guid? DeliverDetailGuid { get; set; }
+
+    /// <summary>
+    ///     搴忓彿
+    /// </summary>
+    [SugarColumn(ColumnName = "FSEQ")]
+    public int? FSeq { get; set; }
+}
\ No newline at end of file
diff --git a/service/Warehouse/MesXsthManager.cs b/service/Warehouse/MesXsthManager.cs
new file mode 100644
index 0000000..5298152
--- /dev/null
+++ b/service/Warehouse/MesXsthManager.cs
@@ -0,0 +1,129 @@
+锘縰sing Masuit.Tools;
+using MES.Service.Modes;
+using NewPdaSqlServer.DB;
+using NewPdaSqlServer.Dto.service;
+using NewPdaSqlServer.entity;
+using NewPdaSqlServer.util;
+using OracleInternal.Sharding;
+using SqlSugar;
+using SqlSugar.Extensions;
+using System.Data;
+using System.Data.SqlClient;
+
+namespace NewPdaSqlServer.service.Warehouse;
+
+public class MesXsthManager : Repository<MesItemBl>
+{
+    /// <summary>
+    ///     鑾峰彇閿�鍞��璐х敵璇峰垪琛�
+    /// </summary>
+    /// <returns>閿�鍞��璐х敵璇峰垪琛�</returns>
+    public List<string> GetXsthBillNo(WarehouseQuery query)
+    {
+        var list = Db.Queryable<SalesReturnNotice>()
+            .Where(s => s.CheckStatus == true)
+            .Select(s => s.BillNo).ToList();
+
+        return list;
+    }
+
+    /// <summary>
+    ///     鏍规嵁鍗曞彿鑾峰彇MES鐗╂枡琛ㄦ槑缁�
+    /// </summary>
+    /// <param name="query">浠撳簱鏌ヨ鍙傛暟</param>
+    /// <returns>鐗╂枡鏄庣粏鍒楄〃</returns>
+    public List<ItemDetailModel> GetMesItemDetailByBillNo(
+        WarehouseQuery query)
+    {
+        // 鍏宠仈鏌ヨ鐗╂枡琛ㄣ�佺墿鏂欐槑缁嗚〃鍜岀墿鏂欏熀纭�淇℃伅琛�
+        var mesItemTblDetails = Db
+            .Queryable<SalesReturnNotice, SalesReturnNoticeDetail, MesItems>(
+                (a, b, c) => new JoinQueryInfos(
+                    JoinType.Left,
+                    a.Id == b.Pid,
+                    JoinType.Left,
+                    b.MaterialId == c.Id.ToString())
+            ).Where((a, b, c) => a.BillNo == query.billNo && a.CheckStatus == true)
+            .Select<ItemDetailModel>((a, b, c) => new ItemDetailModel
+            {
+                ItemNo = c.ItemNo,
+                ItemName = c.ItemName,
+                ItemModel = c.ItemModel,
+                FQty = b.SqQty, // 鐢宠鏁伴噺
+                SQty = b.YsQty, // 宸叉壂鏁伴噺
+                Pid = b.Pid.ToString(),
+                FMaterialId = b.MaterialId,
+                Id = b.Id.ToString()
+            }).ToList();
+
+        // 绛涢�夊嚭寰呴��鏁伴噺澶т簬宸查��鏁伴噺鐨勮褰�
+        //var itemTblDetails = mesItemTblDetails
+        //    .Where(s => (s.Tld005 ?? 0) - (s.Tld006 ?? 0) > 0).ToList();
+
+        return mesItemTblDetails;
+    }
+
+    /// <summary>
+    /// 閿�鍞��璐у叆搴�
+    /// </summary>
+    /// <param name="unity"></param>
+    /// <returns></returns>
+    /// <exception cref="Exception"></exception>
+    public string XsthScanBarcode(WarehouseQuery unity)
+    {
+        var _strMsg = "";
+        var _intSum = "";
+        using (var conn = new SqlConnection(DbHelperSQL.strConn))
+        {
+            if (unity.userName.IsNullOrEmpty()) throw new Exception("鐢ㄦ埛鍚嶄笉鍏佽涓虹┖");
+            if (unity.sectionCode.IsNullOrEmpty()) throw new Exception("搴撲綅缂栧彿涓嶅厑璁镐负绌�");
+            if (unity.barcode.IsNullOrEmpty()) throw new Exception("鏉$爜涓嶅厑璁镐负绌�");
+            if (unity.billNo.IsNullOrEmpty()) throw new Exception("鐢宠鍗曞彿涓嶅厑璁镐负绌�");
+
+            using (var cmd = new SqlCommand("[prc_pda_inv_xsth]", conn))
+            {
+                try
+                {
+                    conn.Open();
+                    cmd.CommandType = CommandType.StoredProcedure;
+                    SqlParameter[] parameters =
+                    {
+                        new("@po_outMsg", SqlDbType.NVarChar, 300),
+                        new("@po_outSum", SqlDbType.NVarChar, 300),
+                        //new("@po_womInBarSum", SqlDbType.NVarChar, 300),
+                        new("@pi_user", unity.userName),
+                        new("@pi_barcode", unity.barcode),
+                        new("@pi_sectionCode", unity.sectionCode),
+                        new("@pi_billno", unity.billNo),
+
+                    };
+                    parameters[0].Direction = ParameterDirection.Output;
+                    parameters[1].Direction = ParameterDirection.Output;
+                   // parameters[2].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();
+                }
+            }
+        }
+    }
+}
\ No newline at end of file

--
Gitblit v1.9.3