From 99b5d3d7c950a8332f81d3ca07be9f2d5957f58c Mon Sep 17 00:00:00 2001
From: 南骏 池 <chiffly@163.com>
Date: 星期六, 29 三月 2025 16:26:44 +0800
Subject: [PATCH] 1.期初入库优化
---
service/base/WmsBaseMangeer.cs | 39 ++++++++++++-
service/Warehouse/MesBarCFManager.cs | 15 +++-
service/Warehouse/InventoryManager.cs | 54 ++++++++++++------
Controllers/base/WmsBaseController.cs | 40 +++++++++++++
4 files changed, 123 insertions(+), 25 deletions(-)
diff --git a/Controllers/base/WmsBaseController.cs b/Controllers/base/WmsBaseController.cs
new file mode 100644
index 0000000..2321d60
--- /dev/null
+++ b/Controllers/base/WmsBaseController.cs
@@ -0,0 +1,40 @@
+锘縰sing System.Dynamic;
+using Microsoft.AspNetCore.Mvc;
+using NewPdaSqlServer.Dto.service;
+using NewPdaSqlServer.service.@base;
+using NewPdaSqlServer.service.Warehouse;
+using NewPdaSqlServer.util;
+
+namespace NewPdaSqlServer.Controllers.@base;
+
+[ApiController]
+[Route("api/[controller]")]
+public class WmsBaseController : ControllerBase
+{
+ private readonly WmsBaseMangeer m = new();
+
+ /// <summary>
+ /// 鑾峰彇鏉$爜淇℃伅鍜岀墿鏂欎俊鎭�
+ /// </summary>
+ /// <returns></returns>
+ [HttpPost("GetBarInfo")]
+ public ResponseResult GetBarInfo(WarehouseQuery unity)
+ {
+ try
+ {
+ dynamic resultInfos = new ExpandoObject();
+ resultInfos.tbBillList = m.GetBarInfo(unity);
+ resultInfos.tbMesItems = m.GetItemNo(resultInfos.tbBillList.ItemId);
+ 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/InventoryManager.cs b/service/Warehouse/InventoryManager.cs
index c3ccba8..7268bfc 100644
--- a/service/Warehouse/InventoryManager.cs
+++ b/service/Warehouse/InventoryManager.cs
@@ -1,6 +1,7 @@
锘縰sing NewPdaSqlServer.DB;
using NewPdaSqlServer.Dto.service;
using NewPdaSqlServer.entity;
+using NewPdaSqlServer.service.@base;
using NewPdaSqlServer.util;
using SqlSugar;
@@ -47,8 +48,8 @@
var p_transction_no = 601;
// 妫�鏌ュ簱浣嶄唬鐮佹槸鍚︿负绌�
- if (string.IsNullOrEmpty(p_section_code))
- throw new Exception("002[璇锋壂搴撲綅鏉$爜锛�");
+ // if (string.IsNullOrEmpty(p_section_code))
+ // throw new Exception("002[璇锋壂搴撲綅鏉$爜锛�");
// 鏌ヨ搴撳尯搴撲綅淇℃伅
var depotSection = Db.Queryable<MesDepotSections, MesDepots>((a, b) =>
@@ -61,36 +62,52 @@
.Single();
// 濡傛灉搴撲綅浠g爜涓嶅瓨鍦紝鍒欒繑鍥為敊璇俊鎭�
- if (depotSection == null)
- throw new Exception("搴撲綅缂栫爜 " + p_section_code + " 涓嶅瓨鍦紝璇风‘璁わ紒");
+ // if (depotSection == null)
+ // throw new Exception("搴撲綅缂栫爜 " + p_section_code + " 涓嶅瓨鍦紝璇风‘璁わ紒");
// 妫�鏌ユ槸鍚﹀凡缁忔敹璐�
- var c_num = Db.Queryable<MesInvItemIns, MesInvItemInCDetails>((a, b) =>
- new JoinQueryInfos(
- JoinType.Inner, a.Guid == b.ItemInId
- ))
- .Where((a, b) => b.ItemBarcode == p_item_barcode)
- .Count();
+ // var c_num = Db.Queryable<MesInvItemIns, MesInvItemInCDetails>((a, b) =>
+ // new JoinQueryInfos(
+ // JoinType.Inner, a.Guid == b.ItemInId
+ // ))
+ // .Where((a, b) => b.ItemBarcode == p_item_barcode)
+ // .Count();
- if (c_num > 0) throw new Exception("002[鏉$爜閲嶅鎵弿锛岃鏍稿锛�");
+ // if (c_num > 0) throw new Exception("002[鏉$爜閲嶅鎵弿锛岃鏍稿锛�");
// 鏌ヨ鏉$爜淇℃伅
- c_num = Db.Queryable<MesInvItemStocks>()
- .Where(t => t.ItemBarcode == p_item_barcode)
- .Count();
+ // c_num = Db.Queryable<MesInvItemStocks>()
+ // .Where(t => t.ItemBarcode == p_item_barcode)
+ // .Count();
- if (c_num > 0) throw new Exception("002[鏉$爜宸插湪搴撳瓨涓紝璇锋牳瀵癸紒");
+ // if (c_num > 0) throw new Exception("002[鏉$爜宸插湪搴撳瓨涓紝璇锋牳瀵癸紒");
// 鏌ヨ鏉$爜璇︾粏淇℃伅
var c_mes_inv_item_barcodes = Db.Queryable<MesInvItemBarcodes>()
.Where(t => t.ItemBarcode == p_item_barcode)
.Single();
- if (c_mes_inv_item_barcodes == null)
- throw new Exception("002[鏉$爜涓嶅瓨鍦紝璇锋牳瀵癸紒");
+ // if (c_mes_inv_item_barcodes == null)
+ // throw new Exception("002[鏉$爜涓嶅瓨鍦紝璇锋牳瀵癸紒");
- if (c_mes_inv_item_barcodes.ComeFlg != 0)
+ if (c_mes_inv_item_barcodes.Memo != "鏈熷垵")
throw new Exception("002[鏉$爜涓嶆槸鏈熷垵鏉$爜锛屾棤娉曠敤鏈熷垵鍏ュ簱锛�");
+
+ var wmsManager = new WmsBaseMangeer();
+ // 鏂板鍏ュ簱鏍¢獙锛堣皟鐢ㄥ瓨鍌ㄨ繃绋嬶級
+ var checkResult = wmsManager.pdaInvJY(
+ db: Db,
+ edtUserNo: query.userName,
+ barcode: p_item_barcode,
+ sectionCode: p_section_code,
+ stockId: depotSection.DepotId.ToString(),
+ stockOrgId: depotSection.FSubsidiary,
+ billNo: "", // 鏍规嵁瀹為檯鍗曟嵁鍙蜂紶鍊�
+ transactionNo: "601" // 浜嬪姟绫诲瀷涓庡瓨鍌ㄨ繃绋嬪尮閰�
+ );
+
+ if (checkResult.result < "1")
+ throw new Exception($"鍏ュ簱鏍¢獙澶辫触锛歿checkResult.strMsg}");
UseTransaction(db =>
{
@@ -135,6 +152,7 @@
CbillNo = c_mes_inv_item_barcodes.BillNo,
Fstatus = 0,
ReceiveOrgId = depotSection.FSubsidiary,
+ InType = "鏈熷垵鍏ュ簱",
};
db.Insertable(newMesInvItemIns)
.IgnoreColumns(true)
diff --git a/service/Warehouse/MesBarCFManager.cs b/service/Warehouse/MesBarCFManager.cs
index 5929a7a..ac3e4de 100644
--- a/service/Warehouse/MesBarCFManager.cs
+++ b/service/Warehouse/MesBarCFManager.cs
@@ -1,6 +1,7 @@
锘縰sing System.Data;
using System.Data.SqlClient;
using Masuit.Tools;
+using Masuit.Tools.Hardware;
using NewPdaSqlServer.DB;
using NewPdaSqlServer.Dto.service;
using NewPdaSqlServer.entity;
@@ -13,16 +14,22 @@
{
public MesInvItemStocks GetBarInfo(WarehouseQuery unity)
{
- return Db.Queryable<MesInvItemStocks>()
+ var barInfo = Db.Queryable<MesInvItemStocks>()
.Where(s => s.ItemBarcode == unity.barcode)
- .First(); // 杩斿洖绗竴琛屾暟鎹紝濡傛灉娌℃湁鍒欒繑鍥� null
+ .First();
+ if (barInfo is null) throw new Exception("璇ユ潯鐮佸簱瀛樹笉瀛樺湪锛�");
+
+ return barInfo; // 杩斿洖绗竴琛屾暟鎹紝濡傛灉娌℃湁鍒欒繑鍥� null
}
public MesItems GetItemNo(decimal strItemId)
{
- return Db.Queryable<MesItems>()
- .Where(s => s.Id == strItemId)
+ var itemInfo = Db.Queryable<MesItems>()
+ .Where(s => s.Id == strItemId && s.Fforbidstatus == "A")
.First();
+ if (itemInfo is null) throw new Exception("璇ユ潯鐮佸搴旂墿鏂欎俊鎭笉瀛樺湪鎴栧凡绂佺敤锛�");
+
+ return itemInfo;
}
public string BarCF(WarehouseQuery unity)
diff --git a/service/base/PdaJyMangeer.cs b/service/base/WmsBaseMangeer.cs
similarity index 71%
rename from service/base/PdaJyMangeer.cs
rename to service/base/WmsBaseMangeer.cs
index e0f07eb..f36b0e0 100644
--- a/service/base/PdaJyMangeer.cs
+++ b/service/base/WmsBaseMangeer.cs
@@ -1,4 +1,4 @@
-锘縩amespace NewPdaSqlServer.util
+锘縩amespace NewPdaSqlServer.service.@base
{
using NewPdaSqlServer.Dto.service;
using NewPdaSqlServer.entity;
@@ -9,9 +9,10 @@
using NewPdaSqlServer.DB;
using System.Data;
using System.Data.SqlClient;
+ using Microsoft.EntityFrameworkCore.Metadata.Internal;
- public class PdaJyMangeer
+ public class WmsBaseMangeer : Repository<dynamic>
{
/// <summary>
@@ -26,7 +27,7 @@
/// <param name="billNo">鐢宠鍗曞彿</param>
/// <param name="transactionNo">浜嬪姟绫诲瀷</param>
/// <returns>鍖呭惈鏍¢獙缁撴灉鐨勬暟鎹紶杈撳璞�</returns>
- public ProductionPickDto SalesReturnCheck(SqlSugarScope db, string edtUserNo,
+ public dynamic pdaInvJY(SqlSugarScope db, string edtUserNo,
string barcode, string sectionCode, string stockId, string stockOrgId,
string billNo, string transactionNo)
{
@@ -80,5 +81,37 @@
}
}
}
+
+ /// <summary>
+ /// 鑾峰彇鏉$爜淇℃伅
+ /// </summary>
+ /// <param name="unity"></param>
+ /// <returns></returns>
+ /// <exception cref="Exception"></exception>
+ public MesInvItemBarcodes GetBarInfo(WarehouseQuery unity)
+ {
+ var barInfo = Db.Queryable<MesInvItemBarcodes>()
+ .Where(s => s.ItemBarcode == unity.barcode)
+ .First();
+ if (barInfo is null) throw new Exception("璇ユ潯鐮佸簱瀛樹笉瀛樺湪锛�");
+
+ return barInfo; // 杩斿洖绗竴琛屾暟鎹紝濡傛灉娌℃湁鍒欒繑鍥� null
+ }
+
+ /// <summary>
+ /// 鑾峰彇鐗╂枡淇℃伅
+ /// </summary>
+ /// <param name="strItemId"></param>
+ /// <returns></returns>
+ /// <exception cref="Exception"></exception>
+ public MesItems GetItemNo(decimal strItemId)
+ {
+ var itemInfo = Db.Queryable<MesItems>()
+ .Where(s => s.Id == strItemId && s.Fforbidstatus == "A")
+ .First();
+ if (itemInfo is null) throw new Exception("璇ユ潯鐮佸搴旂墿鏂欎俊鎭笉瀛樺湪鎴栧凡绂佺敤锛�");
+
+ return itemInfo;
+ }
}
}
\ No newline at end of file
--
Gitblit v1.9.3