From 2075957d9c0c87e66b0392fdc0a2d5b9290dfee5 Mon Sep 17 00:00:00 2001
From: 南骏 池 <chiffly@163.com>
Date: 星期五, 14 二月 2025 08:22:54 +0800
Subject: [PATCH] 1.成品入库后台完成 2.报工后台优化
---
service/Warehouse/MesInvItemInCDetailsManager.cs | 205 ++++++++++++++++++++++++--------------------------
1 files changed, 98 insertions(+), 107 deletions(-)
diff --git a/service/Warehouse/MesInvItemInCDetailsManager.cs b/service/Warehouse/MesInvItemInCDetailsManager.cs
index 6f65aea..13296d4 100644
--- a/service/Warehouse/MesInvItemInCDetailsManager.cs
+++ b/service/Warehouse/MesInvItemInCDetailsManager.cs
@@ -17,9 +17,9 @@
string user = entity.userName,
sectionCode = entity.sectionCode,
itemBarcode = entity.barcode;
- string transactionNo = "101";
+ var transactionNo = "101";
int? billTypeId = 100, num = 0, num2 = 0;
- int freeze = 0;
+ var freeze = 0;
decimal cSyQty = 0;
if (string.IsNullOrEmpty(sectionCode))
@@ -32,7 +32,7 @@
if (itemBarcodeDetails == null)
throw new Exception("鏉$爜涓嶅瓨鍦紝璇锋牳瀵癸紒");
- if (!itemBarcodeDetails.ComeFlg.Value)
+ if (itemBarcodeDetails.ComeFlg == 0)
throw new Exception("姝ゆ潯鐮佷笉灞炰簬鍒拌揣鏉$爜锛屾棤娉曠敤閲囪喘鍏ュ簱锛�");
var inventory = Db.Queryable<MesInvItemArn>()
@@ -42,11 +42,15 @@
if (inventory == null)
throw new Exception("姝ゆ潯鐮佹壘涓嶅埌瀵瑰簲鏀惰揣鍗曪紒");
+ // var inventoryDetails = Db.Queryable<MesInvItemArnDetail>()
+ // .Where(it => it.ParentGuid == inventory.Guid
+ // && it.ItemId == itemBarcodeDetails.ItemId
+ // && it.EbelnLine == itemBarcodeDetails.WorkLine
+ // && it.Ebeln == itemBarcodeDetails.WorkNo)
+ // .First();
+
var inventoryDetails = Db.Queryable<MesInvItemArnDetail>()
- .Where(it => it.ParentGuid == inventory.Guid
- && it.ItemId == itemBarcodeDetails.ItemId
- && it.EbelnLine == itemBarcodeDetails.WorkLine
- && it.Ebeln == itemBarcodeDetails.WorkNo)
+ .Where(it => it.Guid == itemBarcodeDetails.AboutGuid)
.First();
if (inventoryDetails == null)
@@ -70,8 +74,8 @@
mesDepost = Db.Queryable<MesDepots>()
.Where(s => s.DepotId.ToString() == depotCode2).First();
- if (depotCode != mesDepost.Guid)
- throw new Exception("鎵弿搴撲綅涓庨噰璐叆搴撳簱浣嶄笉涓�鑷达紒");
+ // if (depotCode != mesDepost.Guid)
+ // throw new Exception("鎵弿搴撲綅涓庨噰璐叆搴撳簱浣嶄笉涓�鑷达紒");
}
else
{
@@ -117,12 +121,12 @@
throw new Exception("鍏ュ簱澶辫触,鍒拌揣鍗曟嵁鏈夐棶棰橈紒");
}
- PurchaseInventory result = new PurchaseInventory();
+ var result = new PurchaseInventory();
UseTransaction(db =>
{
var existingRecord = db.Queryable<MesInvItemIns>()
- .Where(it => it.InsDate.Value.Date == DateTime.Now.Date
+ .Where(it => it.InsDate.Value.ToString("yyyy-MM-dd") == DateTime.Now.ToString("yyyy-MM-dd")
&& it.Status == 0
&& it.TransctionNo == transactionNo
&& it.BillNo == itemBarcodeDetails.BillNo
@@ -134,7 +138,7 @@
})
.First();
- Guid cId = Guid.Empty;
+ var cId = Guid.Empty;
string cBillNo = null;
if (existingRecord != null)
@@ -149,8 +153,7 @@
cBillNo = BillNo.GetBillNo("IN(鍏ュ簱鍗�)");
var suppNo = db.Queryable<MesSupplier>()
- .Where(s => s.Id.ToString() == inventory.SuppId)
- .Select(s => s.SuppNo).First();
+ .Where(s => s.Id.ToString() == inventory.SuppId).First();
db.Insertable(new MesInvItemIns
{
@@ -158,17 +161,22 @@
BillNo = cBillNo,
BillTypeId = billTypeId,
InsDate = DateTime.Now,
+ DepotsId = mesDepost.DepotId,
DepotsCode = mesDepost.DepotCode,
TransctionNo = transactionNo,
- SuppNo = suppNo,
+ SuppId = suppNo.Id.ToString(),
+ SuppNo = suppNo.SuppNo,
CreateBy = user,
CreateDate = DateTime.Now,
LastupdateBy = user,
LastupdateDate = DateTime.Now,
- UrgentFlag = itemBarcodeDetails.UrgentFlag.Value ? 1 : 0,
+ UrgentFlag = itemBarcodeDetails.UrgentFlag.Value
+ ? "1"
+ : "0",
CbillNo = itemBarcodeDetails.BillNo,
Fstatus = 0,
- Status = 0
+ Status = 0,
+ ReceiveOrgId = inventory.ReceiveOrgId
}).IgnoreColumns(true).ExecuteCommand();
}
@@ -204,7 +212,7 @@
IsdepsIn = true
})
.Where(d => d.Guid == detail.Guid)
- .IgnoreColumns(ignoreAllNullColumns: true)
+ .IgnoreColumns(true)
.ExecuteCommand();
// Check if already inserted
@@ -219,7 +227,6 @@
cSyQty -= remainingQty.Value;
if (count == 0)
- {
// Insert new item into MES_INV_ITEM_IN_C_ITEMS
db.Insertable(new MesInvItemInCItems
{
@@ -231,19 +238,18 @@
DepotCode = mesDepost.DepotCode,
ItemSname = itemBarcodeDetails.ItemSname,
Unit = itemBarcodeDetails.Unit,
- Ebeln = detail.WorkNo,
+ Ebeln = detail.Ebeln,
BillNo = cBillNo,
WorkNo = detail.WorkNo,
CbillNo = detail.CbillNo,
WorkLine = detail.WorkLine,
+ SuppId = itemBarcodeDetails.SuppId,
SuppNo = itemBarcodeDetails.SuppNo,
Remark = itemBarcodeDetails.Memo,
EbelnK3id = detail.EbelnK3id,
LineK3id = detail.LineK3id
}).IgnoreColumns(true).ExecuteCommand();
- }
else
- {
db.Updateable<MesInvItemInCItems>()
.SetColumns(it =>
it.Quantity == it.Quantity + remainingQty)
@@ -252,9 +258,8 @@
it.ItemId == detail.ItemId &&
it.WorkNo == detail.WorkNo &&
it.WorkLine == detail.WorkLine)
- .IgnoreColumns(ignoreAllNullColumns: true)
+ .IgnoreColumns(true)
.ExecuteCommand();
- }
// Insert new detail into MES_INV_ITEM_IN_C_DETAILS
db.Insertable(new MesInvItemInCDetails
@@ -267,6 +272,7 @@
EpFlag = true,
WorkType = 1,
ItemNo = detail.ItemNo,
+ SuppId = itemBarcodeDetails.SuppId,
SuppNo = itemBarcodeDetails.SuppNo,
DepotCode = mesDepost.DepotCode,
DepotSectionCode = sectionCode,
@@ -286,7 +292,8 @@
TaskNo = detail.WorkNo,
EbelnK3id = detail.EbelnK3id,
LineK3id = detail.LineK3id,
- ItemId = detail.ItemId
+ ItemId = detail.ItemId,
+ ReceiveOrgId = inventory.ReceiveOrgId
}).IgnoreColumns(true).ExecuteCommand();
}
else
@@ -298,7 +305,7 @@
OkRkqty = (int)((d.OkRkqty ?? 0) + cSyQty)
})
.Where(d => d.Guid == detail.Guid)
- .IgnoreColumns(ignoreAllNullColumns: true)
+ .IgnoreColumns(true)
.ExecuteCommand();
var count = db.Queryable<MesInvItemInCItems>()
@@ -310,7 +317,6 @@
.Count();
if (count == 0)
- {
db.Insertable(new MesInvItemInCItems
{
ItemInId = cId,
@@ -327,15 +333,14 @@
EbelnLineNo = detail.EbelnLine,
CbillNo = detail.CbillNo,
WorkLine = detail.WorkLine,
+ SuppId = itemBarcodeDetails.SuppId,
SuppNo = itemBarcodeDetails.SuppNo,
Remark = itemBarcodeDetails.Memo,
EbelnK3id = detail.EbelnK3id,
LineK3id = detail.LineK3id,
ItemId = detail.ItemId
}).IgnoreColumns(true).ExecuteCommand();
- }
else
- {
db.Updateable<MesInvItemInCItems>()
.SetColumns(it =>
it.Quantity == it.Quantity + cSyQty)
@@ -344,9 +349,8 @@
it.ItemId == detail.ItemId &&
it.WorkNo == detail.WorkNo &&
it.WorkLine == detail.WorkLine)
- .IgnoreColumns(ignoreAllNullColumns: true)
+ .IgnoreColumns(true)
.ExecuteCommand();
- }
db.Insertable(new MesInvItemInCDetails
{
@@ -358,6 +362,7 @@
EpFlag = true,
WorkType = 1,
ItemNo = detail.ItemNo,
+ SuppId = itemBarcodeDetails.SuppId,
SuppNo = itemBarcodeDetails.SuppNo,
DepotCode = mesDepost.DepotCode,
DepotSectionCode = sectionCode,
@@ -378,7 +383,8 @@
TaskNo = detail.WorkNo,
EbelnK3id = detail.EbelnK3id,
LineK3id = detail.LineK3id,
- ItemId = detail.ItemId
+ ItemId = detail.ItemId,
+ ReceiveOrgId = inventory.ReceiveOrgId
}).IgnoreColumns(true).ExecuteCommand();
cSyQty = 0; // Remaining quantity fulfilled
@@ -407,6 +413,7 @@
BillNo = cBillNo,
WorkNo = itemBarcodeDetails.WorkNo,
WorkLine = itemBarcodeDetails.WorkLine,
+ SuppId = itemBarcodeDetails.SuppId,
SuppNo = itemBarcodeDetails.SuppNo,
EbelnK3id = itemBarcodeDetails.EbelnK3id,
LineK3id = itemBarcodeDetails.LineK3id,
@@ -426,7 +433,6 @@
.Count();
if (existingCount == 0)
- {
// 涓嶅瓨鍦ㄦ椂鎻掑叆鏂拌褰�
db.Insertable(new MesInvItemInCItems
{
@@ -444,15 +450,14 @@
EbelnLineNo = itemBarcodeDetails.WorkLine,
CbillNo = itemBarcodeDetails.BillNo,
WorkLine = itemBarcodeDetails.WorkLine,
+ SuppId = itemBarcodeDetails.SuppId,
SuppNo = itemBarcodeDetails.SuppNo,
Remark = itemBarcodeDetails.Memo,
EbelnK3id = itemBarcodeDetails.EbelnK3id,
LineK3id = itemBarcodeDetails.LineK3id,
ItemId = itemBarcodeDetails.ItemId
}).IgnoreColumns(true).ExecuteCommand();
- }
else
- {
// 瀛樺湪鏃舵洿鏂版暟閲�
db.Updateable<MesInvItemInCItems>()
.SetColumns(it =>
@@ -462,9 +467,8 @@
it.ItemId == itemBarcodeDetails.ItemId &&
it.WorkNo == itemBarcodeDetails.WorkNo &&
it.WorkLine == itemBarcodeDetails.WorkLine)
- .IgnoreColumns(ignoreAllNullColumns: true)
+ .IgnoreColumns(true)
.ExecuteCommand();
- }
// 鎻掑叆 mes_inv_item_in_c_details 琛�
db.Insertable(new MesInvItemInCDetails
@@ -478,6 +482,7 @@
WorkType = 1,
ItemNo = itemBarcodeDetails.ItemNo,
LotNo = itemBarcodeDetails.LotNo,
+ SuppId = itemBarcodeDetails.SuppId,
SuppNo = itemBarcodeDetails.SuppNo,
DepotCode = mesDepost.DepotCode,
DepotSectionCode = sectionCode,
@@ -502,7 +507,8 @@
Ischeck = true,
CheckDate = inventoryDetails.CheckDate,
CheckRes = inventoryDetails.CheckRes,
- CheckStates = inventoryDetails.CheckStates
+ CheckStates = inventoryDetails.CheckStates,
+ ReceiveOrgId = inventory.ReceiveOrgId
}).IgnoreColumns(true).ExecuteCommand();
// 鎻掑叆 mes_inv_business2 琛�
@@ -530,6 +536,7 @@
BillNo = cBillNo,
WorkNo = itemBarcodeDetails.WorkNo,
WorkLine = itemBarcodeDetails.WorkLine,
+ SuppId = itemBarcodeDetails.SuppId,
SuppNo = itemBarcodeDetails.SuppNo,
EbelnK3id = itemBarcodeDetails.EbelnK3id,
LineK3id = itemBarcodeDetails.LineK3id,
@@ -554,11 +561,13 @@
BoardStyle = itemBarcodeDetails.BoardStyle,
WorkNo = itemBarcodeDetails.WorkNo,
WorkLine = itemBarcodeDetails.WorkLine,
+ SuppId = itemBarcodeDetails.SuppId,
SuppNo = itemBarcodeDetails.SuppNo,
EbelnK3id = itemBarcodeDetails.EbelnK3id,
LineK3id = itemBarcodeDetails.LineK3id,
ItemId = itemBarcodeDetails.ItemId,
- BillNo = itemBarcodeDetails.BillNo
+ BillNo = itemBarcodeDetails.BillNo,
+ DepotId = Convert.ToInt32(depotCode2)
}).IgnoreColumns(true).ExecuteCommand();
itemBarcodeDetails.Hbdy ??= 0;
@@ -589,12 +598,10 @@
var TotalOkRkQty = first.TotalOkRkQty ?? 0;
if (TotalQuantity == TotalOkRkQty)
- {
db.Updateable<MesInvItemArnDetail>()
.SetColumns(s => s.IsdepsIn == true)
.Where(s => s.Guid == inventoryDetails.Guid)
.ExecuteCommand();
- }
var totalSummary = db.Queryable<MesInvItemArnDetail>()
@@ -610,12 +617,10 @@
if ((totalSummary.TotalQuantity ?? 0) ==
(totalSummary.TotalOkRkQty ?? 0))
- {
db.Updateable<MesInvItemArn>()
.SetColumns(it => it.Status == 1)
.Where(it => it.BillNo == itemBarcodeDetails.BillNo)
.ExecuteCommand();
- }
var totalCDetailsQuantity = db.Queryable<MesInvItemInCDetails>()
.Where(it => it.WorkLine == itemBarcodeDetails.WorkLine &&
@@ -637,9 +642,7 @@
var diffQty = comeQty - invQty;
if (detailSummary == null)
- {
throw new Exception("姝ゆ潯鐮佹壘涓嶅埌瀵瑰簲鏀惰揣鍗曟槑缁嗭紒");
- }
var mesItems = db.Queryable<MesItems>()
.Where(s => s.Id == itemBarcodeDetails.ItemId).First();
@@ -669,12 +672,10 @@
if ((totalSummary.TotalQuantity ?? 0) ==
(totalSummary.TotalOkRkQty ?? 0))
- {
db.Updateable<MesInvItemArn>()
.SetColumns(it => it.Status == 1)
.Where(it => it.BillNo == itemBarcodeDetails.BillNo)
.ExecuteCommand();
- }
// Step 2: Calculate total sum from `mes_inv_item_in_c_details`
var totalCDetailsQuantity = db.Queryable<MesInvItemInCDetails>()
@@ -694,9 +695,7 @@
.First();
if (detailSummary == null)
- {
throw new Exception("姝ゆ潯鐮佹壘涓嶅埌瀵瑰簲鏀惰揣鍗曟槑缁嗭紒");
- }
var comeQty = detailSummary.TotalComeQty ?? 0;
var invQty = detailSummary.TotalInvQty ?? 0;
@@ -746,21 +745,19 @@
WarehouseQuery query)
{
var parsedGuid = Guid.Empty;
- if (string.IsNullOrEmpty(query.id))
+ if (!string.IsNullOrEmpty(query.id))
{
- return ([], 0);
+ var isValid = Guid.TryParse(query.id, out parsedGuid);
+ if (!isValid)
+ throw new ApplicationException("GUID杞崲閿欒");
}
-
- bool isValid = Guid.TryParse(query.id, out parsedGuid);
- if (!isValid)
- throw new ApplicationException("GUID杞崲閿欒");
var totalCount = 0;
var result = Db.Queryable<MesInvItemIns, MesDepots, MesSupplier>(
(a, b, c) =>
new JoinQueryInfos(JoinType.Left,
- a.DepotsCode == b.DepotCode,
- JoinType.Left, a.SuppNo == c.SuppNo))
+ a.DepotsId == b.DepotId,
+ JoinType.Left, a.SuppId == c.Id.ToString()))
.WhereIF(UtilityHelper.CheckGuid(parsedGuid),
(a, b, c) => a.Guid == parsedGuid)
.Select((a, b, c) => new MesInvItemIns
@@ -786,31 +783,28 @@
{
//string杞琯uid
var parsedGuid = Guid.Empty;
- if (string.IsNullOrEmpty(pid))
- {
- return ( []);
- }
+ if (string.IsNullOrEmpty(pid)) return [];
- bool isValid = Guid.TryParse(pid, out parsedGuid);
+ var isValid = Guid.TryParse(pid, out parsedGuid);
if (!isValid)
throw new ApplicationException("GUID杞崲閿欒");
var result = Db.Queryable<MesInvItemInCDetails, MesItems, MesUnit>(
- (g, c,d) => new JoinQueryInfos(
- JoinType.Left,g.ItemId == c.Id,
- JoinType.Inner,d.Id == Convert.ToDecimal(g.Unit)
- )
- ).WhereIF(UtilityHelper.CheckGuid(parsedGuid),
- (g, c,d) => g.ItemInId == parsedGuid)
- .Select((g, c,d)=> new MesInvItemInCItems
- {
- Guid = g.Guid,
- WorkNo = g.WorkNo,
- ItemNo = c.ItemNo,
- ItemSname = g.ItemSname,
- Quantity = g.Quantity,
- Unit = d.Fname,
- })
+ (g, c, d) => new JoinQueryInfos(
+ JoinType.Left, g.ItemId == c.Id,
+ JoinType.Inner, d.Id == Convert.ToDecimal(g.Unit)
+ )
+ ).WhereIF(UtilityHelper.CheckGuid(parsedGuid),
+ (g, c, d) => g.ItemInId == parsedGuid)
+ .Select((g, c, d) => new MesInvItemInCItems
+ {
+ Guid = g.Guid,
+ WorkNo = g.WorkNo,
+ ItemNo = c.ItemNo,
+ ItemSname = g.ItemSname,
+ Quantity = g.Quantity,
+ Unit = d.Fname
+ })
.ToList();
return result;
@@ -820,12 +814,9 @@
{
//string杞琯uid
var parsedGuid = Guid.Empty;
- if (string.IsNullOrEmpty(pid))
- {
- return ( []);
- }
+ if (string.IsNullOrEmpty(pid)) return [];
- bool isValid = Guid.TryParse(pid, out parsedGuid);
+ var isValid = Guid.TryParse(pid, out parsedGuid);
if (!isValid)
throw new ApplicationException("GUID杞崲閿欒");
@@ -833,7 +824,7 @@
(g, c, d) => new JoinQueryInfos(
JoinType.Left,
g.ItemId == c.Id, JoinType.Inner,
- d.Id == Convert.ToDecimal(c.ItemUnit)
+ d.Id.ToString() == c.Fpurchaseunitid
)
).WhereIF(UtilityHelper.CheckGuid(parsedGuid),
(g, c, d) => g.ItemInId == parsedGuid)
@@ -874,8 +865,12 @@
}
var ErpUrl = AppsettingsUtility.Settings.ProductionErpUrl;
+
+ var newGuid = Guid.NewGuid();
var message = new MessageCenter
{
+ Guid = newGuid,
+ //Pid = newGuid,
TableName = tableName,
Url = ErpUrl,
Status = 1,
@@ -899,11 +894,10 @@
var message = MesToErpParam(query);
var executeReturnIdentity =
- Db.Insertable(message).ExecuteReturnIdentity();
+ Db.Insertable(message).ExecuteCommand();
if (executeReturnIdentity > 0)
{
- //message.Guid = executeReturnIdentity;
- message.Pid = executeReturnIdentity;
+ message.Pid = message.Guid;
return message;
}
@@ -931,7 +925,7 @@
.SetColumns(x => x.Status == entity.status)
.SetColumns(x => x.InsDate == entity.date)
.Where(x => x.BillNo == entity.billNo)
- .IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommand() > 0;
+ .IgnoreColumns(true).ExecuteCommand() > 0;
}
private string GetErpParameters(string? billNo)
@@ -947,24 +941,20 @@
MesInvItemArnDetail>(
(g, c, d, a) => new JoinQueryInfos(
JoinType.Left,
- g.ItemNo == c.ItemNo && g.Company == c.Company &&
- g.Factory == c.Factory, JoinType.Inner,
- d.Id == Convert.ToDecimal(c.ItemUnit),
- JoinType.Inner,
- a.Ebeln == g.WorkNo && a.WorkLine == g.EbelnLineNo
- && g.CbillNo == a.CbillNo
+ g.ItemId == c.Id, JoinType.Inner,
+ d.Id.ToString() == c.Fpurchaseunitid,
+ JoinType.Inner, a.Ebeln == g.WorkNo && g.CbillNo == a.CbillNo
)
).Where((g, c, d, a) => g.BillNo == billNo).Select<Material>(
(g, c, d, a) => new Material
{
- // FstockId = g.DepotCode,
- // FuintId = d.Fnumber,
- // FsrcEntryId = a.Id,
- // FmesEntryId = g.Id,
- // FmaterialId = a.ItemNo,
- // DepotSectionCode = g.DepotSectionCode,
- // WorkNo = g.WorkNo,
- // Frealqty = g.Quantity
+ FMaterialId = c.ItemNo,
+ FRealQty = g.Quantity.ToString(),
+ FStockId = g.DepotCode,
+ FLot = a.CbillNo,
+ FUnitID = d.Fnumber,
+ FsrcEntryId = a.Guid.ToString(),
+ FMesEntryid = g.Guid.ToString()
}).ToList();
@@ -974,12 +964,13 @@
var jsonEntries = materials.Select(d => new
{
- // FMaterialId = d.FmaterialId,
- // FUintId = d.FuintId,
- // FRealQty = d.Frealqty,
- // FStockId = d.FstockId,
- // FSRCENTRYID = d.FsrcEntryId.ToString(),
- // F_MES_ENTRYID = d.FmesEntryId.ToString()
+ d.FMaterialId,
+ d.FRealQty,
+ d.FStockId,
+ d.FLot,
+ FUintId = d.FUnitID,
+ FSRCENTRYID = d.FsrcEntryId,
+ F_MES_ENTRYID = d.FMesEntryid
}).ToList();
var fdate = DateTime.Now.ToString("yyyy-MM-dd");
--
Gitblit v1.9.3