From df1e1fca9bc95c58463a1f709e95261077a7f249 Mon Sep 17 00:00:00 2001
From: 南骏 池 <chiffly@163.com>
Date: 星期六, 15 二月 2025 14:27:20 +0800
Subject: [PATCH] 1.其他入库单逻辑验证优化 2.采购入库优化
---
entity/MesItemQtrk.cs | 30 +++++++++++++++
service/Warehouse/MesInvItemInCDetailsManager.cs | 4 +
service/Warehouse/MesItemQtrkManager.cs | 62 +++++++++++++++++++++++-------
3 files changed, 80 insertions(+), 16 deletions(-)
diff --git a/entity/MesItemQtrk.cs b/entity/MesItemQtrk.cs
index 4421a99..271826e 100644
--- a/entity/MesItemQtrk.cs
+++ b/entity/MesItemQtrk.cs
@@ -141,4 +141,34 @@
/// </summary>
[SugarColumn(ColumnName = "qt021")]
public string? Qt021 { get; set; }
+
+ /// <summary>
+ /// 搴撳瓨缁勭粐
+ /// </summary>
+ [SugarColumn(ColumnName = "qt022")]
+ public string? Qt022 { get; set; }
+
+ /// <summary>
+ /// 璐т富绫诲瀷
+ /// </summary>
+ [SugarColumn(ColumnName = "qt023")]
+ public string? Qt023 { get; set; }
+
+ /// <summary>
+ /// 璐т富
+ /// </summary>
+ [SugarColumn(ColumnName = "qt024")]
+ public string? Qt024 { get; set; }
+
+ /// <summary>
+ ///
+ /// </summary>
+ [SugarColumn(ColumnName = "qt025")]
+ public string? Qt025 { get; set; }
+
+ /// <summary>
+ ///
+ /// </summary>
+ [SugarColumn(ColumnName = "qt026")]
+ public string? Qt026 { get; set; }
}
\ No newline at end of file
diff --git a/service/Warehouse/MesInvItemInCDetailsManager.cs b/service/Warehouse/MesInvItemInCDetailsManager.cs
index 5865812..4192c79 100644
--- a/service/Warehouse/MesInvItemInCDetailsManager.cs
+++ b/service/Warehouse/MesInvItemInCDetailsManager.cs
@@ -169,7 +169,8 @@
.Where(it => it.InsDate.Value.ToString("yyyy-MM-dd") == DateTime.Now.ToString("yyyy-MM-dd")
&& it.Status == 0
&& it.TransctionNo == transactionNo
- && it.CbillNo == itemBarcodeDetails.BillNo
+ && it.BillTypeId == billTypeId
+ && it.TaskNo == itemBarcodeDetails.BillNo
&& it.DepotsCode == mesDepost.DepotCode)
.Select(it => new
{
@@ -218,6 +219,7 @@
Status = 0,
ReceiveOrgId = inventory.ReceiveOrgId,
InType = "閲囪喘鍏ュ簱",
+ TaskNo = itemBarcodeDetails.BillNo
//WorkNo = itemBarcodeDetails.WorkNo
}).IgnoreColumns(true).ExecuteCommand();
}
diff --git a/service/Warehouse/MesItemQtrkManager.cs b/service/Warehouse/MesItemQtrkManager.cs
index 8c75e6d..f91fcf3 100644
--- a/service/Warehouse/MesItemQtrkManager.cs
+++ b/service/Warehouse/MesItemQtrkManager.cs
@@ -3,6 +3,7 @@
using NewPdaSqlServer.entity;
using NewPdaSqlServer.util;
using SqlSugar;
+using System.Text.RegularExpressions;
namespace NewPdaSqlServer.service.Warehouse;
@@ -56,34 +57,34 @@
public string ScanInDepotsQT(WarehouseQuery query)
{
- var sectionCode = query.sectionCode;
+ var sectionCode = query.sectionCode;
var billNo = query.billNo;
// 1. 楠岃瘉搴撲綅鏉$爜鏄惁涓虹┖
if (string.IsNullOrEmpty(sectionCode)) throw new Exception("璇锋壂搴撲綅鏉$爜锛�");
// 2. 鏌ヨ搴撲綅瀵瑰簲鐨勪粨搴撶紪鐮�
- var depotCode = Db.Queryable<MesDepotSections, MesDepots>(
+ var depotId = Db.Queryable<MesDepotSections, MesDepots>(
(a, b) => new JoinQueryInfos(
JoinType.Inner, a.DepotGuid == b.Guid))
.Where((a, b) => a.DepotSectionCode == sectionCode)
- .Select((a, b) => b.DepotCode)
+ .Select((a, b) => b.DepotId)
.First();
- if (depotCode == null)
+ if (depotId == null)
throw new Exception($"搴撲綅缂栫爜 {sectionCode} 涓嶅瓨鍦紝璇风‘璁わ紒");
// 3. 鏌ヨ鐢宠鍗曞搴旂殑浠撳簱
var qtrk = Db.Queryable<MesItemQtrk>()
.Where(x => x.Qtck == billNo)
- .Select(x => x.Qt011)
+ .Select(x => x.Qt008)
.First();
if (qtrk == null) throw new Exception($"搴撲綅缂栫爜 {sectionCode} 涓嶅瓨鍦紝璇风‘璁わ紒");
// 4. 楠岃瘉搴撲綅鏄惁灞炰簬鐢宠浠撳簱
- if (depotCode != qtrk)
- throw new Exception($"鎵爜搴撲綅 {sectionCode} 涓嶅睘浜庣敵璇锋浠撳簱!");
+ if (depotId != Convert.ToInt32(qtrk))
+ throw new Exception($"鎵爜搴撲綅 {sectionCode} 涓嶅睘浜庣敵璇蜂粨搴�!");
// 5. 杩斿洖鎴愬姛淇℃伅
return $"浠撳簱锛歿qtrk} 搴撲綅锛歿sectionCode}";
@@ -118,6 +119,13 @@
var c_depot_code = depotInfo.DepotCode;
var c_depot_id = depotInfo.DepotId;
+ var mesDepost = Db.Queryable<MesDepots>()
+ .Where(s => s.DepotId == c_depot_id).First();
+
+
+
+
+
// 3. 楠岃瘉鏉$爜鏄惁宸插叆搴�
var existsInStock = Db.Queryable<MesInvItemInCDetails>()
.Any(x => x.ItemBarcode == p_item_barcode);
@@ -147,6 +155,10 @@
if (qtrk == null) throw new Exception("鍏朵粬鍏ュ簱鐢宠鍗曚笉瀛樺湪锛�");
+ // 楠岃瘉搴撲綅鏄惁灞炰簬鐢宠浠撳簱
+ if (c_depot_id != Convert.ToInt32(qtrk.Qt008))
+ throw new Exception($"鎵爜搴撲綅 {p_section_code} 涓嶅睘浜庣敵璇蜂粨搴�!");
+
// 6. 鏌ヨ鐢宠鍗曟槑缁�
var detail = Db.Queryable<MesItemQtrrDetail>()
.Where(x =>
@@ -163,7 +175,23 @@
var details = new List<MesItemQtrrDetail>();
- // 8. 鎵ц鍏ュ簱浜嬪姟
+ string pattern = @"\(([^)]+)\)";
+ Match match = Regex.Match(qtrk.Qt023, pattern);
+ var owner_type = "";
+
+ // 8.鑾峰彇璐т富绫诲瀷
+ if (match.Success)
+ {
+ owner_type = match.Groups[1].Value;
+ }
+ else
+ {
+ throw new Exception("鍏朵粬鍏ュ簱鐢宠鍗曡揣涓荤被鍨嬫湁璇�,璇锋牳瀵癸紒");
+ }
+
+
+
+ // 10. 鎵ц鍏ュ簱浜嬪姟
UseTransaction(db =>
{
var res = 0;
@@ -186,7 +214,7 @@
if (existingInv == null)
{
newId = Guid.NewGuid();
- billNo = BillNo.GetBillNo("QTRK(鍏朵粬鍏ュ簱鍗�)");
+ billNo = BillNo.GetBillNo("QTRK(鍏朵粬鍏ュ簱)");
barcode.UrgentFlag ??= false;
@@ -204,13 +232,14 @@
LastupdateBy = c_user,
LastupdateDate = DateTime.Now,
UrgentFlag = barcode.UrgentFlag.Value ? "1" : "0",
- CbillNo = p_bill_no,
+ //CbillNo = p_bill_no,
Fstatus = 0,
Status = 0,
Reason = qtrk.Qt010,
TaskNo = p_bill_no,
DepotsId = Convert.ToInt64(c_depot_id) ,
- InType = "鍏朵粬鍏ュ簱"
+ InType = "鍏朵粬鍏ュ簱",
+ ReceiveOrgId = qtrk.Qt022
}).IgnoreColumns(true).ExecuteCommand();
}
@@ -263,9 +292,8 @@
.SetColumns(
x => x.Quantity == x.Quantity + barcode.Quantity)
.Where(x => x.ItemInId == newId
- && x.ItemId == barcode.ItemId
- && x.WorkNo == barcode.WorkNo
- && x.WorkLine == barcode.WorkLine)
+ && x.ItemId == barcode.ItemId
+ && x.DepotId == c_depot_id.ToString())
.ExecuteCommand();
@@ -370,7 +398,11 @@
EbelnK3id = barcode.EbelnK3id,
LineK3id = barcode.LineK3id,
ItemId = barcode.ItemId,
- BillNo = barcode.BillNo
+ BillNo = barcode.BillNo,
+ OwnerId = qtrk.Qt024,
+ OwnerType = owner_type,
+ StockOrgId = qtrk.Qt022,
+ IndepUserCode = c_user
// SalesOrder = barcode.SalesOrder,
// IsZy = barcode.IsZy,
// Visable = 0,
--
Gitblit v1.9.3