From 850acf915061b9c40e486e35f88d2f24e013da22 Mon Sep 17 00:00:00 2001
From: 南骏 池 <chiffly@163.com>
Date: 星期日, 31 八月 2025 21:21:56 +0800
Subject: [PATCH] 1.销售退货优化——hyx 2.销售出库优化——hyx 3.库位查询——cdk
---
service/Warehouse/MesKwcxManager.cs | 99 ++++++++++++++++
Controllers/Warehouse/MesKwcxController.cs | 132 ++++++++++++++++++++++
service/Warehouse/MesXsckManager.cs | 59 ++++-----
service/Warehouse/MesXsthManager.cs | 64 ++++++----
4 files changed, 297 insertions(+), 57 deletions(-)
diff --git a/Controllers/Warehouse/MesKwcxController.cs b/Controllers/Warehouse/MesKwcxController.cs
new file mode 100644
index 0000000..308f38e
--- /dev/null
+++ b/Controllers/Warehouse/MesKwcxController.cs
@@ -0,0 +1,132 @@
+锘縰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 MesKwcxController : BaseController
+{
+ private readonly MesKwcxManager m = new();
+
+ /// <summary>
+ /// 鑾峰彇鏉$爜淇℃伅鍜岀墿鏂欎俊鎭�
+ /// </summary>
+ /// <returns></returns>
+ [HttpPost("GetBarInfoList")]
+ public ResponseResult GetBarInfoList([FromBody] dynamic query)
+ {
+ try
+ {
+ dynamic resultInfos = new ExpandoObject();
+ resultInfos.tbBarInfoList = m.GetBarInfoList(query);
+ 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([FromBody] dynamic query)
+ {
+ try
+ {
+ dynamic resultInfos = new ExpandoObject();
+ resultInfos.tbBarInfo = m.GetBarInfo(query);
+ if(resultInfos.tbBarInfo == null)
+ {
+ return new ResponseResult
+ {
+ status = -1,
+ message = "姝ゆ潯鐮佷笉瀛樺湪锛侊紒锛�",
+ data = resultInfos
+ };
+ }
+ return new ResponseResult
+ {
+ status = 0,
+ message = "OK",
+ data = resultInfos
+ };
+ }
+ catch (Exception ex)
+ {
+ return ResponseResult.ResponseError(ex);
+ }
+ }
+
+ [HttpPost("GetKWList")]
+ public ResponseResult GetKWList([FromBody] dynamic query)
+ {
+ try
+ {
+ dynamic resultInfos = new ExpandoObject();
+ resultInfos.tbKWList = m.GetKWList(query);
+ return new ResponseResult
+ {
+ status = 0,
+ message = "OK",
+ data = resultInfos
+ };
+ }
+ catch (Exception ex)
+ {
+ return ResponseResult.ResponseError(ex);
+ }
+ }
+
+ [HttpPost("GetKWInfo")]
+ public ResponseResult GetKWInfo([FromBody] dynamic query)
+ {
+ try
+ {
+ dynamic resultInfos = new ExpandoObject();
+ resultInfos.tbKWInfo = m.GetKWInfo(query);
+ return new ResponseResult
+ {
+ status = 0,
+ message = "OK",
+ data = resultInfos
+ };
+ }
+ catch (Exception ex)
+ {
+ return ResponseResult.ResponseError(ex);
+ }
+ }
+
+ [HttpPost("GetItemInfoList")]
+ public ResponseResult GetItemInfoList([FromBody] dynamic query)
+ {
+ try
+ {
+ dynamic resultInfos = new ExpandoObject();
+ resultInfos.tbItemInfo = m.GetItemInfoList(query,RequestInfo);
+ return new ResponseResult
+ {
+ status = 0,
+ message = "OK",
+ data = resultInfos
+ };
+ }
+ catch (Exception ex)
+ {
+ return ResponseResult.ResponseError(ex);
+ }
+ }
+}
\ No newline at end of file
diff --git a/service/Warehouse/MesKwcxManager.cs b/service/Warehouse/MesKwcxManager.cs
new file mode 100644
index 0000000..bca6448
--- /dev/null
+++ b/service/Warehouse/MesKwcxManager.cs
@@ -0,0 +1,99 @@
+锘縰sing Masuit.Tools;
+using NewPdaSqlServer.DB;
+using NewPdaSqlServer.Dto.service;
+using NewPdaSqlServer.entity;
+using SqlSugar;
+using System.Data;
+using System.Data.SqlClient;
+using System.Text;
+using static Microsoft.EntityFrameworkCore.DbLoggerCategory;
+
+namespace NewPdaSqlServer.service.Warehouse;
+
+public class MesKwcxManager : Repository<MesInvItemInCDetails>
+{
+ public dynamic GetBarInfoList(dynamic unity)
+ {
+ var sqlParams = new List<SugarParameter>
+ {
+ new("@deptSectionCode", unity.deptSectionCode),
+ new("@rkDate", string.IsNullOrWhiteSpace(unity.rkDate?.ToString()) ? DBNull.Value : unity.rkDate),
+ new("@zkChecked", unity.zkChecked?.ToString() == "True" ? 1 : unity.zkChecked?.ToString() == "False" ? 0 : DBNull.Value)
+ };
+
+ var sql2 = new StringBuilder("exec prc_pda_kwcx_barInfoList @deptSectionCode, @rkDate, @zkChecked");
+
+ var list = Db.Ado.SqlQuery<dynamic>(sql2.ToString(), sqlParams);
+
+ if (list.Count < 1)
+ {
+ throw new Exception("璇ユ潯浠朵笅鏃犲搴斿簱浣嶄俊鎭紒");
+ }
+
+ return list;
+ }
+ public dynamic GetBarInfo(dynamic unity)
+ {
+ var sqlParams = new List<SugarParameter> { };
+
+ var sql2 = new StringBuilder(@"exec prc_pda_kwcx_barInfo @BARCODE");
+ sqlParams.Add(new("@BARCODE", unity.barcode));
+
+ var list = Db.Ado.SqlQuery<dynamic>(sql2.ToString(), sqlParams);
+
+ if (list.Count < 1)
+ {
+ throw new Exception("璇ユ潯浠朵笅鏃犲搴旀潯鐮佷俊鎭紒");
+ }
+
+ return list[0];
+ }
+
+ public dynamic GetKWList(dynamic unity)
+ {
+
+ var sqlParams = new List<SugarParameter> { };
+
+ var sql2 = new StringBuilder(@"
+ select depot_code as code, depot_name as name from MES_DEPOTS");
+
+
+ var XcslItem = Db.Ado.SqlQuery<dynamic>(sql2.ToString(), sqlParams);
+
+ return XcslItem;
+ }
+
+ public dynamic GetKWInfo(dynamic unity)
+ {
+ var sqlParams = new List<SugarParameter>
+ {
+ new("@depot_code", unity.code)
+ };
+
+ var sql2 = new StringBuilder("exec prc_pda_kwcx_kwInfo @depot_code");
+
+ var KWInfo = Db.Ado.SqlQuery<dynamic>(sql2.ToString(), sqlParams);
+
+ return KWInfo;
+ }
+
+ public dynamic GetItemInfoList(dynamic unity,dynamic RequestInfo)
+ {
+ var sqlParams = new List<SugarParameter> { };
+ var orgId = RequestInfo.OrgId;
+
+ var sql2 = new StringBuilder(@"exec prc_pda_kwcx_itemInfo @barCode,@itemNo,@orgId");
+ sqlParams.Add(new("@barCode", unity.barCode));
+ sqlParams.Add(new("@itemNo", unity.itemNo));
+ sqlParams.Add(new("@orgId", unity.orgId));
+
+ var list = Db.Ado.SqlQuery<dynamic>(sql2.ToString(), sqlParams);
+
+ if (list.Count < 1)
+ {
+ throw new Exception("璇ユ潯浠朵笅鏃犲搴旀潯鐮佷俊鎭紒");
+ }
+
+ return list;
+ }
+}
\ No newline at end of file
diff --git a/service/Warehouse/MesXsckManager.cs b/service/Warehouse/MesXsckManager.cs
index d5da216..6f52fa2 100644
--- a/service/Warehouse/MesXsckManager.cs
+++ b/service/Warehouse/MesXsckManager.cs
@@ -33,44 +33,43 @@
/// 鏍规嵁鍙戣揣閫氱煡鍗曡幏鍙栧搴斾唬鍙戣揣鏄庣粏 prc_rf_pda_scan_zout_showbl
/// </summary>
/// <returns>鍙戣揣閫氱煡鍗曟槑缁嗗垪琛�</returns>
- public List<ItemDetailModel> GetMesItemFHTZetailByBillNo(
- WarehouseQuery query)
+ public dynamic GetMesItemFHTZetailByBillNo(dynamic query)
{
if (string.IsNullOrEmpty(query.billNo))
throw new Exception("璇烽�夊崟鎹彿锛�");
- // 妫�鏌ュ彂璐ч�氱煡鍗曟槸鍚﹀瓨鍦ㄤ笖瀹℃牳
- var mesItem = Db.Queryable<SalesDeliver>()
- .Where(a => a.BillNo == query.billNo && a.FApproverStatus == true)
- .First();
+ if (query == null)
+ throw new ArgumentNullException(nameof(query), "鍙傛暟瀵硅薄涓嶈兘涓簄ull");
- if (mesItem == null)
- throw new Exception("鍗曟嵁鍙蜂笉瀛樺湪鎴栨湭瀹℃牳锛�");
-
- if (mesItem.FinishStatus == true)
- throw new Exception("鍗曟嵁鍙峰凡瀹岀粨锛�");
+ if (string.IsNullOrEmpty(query.billNo?.ToString()))
+ throw new ArgumentException("鍗曟嵁鍙蜂笉鑳戒负绌�", nameof(query.billNo));
// 鑾峰彇鏈畬鎴愮殑鍙戣揣閫氱煡鍗曟槑缁�
- var blDetails = Db.Queryable<SalesDeliver, SalesDeliverDetail, SalesOrderDetail,MesItems>((a, b, c, d) =>
- new JoinQueryInfos(JoinType.Left, a.Id == b.Pid,
- JoinType.Left, b.SalesDetailId == c.Id,
- JoinType.Left, c.MaterialId == d.ItemId.ToString()))
- .Where((a, b) => a.BillNo == query.billNo
- && (b.FMustQty ?? 0) - (b.FRealQty ?? 0) > 0)
- .Select((a, b, c, d) => new ItemDetailModel
+ var parameters = new[]
+{
+ new SugarParameter("@billNo", query.billNo),
+ new SugarParameter("@inP1", null),
+ new SugarParameter("@inP2", null),
+ new SugarParameter("@inP3", null),
+ new SugarParameter("@inP4", null)
+ };
+ try
+ {
+ List<dynamic>? blDetails = Db.Ado.SqlQuery<dynamic>(
+ "EXEC Get_Mes_Item_FHTZetail_By_BillNo @billNo,@inP1,@inP2,@inP3,@inP4", parameters);
+ var items = blDetails.Where(x => x.DSQty > 0).ToList(); // 寰呮壂鐗╂枡
+ var ysitems = blDetails.Where(x => x.SQty > 0).ToList(); // 宸叉壂鐗╂枡
+ return new
{
- ItemNo = d.ItemNo,
- ItemName = d.ItemName,
- ItemModel = d.ItemModel,
- FQty = b.FMustQty,
- SQty = b.FRealQty,
- FMaterialId = d.ItemId.ToString(),
- Id = b.Id.ToString()
-
- })
- .ToList();
-
- return blDetails;
+ items = items,
+ ysitems = ysitems
+ };
+ }
+ catch (Exception ex)
+ {
+ // 淇濈暀鍘熸湁寮傚父澶勭悊閫昏緫
+ throw new Exception($"{ex.Message}");
+ }
}
/// <summary>
diff --git a/service/Warehouse/MesXsthManager.cs b/service/Warehouse/MesXsthManager.cs
index 56a163f..1358863 100644
--- a/service/Warehouse/MesXsthManager.cs
+++ b/service/Warehouse/MesXsthManager.cs
@@ -33,35 +33,45 @@
/// </summary>
/// <param name="query">浠撳簱鏌ヨ鍙傛暟</param>
/// <returns>鐗╂枡鏄庣粏鍒楄〃</returns>
- public List<ItemDetailModel> GetMesItemDetailByBillNo(
- WarehouseQuery query)
+ public dynamic GetMesItemDetailByBillNo(dynamic 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
+ if (string.IsNullOrEmpty(query.billNo))
+ throw new Exception("璇烽�夊崟鎹彿锛�");
+
+ if (query == null)
+ throw new ArgumentNullException(nameof(query), "鍙傛暟瀵硅薄涓嶈兘涓簄ull");
+
+ if (string.IsNullOrEmpty(query.billNo?.ToString()))
+ throw new ArgumentException("鍗曟嵁鍙蜂笉鑳戒负绌�", nameof(query.billNo));
+
+ // 鑾峰彇鏈畬鎴愮殑閿�鍞��璐ф槑缁�
+ var parameters = new[]
+{
+ new SugarParameter("@billNo", query.billNo),
+ new SugarParameter("@pi_orgId",null),
+ new SugarParameter("@inP1", null),
+ new SugarParameter("@inP2", null),
+ new SugarParameter("@inP3", null),
+ new SugarParameter("@inP4", null)
+ };
+ try
+ {
+ List<dynamic>? blDetails = Db.Ado.SqlQuery<dynamic>(
+ "EXEC Get_Mes_Item_Detail_By_BillNo @billNo,@inP1,@inP2,@inP3,@inP4", parameters);
+ var items = blDetails.Where(x => x.DSQty > 0).ToList(); // 寰呮壂鐗╂枡
+ var ysitems = blDetails.Where(x => x.SQty > 0).ToList(); // 宸叉壂鐗╂枡
+ return new
{
- 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;
+ items = items,
+ ysitems = ysitems,
+ Count = items.Count + ysitems.Count
+ };
+ }
+ catch (Exception ex)
+ {
+ // 淇濈暀鍘熸湁寮傚父澶勭悊閫昏緫
+ throw new Exception($"{ex.Message}");
+ }
}
/// <summary>
--
Gitblit v1.9.3