From 8c1d92cab74656e84275cd0155d4157c2a52d1d5 Mon Sep 17 00:00:00 2001
From: cnf <3283105747@qq.com>
Date: 星期五, 07 十一月 2025 14:09:38 +0800
Subject: [PATCH] 增加一键调拨拆分后端
---
service/Warehouse/MesInvItemInCDetailsManager.cs | 136 +++++++++++++++++++++++++++++++++------------
1 files changed, 99 insertions(+), 37 deletions(-)
diff --git a/service/Warehouse/MesInvItemInCDetailsManager.cs b/service/Warehouse/MesInvItemInCDetailsManager.cs
index 23981ef..bb925b3 100644
--- a/service/Warehouse/MesInvItemInCDetailsManager.cs
+++ b/service/Warehouse/MesInvItemInCDetailsManager.cs
@@ -1,4 +1,5 @@
锘縰sing Masuit.Tools.Models;
+using Microsoft.AspNetCore.SignalR.Protocol;
using NewPdaSqlServer.DB;
using NewPdaSqlServer.Dto.service;
using NewPdaSqlServer.entity;
@@ -28,7 +29,7 @@
if (string.IsNullOrEmpty(entity.userName)) throw new ArgumentNullException(nameof(entity.userName), "鐢ㄦ埛鍚嶄笉鍏佽涓虹┖");
if (string.IsNullOrEmpty(entity.sectionCode)) throw new ArgumentNullException(nameof(entity.sectionCode), "搴撲綅缂栧彿涓嶅厑璁镐负绌�");
if (string.IsNullOrEmpty(entity.barcode)) throw new ArgumentNullException(nameof(entity.barcode), "鏉$爜涓嶅厑璁镐负绌�");
-
+
using (var conn = new SqlConnection(connectionString))
{
using (var cmd = new SqlCommand("[prc_pda_inv_cgrk]", conn))
@@ -56,8 +57,17 @@
string? outMessage = parameters[4].Value?.ToString();
string? outSum = parameters[5].Value?.ToString();
+
+ // 妫�鏌ュ弬鏁版槸鍚︿负绌猴紝骞跺湪寮傚父涓樉绀哄疄闄呭��
if (string.IsNullOrEmpty(outMessage) || string.IsNullOrEmpty(outSum))
- throw new InvalidOperationException("瀛樺偍杩囩▼杩斿洖鍙傛暟寮傚父");
+ {
+ // 鎷兼帴鍙傛暟瀹為檯鍊硷紙澶勭悊 null 鐨勬儏鍐碉級
+ string messageValue = outMessage ?? "null";
+ string sumValue = outSum ?? "null";
+ throw new InvalidOperationException(
+ $"瀛樺偍杩囩▼杩斿洖鍙傛暟寮傚父锛氳緭鍑烘秷鎭负銆恵messageValue}銆戯紝杈撳嚭鏁伴噺涓恒�恵sumValue}銆�"
+ );
+ }
// 楠岃瘉缁撴灉
if (!int.TryParse(outSum, out int result) || result <= 0)
@@ -113,10 +123,16 @@
WHERE a.Item_In_Id = '{0}' AND a.Item_Id = '{1}'", cId, itemBarcodeDetails.ItemId);
res.ItemBarCDetails = Db.Ado.SqlQuery<dynamic>(sql2);
+ //鏌ヨ宸插叆搴撴�绘暟
+ var totalCDetailsQuantity = Db.Queryable<MesInvItemInCDetails>()
+ .Where(it => it.ItemInId == cId)
+ .Sum(it => it.Quantity);
+
+ res.SumQuantity = Convert.ToDecimal(totalCDetailsQuantity);
// 璁剧疆杩斿洖淇℃伅
res.Message = outMessage;
- res.SumQuantity = result;
+
return res;
}
@@ -1272,8 +1288,8 @@
if (string.IsNullOrEmpty(entity.sectionCode)) throw new ArgumentNullException(nameof(entity.sectionCode), "搴撲綅缂栧彿涓嶅厑璁镐负绌�");
if (string.IsNullOrEmpty(entity.returnBarcode)) throw new ArgumentNullException(nameof(entity.returnBarcode), "鏉$爜涓嶅厑璁镐负绌�");
- try
- {
+ //try
+ //{
// 妫�鏌ユ潯鐮佹槸鍚﹀凡鍏ュ簱
var isInStock = Db.Queryable<MesInvItemInCDetails>()
.Where(it => it.ItemBarcode == entity.returnBarcode)
@@ -1296,22 +1312,59 @@
.Where(it => it.ItemBarcode.Trim().ToLower() == entity.returnBarcode.Trim().ToLower())
.First() ?? throw new InvalidOperationException($"鏈壘鍒版潯鐮� '{entity.returnBarcode}' 鐨勫尮閰嶄俊鎭�");
+ // 鑾峰彇鍒拌揣鏄庣粏ID锛堝亣璁句粠鏉$爜淇℃伅涓彲浠ヨ幏鍙栧埌dhmxGuid锛�
+ var dhmxGuid = itemBarcode.AboutGuid;
+
+ // 鏌ヨ妫�楠屼俊鎭紙瀵瑰簲SQL涓殑瑙嗗浘鏌ヨ閫昏緫锛�
+ var checkParams = new List<SugarParameter>
+ {
+ new("@dHdMx", dhmxGuid),
+ new("@JYZT", null, true), // 杈撳嚭鍙傛暟锛氭楠岀姸鎬�
+ new("@JYJG", null, true), // 杈撳嚭鍙傛暟锛氭楠岀粨鏋�
+ new("@PDJG", null, true), // 杈撳嚭鍙傛暟锛氬垽瀹氱粨鏋�
+ new("@ISRK", null, true), // 杈撳嚭鍙傛暟锛氭槸鍚﹁兘鍏ュ簱
+ new("@CLYS", null, true) // 杈撳嚭鍙傛暟锛氬鐞嗘剰瑙�
+ };
+
+ // 鎵ц鏌ヨ鑾峰彇妫�楠屼俊鎭�
+ Db.Ado.ExecuteCommand(@"
+ SELECT @JYZT = ISNULL(妫�楠岀姸鎬�, '鏈煡'),
+ @JYJG = ISNULL(妫�楠岀粨鏋�, '鏈煡'),
+ @PDJG = ISNULL(鍒ゅ畾缁撴灉, '鏈煡'),
+ @ISRK = ISNULL(鏄惁鑳藉叆搴�, 0),
+ @CLYS = ISNULL(澶勭悊鎰忚, '鏃�')
+ FROM v_dhmx
+ WHERE dhmxGuid = @dHdMx", checkParams);
+
+ // 瑙f瀽杈撳嚭鍙傛暟
+ var jyzt = checkParams[1].Value?.ToString() ?? "鏈煡";
+ var jyjg = checkParams[2].Value?.ToString() ?? "鏈煡";
+ var pdjg = checkParams[3].Value?.ToString() ?? "鏈煡";
+ var isRk = checkParams[4].Value != DBNull.Value ? Convert.ToInt32(checkParams[4].Value) : 0;
+ var clys = checkParams[5].Value?.ToString() ?? "鏃�";
+
+ // 妫�鏌ユ槸鍚︽煡璇㈠埌妫�楠岃褰�
+ if (string.IsNullOrEmpty(jyzt) && string.IsNullOrEmpty(jyjg))
+ throw new Exception($"鏈壘鍒板埌璐ф槑缁唅d涓篬{dhmxGuid}]鐨勬楠岃褰�");
+ // 妫�鏌ユ槸鍚﹀厑璁搁獙閫�锛堝紓甯哥洿鎺ユ姏鍑猴級
+ if (isRk != 1)
+ throw new Exception($"璇ユ潯鐮佸搴旂殑鏀舵枡鍗曟楠岀粨鏋�:[{jyjg}]锛屽垽瀹氱粨鏋�:[{pdjg}]锛屽鐞嗘剰瑙�:[{clys}]锛屼笉鑳借繘琛岄獙閫�鎿嶄綔");
+
+
+
+
// 灏嗘煡璇㈠埌鐨勬潯鐮佷俊鎭祴鍊肩粰杩斿洖妯″瀷
res.itemBarcodeDetails = itemBarcode;
-
-
res.Message = "鏌ヨ鎴愬姛";
-
-
return res;
- }
- catch (Exception ex)
- {
- // 璁板綍寮傚父鏃ュ織锛堝缓璁ˉ鍏呭叿浣撴棩蹇楄褰曚唬鐮侊級
- res.Message = $"鎿嶄綔澶辫触: {ex.Message}";
- res.SumQuantity = -1;
- return res;
- }
+ //}
+ //catch (Exception ex)
+ //{
+ // // 璁板綍寮傚父鏃ュ織锛堝缓璁ˉ鍏呭叿浣撴棩蹇楄褰曚唬鐮侊級
+ // res.Message = $"鎿嶄綔澶辫触: {ex.Message}";
+ // res.SumQuantity = -1;
+ // return res;
+ //}
}
// 楠岄��
@@ -1325,8 +1378,8 @@
if (string.IsNullOrEmpty(entity.returnBarcode)) throw new ArgumentNullException(nameof(entity.returnBarcode), "鏉$爜涓嶅厑璁镐负绌�");
if (entity.returnQuantity <= 0) throw new ArgumentException("楠岄��鏁伴噺蹇呴』澶т簬0", nameof(entity.returnQuantity));
- try
- {
+ //try
+ //{
// 妫�鏌ユ潯鐮佹槸鍚﹀凡鍏ュ簱
var isInStock = Db.Queryable<MesInvItemInCDetails>()
.Where(it => it.ItemBarcode == entity.returnBarcode)
@@ -1358,7 +1411,7 @@
string strMsg = "";
string intSum = "";
string cfBar = "";
-
+
using (var conn = new SqlConnection(DbHelperSQL.strConn))
{
using (var cmd = new SqlCommand("[prc_pda_bar_cf_before]", conn))
@@ -1394,7 +1447,7 @@
string ytMsg = "";
string ytSum = "";
string ytdh = "";
-
+
using (var conn = new SqlConnection(DbHelperSQL.strConn))
{
using (var cmd = new SqlCommand("prc_pda_scan_CGYT", conn))
@@ -1412,7 +1465,7 @@
cmd.Parameters.AddRange(ytParameters);
cmd.ExecuteNonQuery();
-
+
ytMsg = ytParameters[2].Value.ToString();
ytSum = ytParameters[3].Value.ToString();
ytdh = ytParameters[4].Value.ToString();
@@ -1424,7 +1477,7 @@
// 璋冪敤鍏ュ簱瀛樺偍杩囩▼ prc_pda_inv_cgrk锛屼娇鐢ㄥ師濮嬫潯鐮�
string rkMsg = "";
string rkSum = "";
-
+
using (var conn = new SqlConnection(DbHelperSQL.strConn))
{
using (var cmd = new SqlCommand("prc_pda_inv_cgrk", conn))
@@ -1443,15 +1496,15 @@
cmd.Parameters.AddRange(rkParameters);
cmd.ExecuteNonQuery();
-
- rkMsg = rkParameters[3].Value.ToString();
- rkSum = rkParameters[4].Value.ToString();
+
+ rkMsg = rkParameters[4].Value.ToString();
+ rkSum = rkParameters[5].Value.ToString();
if (rkSum == "-1") throw new Exception(rkMsg);
}
}
-
+
// 浼樺寲鏌ヨ锛堝幓闄ょ┖鏍煎苟蹇界暐澶у皬鍐欙級
var mesInvItemInCDetails = Db.Queryable<MesInvItemInCDetails>()
@@ -1493,18 +1546,27 @@
res.ItemBarCDetails = Db.Ado.SqlQuery<dynamic>(sql2, new { cId, itemId = itemBarcode.ItemId });
- res.Message = $"楠岄��鎿嶄綔鎴愬姛锛屾媶鍒嗗悗鏉$爜锛歿cfBar}锛岄獙閫�鍗曞彿锛歿ytdh}";
- res.SumQuantity = res.ItemBarCDetails?.Count ?? 0;
+ //鏌ヨ宸插叆搴撴�绘暟
+ var totalCDetailsQuantity = Db.Queryable<MesInvItemInCDetails>()
+ .Where(it => it.ItemInId == cId)
+ .Sum(it => it.Quantity);
+
+ res.SumQuantity = Convert.ToDecimal(totalCDetailsQuantity);
+
+
+ res.Message = $"楠岄��鎿嶄綔鎴愬姛锛屾媶鍒嗗悗鏉$爜锛歿cfBar}锛岄獙閫�鍗曞彿锛歿ytdh}";
+ // res.SumQuantity = res.ItemBarCDetails?.Count ?? 0;
+ res.SumQuantity = Convert.ToDecimal(totalCDetailsQuantity);
return res;
- }
- catch (Exception ex)
- {
- // 璁板綍寮傚父鏃ュ織锛堝缓璁ˉ鍏呭叿浣撴棩蹇楄褰曚唬鐮侊級
- res.Message = $"鎿嶄綔澶辫触: {ex.Message}";
- res.SumQuantity = -1;
- return res;
- }
+ //}
+ //catch (Exception ex)
+ //{
+ // // 璁板綍寮傚父鏃ュ織锛堝缓璁ˉ鍏呭叿浣撴棩蹇楄褰曚唬鐮侊級
+ // res.Message = $"鎿嶄綔澶辫触: {ex.Message}";
+ // res.SumQuantity = -1;
+ // return res;
+ //}
}
}
\ No newline at end of file
--
Gitblit v1.9.3