From 4ce0b8806c741778eea9d36f8089ceea37280e42 Mon Sep 17 00:00:00 2001
From: 况洋洋 <3283105747@qq.com>
Date: 星期四, 10 七月 2025 18:26:43 +0800
Subject: [PATCH] 采购入库新增入库类型、代码转存储过程
---
service/Warehouse/MesInvItemInCDetailsManager.cs | 1846 ++++++++++++++++++++++++++++++----------------------------
1 files changed, 957 insertions(+), 889 deletions(-)
diff --git a/service/Warehouse/MesInvItemInCDetailsManager.cs b/service/Warehouse/MesInvItemInCDetailsManager.cs
index 8749729..574f36f 100644
--- a/service/Warehouse/MesInvItemInCDetailsManager.cs
+++ b/service/Warehouse/MesInvItemInCDetailsManager.cs
@@ -10,6 +10,7 @@
using SqlSugar;
using System.Data;
using System.Data.SqlClient;
+using System.Security.Cryptography;
using static Microsoft.EntityFrameworkCore.DbLoggerCategory;
namespace NewPdaSqlServer.service.Warehouse;
@@ -19,917 +20,984 @@
//褰撳墠绫诲凡缁忕户鎵夸簡 Repository 澧炪�佸垹銆佹煡銆佹敼鐨勬柟娉�
- // public ItemInBaseModel SaveBarCodes(WarehouseQuery entity)
- // {
- // var _strMsg = "";
- // var _intSum = "";
- // using (var conn = new SqlConnection(DbHelperSQL.strConn))
- // {
- // if (entity.userName.IsNullOrEmpty()) throw new Exception("鐢ㄦ埛鍚嶄笉鍏佽涓虹┖");
- // if (entity.sectionCode.IsNullOrEmpty()) throw new Exception("搴撲綅缂栧彿涓嶅厑璁镐负绌�");
- // if (entity.barcode.IsNullOrEmpty()) throw new Exception("鏉$爜涓嶅厑璁镐负绌�");
- // if (entity.cgrkType.IsNullOrEmpty()) throw new Exception("閲囪喘鍏ュ簱绫诲瀷涓嶅厑璁镐负绌�");
-
- // using (var cmd = new SqlCommand("[prc_pda_inv_cgrk]", conn))
- // {
- // try
- // {
- // conn.Open();
- // cmd.CommandType = CommandType.StoredProcedure;
- // SqlParameter[] parameters =
- // {
- // new("@pi_user", SqlDbType.NVarChar, 100) { Value = entity.userName },
- // new("@pi_barcode", SqlDbType.NVarChar, 100) { Value = entity.barcode },
- // new("@pi_cgrkType", SqlDbType.NVarChar, 30) { Value = entity.cgrkType },
- // new("@po_outMsg", SqlDbType.NVarChar, 300),
- // new("@po_outSum", SqlDbType.NVarChar, 300)
- //};
-
- // foreach (var parameter in parameters)
- // cmd.Parameters.Add(parameter);
- // cmd.ExecuteNonQuery();
- // _strMsg = parameters[4].Value.ToString();
- // _intSum = parameters[5].Value.ToString();
-
- // var result = Convert.ToInt32(_intSum);
- // if (result <= 0) throw new Exception(_strMsg);
-
- // return _strMsg;
- // }
- // catch (Exception ex)
- // {
- // throw new Exception(ex.Message);
- // }
- // finally
- // {
- // conn.Close();
- // }
- // }
- // }
- // }
-
public ItemInBaseModel SaveBarCodes(WarehouseQuery entity)
{
- string functionName = "閲囪喘鍏ュ簱", fieldName = null, inFieldVal = null;
- string user = entity.userName,
- sectionCode = entity.sectionCode,
- itemBarcode = entity.barcode;
- var transactionNo = "101";
- int? billTypeId = 100, num = 0, num2 = 0;
- var freeze = 0;
- decimal cSyQty = 0;
+ ItemInBaseModel res = new ItemInBaseModel();
+ string connectionString = DbHelperSQL.strConn;
- if (string.IsNullOrEmpty(sectionCode))
- throw new Exception("璇锋壂搴撲綅鏉$爜锛�");
+ // 鍙傛暟楠岃瘉
+ 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), "鏉$爜涓嶅厑璁镐负绌�");
+ if (string.IsNullOrEmpty(entity.cgrkType)) throw new ArgumentNullException(nameof(entity.cgrkType), "閲囪喘鍏ュ簱绫诲瀷涓嶅厑璁镐负绌�");
- var itemBarcodeDetails = Db.Queryable<MesInvItemBarcodes>()
- .Where(it => it.ItemBarcode == itemBarcode)
- .First();
-
- if (itemBarcodeDetails == null)
- throw new Exception("鏉$爜涓嶅瓨鍦紝璇锋牳瀵癸紒");
-
- if (string.IsNullOrEmpty(itemBarcodeDetails.Memo) || itemBarcodeDetails.Memo != "閲囪喘鍏ュ簱")
- throw new Exception("姝ゆ潯鐮佷笉灞炰簬鍒拌揣鏉$爜锛屾棤娉曠敤閲囪喘鍏ュ簱锛�");
-
- var inventory = Db.Queryable<MesInvItemArn>()
- .Where(it => it.BillNo == itemBarcodeDetails.BillNo && it.Fstatus == true)
- .First();
-
- 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.Guid == itemBarcodeDetails.AboutGuid)
- .First();
-
- var cgddDetails = Db.Queryable<MesRohInData>()
- .Where(it => it.EbelnK3id == inventoryDetails.LineK3id)
- .First();
-
- if (inventoryDetails == null)
- throw new Exception("姝ゆ潯鐮佹壘涓嶅埌瀵瑰簲鏀惰揣鍗曟槑缁嗭紒");
-
- //鑾峰彇鍒拌揣妫�楠屾槑缁�
- var sqlParams = new List<SugarParameter> { new("@dhmxGuid", itemBarcodeDetails.AboutGuid) };
- var sql1 = @"SELECT *FROM v_dhmx WHERE dhmxGuid = @dhmxGuid ";
- var dhjymx = Db.Ado.SqlQuery<vDhmx>(sql1, sqlParams).First();
- //鍒ゅ畾妫�楠岃兘鍚﹀叆搴�
- if (dhjymx.CanStore != 1)
+ using (var conn = new SqlConnection(connectionString))
{
- throw new Exception($"璇ユ潯鐮佸搴旂殑鏀舵枡鍗曟楠岀粨鏋�:銆恵dhjymx.InspectionResult}銆�,鍒ゅ畾缁撴灉锛氥�恵dhjymx.JudgmentResult}銆戯紝澶勭悊鎰忚锛氥�恵dhjymx.HandlingSuggestion}銆�,鏃犳硶鍏ュ簱");
- }
-
- var depotCode = Db.Queryable<MesDepotSections>()
- .Where(it => it.DepotSectionCode == sectionCode)
- .Select(it => it.DepotGuid)
- .First();
-
- var depotCode2 = Db.Queryable<MesInvItemArn>()
- .Where(it => it.BillNo == itemBarcodeDetails.BillNo)
- .Select(it => it.DepotsId)
- .First();
-
- MesDepots mesDepost = null;
-
- var checkGuid = UtilityHelper.CheckGuid(depotCode);
- if (checkGuid && depotCode != null)
- {
- mesDepost = Db.Queryable<MesDepots>()
- .Where(s => s.DepotId.ToString() == depotCode).First();
-
- // if (depotCode != mesDepost.Guid)
- // throw new Exception("鎵弿搴撲綅涓庨噰璐叆搴撳簱浣嶄笉涓�鑷达紒");
- }
- else
- {
- throw new Exception("搴撲綅缂栫爜 " + sectionCode + " 涓嶅瓨鍦紝璇风‘璁わ紒");
- }
-
-
- //num = Db.Queryable<MesInvItemInCDetails>()
- // .Where(it => it.ItemBarcode == itemBarcode)
- // .Count();
-
- //if (num > 0)
- // throw new Exception("姝ゆ潯鐮佸凡鎵爜鍏ュ簱瀹屾垚锛岃鏍稿锛�");
-
- //num = Db.Queryable<MesInvItemStocks>()
- // .Where(it => it.ItemBarcode == itemBarcode)
- // .Count();
-
- //if (num > 0)
- // throw new Exception("姝ゆ潯鐮佸凡鎵爜鍏ュ簱锛岃鏍稿锛�");
-
- var wmsManager = new WmsBaseMangeer();
- // 鏂板鍏ュ簱鏍¢獙锛堣皟鐢ㄥ瓨鍌ㄨ繃绋嬶級
- var checkResult = wmsManager.pdaInvJY(
- db: Db,
- edtUserNo: entity.userName,
- barcode: entity.barcode,
- sectionCode: sectionCode,
- stockId: mesDepost.DepotId.ToString(),
- stockOrgId: mesDepost.FSubsidiary,
- billNo: "", // 鏍规嵁瀹為檯鍗曟嵁鍙蜂紶鍊�
- transactionNo: "101" // 浜嬪姟绫诲瀷涓庡瓨鍌ㄨ繃绋嬪尮閰�
- );
-
- if (Convert.ToInt32(checkResult.result) < 1)
- throw new Exception($"鍏ュ簱鏍¢獙澶辫触锛歿checkResult.strMsg}");
-
-
-
- //num = Db.Queryable<MesInvItemArn>()
- // .Where(a => a.BillNo == itemBarcodeDetails.BillNo)
- // .InnerJoin<MesInvItemArnDetail>((a, b) =>
- // b.ParentGuid == a.Guid &&
- // b.ItemId == itemBarcodeDetails.ItemId && b.Ischeck == 1)
- // .Count();
-
- //num2 = Db.Queryable<MesInvItemArn>()
- // .Where(a => a.BillNo == itemBarcodeDetails.BillNo)
- // .InnerJoin<MesInvItemArnDetail>((a, b) => b.ParentGuid == a.Guid
- // && b.ItemId == itemBarcodeDetails.ItemId
- // && (b.CheckRes == "鍚堟牸" || b.CheckStates == "鐗归噰鐩存帴浣跨敤"))
- // .Count();
-
- //switch (num)
- //{
- // case 0 when num2 == 0:
- // case > 0 when num2 == 0:
- // freeze = 1;
- // break;
- // case 0 when num2 > 0:
- // throw new Exception("鍏ュ簱澶辫触,鍒拌揣鍗曟嵁鏈夐棶棰橈紒");
- //}
-
-
- // 鍒ゆ柇璐т富绫诲瀷
- var owner_type = wmsManager.GetOwnerType(cgddDetails.DemandOrg);
- // if (Db.Queryable<SysOrganization>().Any(x => x.Fid == cgddDetails.DemandOrg))
- // {
- // owner_type = "BD_OwnerOrg";
- // }
- // else
- // {
- // // 绗簩灞傚垽鏂細妫�鏌� MES_CUSTOMER
- // if (Db.Queryable<MesCustomer>().Any(x => x.Id == Convert.ToInt32(cgddDetails.DemandOrg)))
- // {
- // owner_type = "BD_Customer";
- // }
- // else
- // {
- // // 绗笁灞傚垽鏂細妫�鏌� MES_SUPPLIER
- // if (Db.Queryable<MesSupplier>().Any(x => x.Id == Convert.ToInt32(cgddDetails.DemandOrg)))
- // {
- // owner_type = "BD_Supplier";
- // }
- // else
- // {
-
- // // 绗洓灞傚垽鏂細鍐嶆妫�鏌� SYS_ORGANIZATION
- // if (Db.Queryable<SysOrganization>().Any(x => x.Fid == cgddDetails.ReceivingOrg))
- // {
- // owner_type = "BD_OwnerOrg";
- // }
- // else
- // {
- // throw new Exception("鍏ュ簱澶辫触,鍒拌揣鍗曟嵁瀵瑰簲鐨勯渶姹傜粍缁囨湁闂锛�");
- // }
- // }
- // }
- //}
-
- var result = new ItemInBaseModel();
-
- UseTransaction(db =>
- {
- var existingRecord = db.Queryable<MesInvItemIns>()
- .Where(it => it.InsDate.Value.ToString("yyyy-MM-dd") == DateTime.Now.ToString("yyyy-MM-dd")
- && it.TaskNo == itemBarcodeDetails.BillNo
- && it.Status == 0
- && it.TransctionNo == transactionNo
- && it.CreateBy == entity.userName
- && it.BillTypeId == billTypeId
- && it.DepotsId == mesDepost.DepotId)
- .Select(it => new
- {
- it.Guid,
- it.BillNo
- })
- .First();
-
- var cId = Guid.Empty;
- string cBillNo = null;
-
- if (existingRecord != null)
+ using (var cmd = new SqlCommand("[prc_pda_inv_cgrk]", conn))
{
- // If record exists, assign values
- cId = existingRecord.Guid;
- cBillNo = existingRecord.BillNo;
- }
- else
- {
- cId = Guid.NewGuid();
- cBillNo = BillNo.GetBillNo("CGRK(閲囪喘鍏ュ簱)");
-
- var suppNo = db.Queryable<MesSupplier>()
- .Where(s => s.Id.ToString() == inventory.SuppId).First();
-
- db.Insertable(new MesInvItemIns
+ try
{
- Guid = cId,
- BillNo = cBillNo,
- BillTypeId = billTypeId,
- InsDate = DateTime.Now,
- DepotsId = mesDepost.DepotId,
- DepotsCode = mesDepost.DepotCode,
- TransctionNo = transactionNo,
- SuppId = suppNo.Id.ToString(),
- SuppNo = suppNo.SuppNo,
- CreateBy = user,
- CreateDate = DateTime.Now,
- LastupdateBy = user,
- LastupdateDate = DateTime.Now,
- UrgentFlag = itemBarcodeDetails.UrgentFlag.Value
- ? "1"
- : "0",
- CbillNo = itemBarcodeDetails.BillNo,
- Fstatus = 0,
- Status = 0,
- ReceiveOrgId = inventory.ReceiveOrgId,
- InType = "閲囪喘鍏ュ簱",
- TaskNo = itemBarcodeDetails.BillNo
- //WorkNo = itemBarcodeDetails.WorkNo
- }).IgnoreColumns(true).ExecuteCommand();
- }
+ conn.Open();
+ cmd.CommandType = CommandType.StoredProcedure;
- cSyQty = itemBarcodeDetails.Quantity.Value;
-
- entity.id = cId.ToString();
- entity.PageIndex = 1;
- entity.Limit = 1;
-
- itemBarcodeDetails.Hbdy ??= 0;
- if (itemBarcodeDetails.Hbdy == 1)
- {
- var details = db.Queryable<MesInvItemArnDetail>()
- .Where(d =>
- d.CbillNo == itemBarcodeDetails.BillNo &&
- d.Quantity != d.OkRkqty &&
- d.ItemId == itemBarcodeDetails.ItemId)
- .ToList();
-
-
- foreach (var detail in details)
- {
- if (cSyQty == 0) break;
-
- var remainingQty = detail.Quantity - (detail.OkRkqty ?? 0);
- if (remainingQty <= cSyQty)
+ // 璁剧疆瀛樺偍杩囩▼鍙傛暟
+ SqlParameter[] parameters =
{
- // Update detail
- db.Updateable<MesInvItemArnDetail>()
- .SetColumns(d => new MesInvItemArnDetail
- {
- OkRkqty = (int)d.Quantity,
- IsdepsIn = true
- })
- .Where(d => d.Guid == detail.Guid)
- .IgnoreColumns(true)
- .ExecuteCommand();
+ new SqlParameter("@pi_user", SqlDbType.NVarChar, 100) { Value = entity.userName },
+ new SqlParameter("@pi_barcode", SqlDbType.NVarChar, 100) { Value = entity.barcode.Trim().ToLower() },
+ new SqlParameter("@pi_sectionCode", SqlDbType.NVarChar, 30) { Value = entity.sectionCode },
+ new SqlParameter("@pi_cgrkType", SqlDbType.NVarChar, 30) { Value = entity.cgrkType },
+ new SqlParameter("@po_outMsg", SqlDbType.NVarChar, 300) { Direction = ParameterDirection.Output },
+ new SqlParameter("@po_outSum", SqlDbType.NVarChar, 300) { Direction = ParameterDirection.Output }
+ };
- // Check if already inserted
- var count = db.Queryable<MesInvItemInCItems>()
- .Where(it =>
- it.ItemInId == cId &&
- it.ItemId == detail.ItemId &&
- it.DepotId == depotCode2 &&
- it.EbelnK3id == detail.EbelnK3id &&
- it.LineK3id == detail.LineK3id)
- .Count();
+ cmd.Parameters.AddRange(parameters);
+ cmd.ExecuteNonQuery();
- cSyQty -= remainingQty.Value;
+ // 鑾峰彇杈撳嚭鍙傛暟
+ string? outMessage = parameters[4].Value?.ToString();
+ string? outSum = parameters[5].Value?.ToString();
- if (count == 0)
- // Insert new item into MES_INV_ITEM_IN_C_ITEMS
- db.Insertable(new MesInvItemInCItems
- {
- ItemInId = cId,
- Quantity = remainingQty,
- CreateBy = user,
- CreateDate = DateTime.Now,
- ItemId = detail.ItemId,
- DepotCode = mesDepost.DepotCode,
- ItemSname = itemBarcodeDetails.ItemSname,
- Unit = itemBarcodeDetails.Unit,
- 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,
- DepotId = depotCode2,
- itemDabid = itemBarcodeDetails.AboutGuid.ToString()
- }).IgnoreColumns(true).ExecuteCommand();
- else
- db.Updateable<MesInvItemInCItems>()
- .SetColumns(it =>
- it.Quantity == it.Quantity + remainingQty)
- .Where(it =>
- it.ItemInId == cId &&
- it.ItemId == detail.ItemId &&
- it.DepotId == depotCode2 &&
- it.EbelnK3id == detail.EbelnK3id &&
- it.LineK3id == detail.LineK3id)
- .IgnoreColumns(true)
- .ExecuteCommand();
+ if (string.IsNullOrEmpty(outMessage) || string.IsNullOrEmpty(outSum))
+ throw new InvalidOperationException("瀛樺偍杩囩▼杩斿洖鍙傛暟寮傚父");
- // Insert new detail into MES_INV_ITEM_IN_C_DETAILS
- db.Insertable(new MesInvItemInCDetails
- {
- ItemInId = cId,
- BillNo = cBillNo,
- ItemBarcode = itemBarcode,
- Quantity = remainingQty,
- BarcodeFlag = true,
- EpFlag = true,
- WorkType = 1,
- ItemNo = detail.ItemNo,
- SuppId = itemBarcodeDetails.SuppId,
- SuppNo = itemBarcodeDetails.SuppNo,
- DepotCode = mesDepost.DepotCode,
- DepotSectionCode = sectionCode,
- ItemSname = itemBarcodeDetails.ItemSname,
- Unit = itemBarcodeDetails.Unit,
- CreateBy = user,
- CreateDate = DateTime.Now,
- LastupdateBy = user,
- LastupdateDate = DateTime.Now,
- Remark = itemBarcodeDetails.Memo,
- Ebeln = detail.WorkNo,
- WorkNo = detail.WorkNo,
- WorkLine = detail.WorkLine,
- CbillNo = itemBarcodeDetails.BillNo,
- UrgentFlag = detail.UrgentFlag,
- BoardStyle = detail.BoardStyle,
- TaskNo = detail.WorkNo,
- EbelnK3id = detail.EbelnK3id,
- LineK3id = detail.LineK3id,
- ItemId = detail.ItemId,
- ReceiveOrgId = inventory.ReceiveOrgId,
- LotNo = cgddDetails.BatchNumber
- }).IgnoreColumns(true).ExecuteCommand();
- }
- else
- {
- // Partially fulfill remaining quantity
- db.Updateable<MesInvItemArnDetail>()
- .SetColumns(d => new MesInvItemArnDetail
- {
- OkRkqty = (int)((d.OkRkqty ?? 0) + cSyQty)
- })
- .Where(d => d.Guid == detail.Guid)
- .IgnoreColumns(true)
- .ExecuteCommand();
+ // 楠岃瘉缁撴灉
+ if (!int.TryParse(outSum, out int result) || result <= 0)
+ throw new InvalidOperationException(outMessage);
- var count = db.Queryable<MesInvItemInCItems>()
- .Where(it =>
- it.ItemInId == cId &&
- it.ItemId == detail.ItemId &&
- it.DepotId == depotCode2 &&
- it.EbelnK3id == detail.EbelnK3id &&
- it.LineK3id == detail.LineK3id)
- .Count();
+ // 璋冭瘯杈撳嚭
+ Console.WriteLine($"鏌ヨ鐨勬潯鐮佸��: '{entity.barcode}' (闀垮害: {entity.barcode.Length})");
- if (count == 0)
- db.Insertable(new MesInvItemInCItems
- {
- ItemInId = cId,
- Quantity = cSyQty,
- CreateBy = user,
- CreateDate = DateTime.Now,
- ItemNo = detail.ItemNo,
- DepotCode = mesDepost.DepotCode,
- ItemSname = itemBarcodeDetails.ItemSname,
- Unit = itemBarcodeDetails.Unit,
- Ebeln = detail.WorkNo,
- BillNo = cBillNo,
- WorkNo = detail.WorkNo,
- 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,
- DepotId = depotCode2
- }).IgnoreColumns(true).ExecuteCommand();
- else
- db.Updateable<MesInvItemInCItems>()
- .SetColumns(it =>
- it.Quantity == it.Quantity + cSyQty)
- .Where(it =>
- it.ItemInId == cId &&
- it.ItemId == detail.ItemId &&
- it.DepotId == depotCode2 &&
- it.EbelnK3id == detail.EbelnK3id &&
- it.LineK3id == detail.LineK3id)
- .IgnoreColumns(true)
- .ExecuteCommand();
+ // 浣跨敤鍙傛暟鍖栨煡璇㈠苟蹇界暐澶у皬鍐欙紙閫傜敤浜庢敮鎸佺殑鏁版嵁搴擄級
+ var itemBarcodeDetails = Db.Queryable<MesInvItemBarcodes>()
+ .Where(it => it.ItemBarcode.Trim().ToLower() == entity.barcode.Trim().ToLower())
+ .First() ?? throw new InvalidOperationException($"鏈壘鍒版潯鐮� '{entity.barcode}' 鐨勫尮閰嶄俊鎭�");
- db.Insertable(new MesInvItemInCDetails
- {
- ItemInId = cId,
- BillNo = cBillNo,
- ItemBarcode = itemBarcode,
- Quantity = cSyQty,
- BarcodeFlag = true,
- EpFlag = true,
- WorkType = 1,
- ItemNo = detail.ItemNo,
- SuppId = itemBarcodeDetails.SuppId,
- SuppNo = itemBarcodeDetails.SuppNo,
- DepotCode = mesDepost.DepotCode,
- DepotSectionCode = sectionCode,
- ItemSname = itemBarcodeDetails.ItemSname,
- Unit = itemBarcodeDetails.Unit,
- CreateBy = user,
- CreateDate = DateTime.Now,
- LastupdateBy = user,
- LastupdateDate = DateTime.Now,
- Remark = itemBarcodeDetails.Memo,
- Ebeln = detail.WorkNo,
- EbelnLineNo = detail.EbelnLine,
- WorkNo = detail.WorkNo,
- WorkLine = detail.WorkLine,
- CbillNo = itemBarcodeDetails.BillNo,
- UrgentFlag = detail.UrgentFlag,
- BoardStyle = detail.BoardStyle,
- TaskNo = detail.WorkNo,
- EbelnK3id = detail.EbelnK3id,
- LineK3id = detail.LineK3id,
- ItemId = detail.ItemId,
- ReceiveOrgId = inventory.ReceiveOrgId,
- LotNo = cgddDetails.BatchNumber
- }).IgnoreColumns(true).ExecuteCommand();
+ // 璋冭瘯杈撳嚭锛堟鏌ュ�煎拰闀垮害锛�
+ Console.WriteLine($"鏌ヨ鐨勬潯鐮佸��: '{entity.barcode}' (闀垮害: {entity.barcode.Length})");
- cSyQty = 0; // Remaining quantity fulfilled
- }
+ // 浼樺寲鏌ヨ锛堝幓闄ょ┖鏍煎苟蹇界暐澶у皬鍐欙級
+ var MesInvItemInCDetails = Db.Queryable<MesInvItemInCDetails>()
+ .Where(it => it.ItemBarcode.Trim().ToLower() == entity.barcode.Trim().ToLower())
+ .First() ?? throw new InvalidOperationException($"鏈壘鍒版潯鐮� '{entity.barcode}' 鐨勫尮閰嶇殑鍏ュ簱淇℃伅");
+
+ // 浠庡叆搴撴潯鐮佷腑鑾峰彇鏈夋晥鐨処temInId
+ var cId = MesInvItemInCDetails.ItemInId; // 鍋囪瀛樺湪ItemInId灞炴��
+
+ // 鏌ヨ鐗╂枡姹囨�绘槑缁�
+ var sql = string.Format(@"
+ SELECT
+ b.Item_No AS ItemNo,
+ b.Item_Name AS ItemName,
+ b.Item_Model AS ItemModel,
+ a.Quantity AS FQty,
+ b.Item_Id AS FMaterialId,
+ CONVERT(VARCHAR(36), b.Guid) AS Id
+ FROM MES_INV_ITEM_IN_C_ITEMS a
+ LEFT JOIN Mes_Items b ON a.Item_Id = b.Item_Id
+ WHERE a.Item_In_Id = '{0}' AND a.Item_Id = '{1}'", cId, itemBarcodeDetails.ItemId);
+
+ res.ItemInDetails = Db.Ado.SqlQuery<dynamic>(sql);
+
+ // 鏌ヨ鍏ュ簱鏉$爜鏄庣粏
+ var sql2 = string.Format(@"
+ SELECT
+ b.Item_No AS ItemNo,
+ b.Item_Name AS ItemName,
+ b.Item_Model AS ItemModel,
+ a.Quantity AS FQty,
+ b.Item_Id AS FMaterialId,
+ CONVERT(VARCHAR(36), a.Guid) AS Id,
+ a.Depot_Section_Code AS kw,
+ a.Item_Barcode AS barcode
+ FROM Mes_Inv_Item_In_C_Details a
+ LEFT JOIN Mes_Items b ON a.Item_Id = b.Item_Id
+ WHERE a.Item_In_Id = '{0}' AND a.Item_Id = '{1}'",cId, itemBarcodeDetails.ItemId);
+
+ res.ItemBarCDetails = Db.Ado.SqlQuery<dynamic>(sql2);
+
+ // 璁剧疆杩斿洖淇℃伅
+ res.Message = outMessage;
+ res.SumQuantity = result;
+
+ return res;
}
-
- db.Insertable(new MesInvBusiness2
+ catch (Exception ex)
{
- Status = 1,
- BillTypeId = billTypeId,
- TransactionCode = transactionNo,
- BusinessType = 1,
- ItemBarcode = itemBarcode,
- ItemNo = itemBarcodeDetails.ItemNo,
- LotNo = cgddDetails.BatchNumber,
- EpFlag = true,
- Quantity = itemBarcodeDetails.Quantity,
- ToInvDepotsCode = mesDepost.DepotCode,
- ToInvDepotSectionsCode = sectionCode,
- Description = "閲囪喘鍏ュ簱",
- CreateBy = user,
- CreateDate = DateTime.Now,
- LastupdateBy = user,
- LastupdateDate = DateTime.Now,
- TaskNo = itemBarcodeDetails.BillNo,
- BillNo = cBillNo,
- WorkNo = itemBarcodeDetails.WorkNo,
- WorkLine = itemBarcodeDetails.WorkLine,
- SuppId = itemBarcodeDetails.SuppId,
- SuppNo = itemBarcodeDetails.SuppNo,
- EbelnK3id = itemBarcodeDetails.EbelnK3id,
- LineK3id = itemBarcodeDetails.LineK3id,
- ItemId = itemBarcodeDetails.ItemId
- }).IgnoreColumns(true).ExecuteCommand();
- // Insert into mes_inv_item_stocks
+
+ // 璁板綍寮傚父鏃ュ織锛堝缓璁坊鍔犳棩蹇楄褰曪級
+ res.Message = $"鎿嶄綔澶辫触: {ex.Message}";
+ return res;
+ }
}
- else
- {
- var detailone = db.Queryable<MesInvItemArnDetail>()
- .Where(d =>
- d.Guid == itemBarcodeDetails.AboutGuid)
- .First();
-
- // 妫�鏌ユ槸鍚﹀瓨鍦ㄤ簬 MES_INV_ITEM_IN_C_ITEMS 琛�
- var existingCount = db.Queryable<MesInvItemInCItems>()
- .Where(it =>
- it.ItemInId == cId &&
- it.ItemId == detailone.ItemId &&
- it.DepotId == depotCode2 &&
- it.itemDabid == itemBarcodeDetails.AboutGuid.ToString())
- .Count();
-
- if (existingCount == 0)
- // 涓嶅瓨鍦ㄦ椂鎻掑叆鏂拌褰�
- db.Insertable(new MesInvItemInCItems
- {
- ItemInId = cId,
- Quantity = itemBarcodeDetails.Quantity,
- CreateBy = user,
- CreateDate = DateTime.Now,
- ItemNo = itemBarcodeDetails.ItemNo,
- DepotCode = mesDepost.DepotCode,
- ItemSname = itemBarcodeDetails.ItemSname,
- Unit = itemBarcodeDetails.Unit,
- Ebeln = itemBarcodeDetails.WorkNo,
- BillNo = cBillNo,
- WorkNo = itemBarcodeDetails.WorkNo,
- 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,
- DepotId = depotCode2,
- itemDabid = itemBarcodeDetails.AboutGuid.ToString()
- }).IgnoreColumns(true).ExecuteCommand();
- else
- // 瀛樺湪鏃舵洿鏂版暟閲�
- db.Updateable<MesInvItemInCItems>()
- .SetColumns(it => new MesInvItemInCItems
- {
- Quantity = SqlFunc.IsNull(it.Quantity, 0) + itemBarcodeDetails.Quantity // 纭繚 Quantity 涓嶄负 null
- })
- .Where(it =>
- it.ItemInId == cId &&
- it.ItemId == detailone.ItemId &&
- it.DepotId == depotCode2 &&
- it.itemDabid == itemBarcodeDetails.AboutGuid.ToString())
- //.IgnoreColumns(true) // 淇濈暀 IgnoreColumns
- .ExecuteCommand();
-
- // 鎻掑叆 mes_inv_item_in_c_details 琛�
- db.Insertable(new MesInvItemInCDetails
- {
- ItemInId = cId,
- BillNo = cBillNo,
- ItemBarcode = itemBarcode,
- Quantity = itemBarcodeDetails.Quantity,
- BarcodeFlag = true,
- EpFlag = true,
- WorkType = 1,
- ItemNo = itemBarcodeDetails.ItemNo,
- LotNo = cgddDetails.BatchNumber,
- SuppId = itemBarcodeDetails.SuppId,
- SuppNo = itemBarcodeDetails.SuppNo,
- DepotCode = mesDepost.DepotCode,
- DepotSectionCode = sectionCode,
- ItemSname = itemBarcodeDetails.ItemSname,
- Unit = itemBarcodeDetails.Unit,
- CreateBy = user,
- CreateDate = DateTime.Now,
- LastupdateBy = user,
- LastupdateDate = DateTime.Now,
- Remark = itemBarcodeDetails.Memo,
- Ebeln = itemBarcodeDetails.Mblnr,
- EbelnLineNo = itemBarcodeDetails.Zeile,
- WorkNo = itemBarcodeDetails.WorkNo,
- WorkLine = itemBarcodeDetails.WorkLine,
- CbillNo = itemBarcodeDetails.BillNo,
- UrgentFlag = itemBarcodeDetails.UrgentFlag,
- BoardStyle = itemBarcodeDetails.BoardStyle,
- TaskNo = itemBarcodeDetails.TaskNo,
- EbelnK3id = itemBarcodeDetails.EbelnK3id,
- LineK3id = itemBarcodeDetails.LineK3id,
- ItemId = itemBarcodeDetails.ItemId,
- Ischeck = true,
- CheckDate = inventoryDetails.CheckDate,
- CheckRes = inventoryDetails.CheckRes,
- CheckStates = inventoryDetails.CheckStates,
- ReceiveOrgId = inventory.ReceiveOrgId,
- DepotId = Convert.ToInt64(depotCode2)
- }).IgnoreColumns(true).ExecuteCommand();
-
- // 鎻掑叆 mes_inv_business2 琛�
- db.Insertable(new MesInvBusiness2
- {
- Status = 1,
- BillTypeId = billTypeId,
- TransactionCode = transactionNo,
- BusinessType = 1,
- ItemBarcode = itemBarcode,
- ItemNo = itemBarcodeDetails.ItemNo,
- LotNo = itemBarcodeDetails.LotNo,
- EpFlag = true,
- Quantity = itemBarcodeDetails.Quantity,
- FromInvDepotsCode = null,
- FromInvDepotSectionsCode = null,
- ToInvDepotsCode = mesDepost.DepotCode,
- ToInvDepotSectionsCode = sectionCode,
- Description = "閲囪喘鍏ュ簱",
- CreateBy = user,
- CreateDate = DateTime.Now,
- LastupdateBy = user,
- LastupdateDate = DateTime.Now,
- TaskNo = itemBarcodeDetails.TaskNo,
- BillNo = cBillNo,
- WorkNo = itemBarcodeDetails.WorkNo,
- WorkLine = itemBarcodeDetails.WorkLine,
- SuppId = itemBarcodeDetails.SuppId,
- SuppNo = itemBarcodeDetails.SuppNo,
- EbelnK3id = itemBarcodeDetails.EbelnK3id,
- LineK3id = itemBarcodeDetails.LineK3id,
- ItemId = itemBarcodeDetails.ItemId
- }).IgnoreColumns(true).ExecuteCommand();
-
- // 鎻掑叆 mes_inv_item_stocks 琛�
- }
-
-
-
- db.Insertable(new MesInvItemStocks
- {
- TaskNo = itemBarcodeDetails.TaskNo,
- ItemBarcode = itemBarcode,
- ItemNo = cgddDetails.BatchNumber,
- LotNo = itemBarcodeDetails.LotNo,
- Quantity = itemBarcodeDetails.Quantity,
- DepotsCode = mesDepost.DepotCode,
- DepotSectionsCode = sectionCode,
- CheckDate = inventoryDetails.CheckDate,
- IndepDate = DateTime.Now,
- IqcStatus = inventoryDetails.CheckStates,
- 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,
- DepotId = Convert.ToInt32(depotCode2),
- OwnerId = cgddDetails.DemandOrg,
- OwnerType = owner_type,
- StockOrgId = mesDepost.FSubsidiary,
- IndepUserCode = user
- }).IgnoreColumns(true).ExecuteCommand();
-
- itemBarcodeDetails.Hbdy ??= 0;
-
- if (itemBarcodeDetails.Hbdy != 1)
- {
- //鏇存柊鏀舵枡鍗曟槑缁�
- db.Updateable<MesInvItemArnDetail>()
- .SetColumns(d => new MesInvItemArnDetail
- {
- OkRkqty = (int)((d.OkRkqty ?? 0) + cSyQty)
- })
- .Where(d => d.Guid == itemBarcodeDetails.AboutGuid)
- .ExecuteCommand();
-
- var first = db
- .Queryable<MesInvItemArnDetail>()
- .Where(b =>
- b.Guid == itemBarcodeDetails.AboutGuid)
- .Select(b => new
- {
- TotalQuantity =
- SqlFunc.AggregateSum(b.Quantity),
- TotalOkRkQty = SqlFunc.AggregateSum(b.OkRkqty)
- })
- .First();
-
- var TotalQuantity = first.TotalQuantity ?? 0;
- var TotalOkRkQty = first.TotalOkRkQty ?? 0;
-
- if (TotalQuantity == TotalOkRkQty)
- db.Updateable<MesInvItemArnDetail>()
- .SetColumns(s => s.IsdepsIn == true)
- .Where(s => s.Guid == itemBarcodeDetails.AboutGuid)
- .ExecuteCommand();
-
-
- var totalSummary = db.Queryable<MesInvItemArnDetail>()
- .InnerJoin<MesInvItemArn>((b, a) => a.Guid == b.ParentGuid)
- .Where((b, a) =>
- a.BillNo == inventory.BillNo && b.ReturnFlag == 0)
- .Select((b, a) => new
- {
- TotalQuantity = SqlFunc.AggregateSum(b.Quantity),
- TotalOkRkQty = SqlFunc.AggregateSum(b.OkRkqty)
- })
- .First();
-
- 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.ItemId == itemBarcodeDetails.ItemId &&
- it.WorkNo == itemBarcodeDetails.WorkNo &&
- it.ItemInId == cId)
- .Sum(it => it.Quantity);
-
- var detailSummary = db.Queryable<MesInvItemArnDetail>()
- .Where(it => it.Guid == inventoryDetails.Guid)
- .Select(it => new
- {
- TotalComeQty = SqlFunc.AggregateSum(it.Quantity),
- TotalInvQty = SqlFunc.AggregateSum(it.OkRkqty)
- })
- .First();
-
- var comeQty = detailSummary.TotalComeQty ?? 0;
- var invQty = detailSummary.TotalInvQty ?? 0;
- var diffQty = comeQty - invQty;
-
- if (detailSummary == null)
- throw new Exception("姝ゆ潯鐮佹壘涓嶅埌瀵瑰簲鏀惰揣鍗曟槑缁嗭紒");
-
- var mesItems = db.Queryable<MesItems>()
- .Where(s => s.Id == itemBarcodeDetails.ItemId).First();
-
- //result.Message =
- // $"鏉$爜鏁伴噺 {itemBarcodeDetails.Quantity},閲囪喘璁㈠崟 {itemBarcodeDetails.WorkNo} 椤规 {itemBarcodeDetails.WorkLine} 鐗╂枡 {mesItems.ItemNo} 鏈鍏ュ簱鎬绘暟锛歿totalCDetailsQuantity} 鎬诲埌 {comeQty} 宸插叆 {invQty} 娆� {diffQty}";
- result.Message = $"鐗╂枡{mesItems.ItemNo}鍏ュ簱鎴愬姛鏁伴噺{itemBarcodeDetails.Quantity.ToString()}";
-
- result.itemDetail = mesItems;
-
- result.ItemInDetails = db.Queryable<MesInvItemInCItems, MesItems>(
- (a, b) => new JoinQueryInfos(
- JoinType.Left,
- a.ItemId == b.ItemId)
- )
- .Where(a => a.ItemInId == cId && a.ItemId == itemBarcodeDetails.ItemId)
- .Select<dynamic>((a, b) => new
- {
- ItemNo = b.ItemNo,
- ItemName = b.ItemName,
- ItemModel = b.ItemModel,
- FQty = a.Quantity, // 鐢宠鏁伴噺
- FMaterialId = b.ItemId,
- Id = b.Guid.ToString()
- })
- .ToList();
-
- result.ItemBarCDetails = db.Queryable<MesInvItemInCDetails, MesItems>(
- (a, b) => new JoinQueryInfos(
- JoinType.Left,
- a.ItemId == b.ItemId)
- )
- .Where(a => a.ItemInId == cId && a.ItemId == itemBarcodeDetails.ItemId)
- .Select<dynamic>((a, b) => new
- {
- ItemNo = b.ItemNo,
- ItemName = b.ItemName,
- ItemModel = b.ItemModel,
- FQty = a.Quantity, // 鐢宠鏁伴噺
- FMaterialId = b.ItemId,
- Id = a.Guid.ToString(),
- kw = a.DepotSectionCode,
- barcode = a.ItemBarcode
- })
- .ToList();
-
-
- //result.ItemNo = mesItems.ItemNo;
- result.SumQuantity = Convert.ToDecimal(invQty);
-
- return 1;
- }
- else
- {
- // Step 1: Check if bill needs to be closed (status update)
- var totalSummary = db.Queryable<MesInvItemArnDetail>()
- .LeftJoin<MesInvItemArn>((b, a) => a.Guid == b.ParentGuid)
- .Where((b, a) =>
- a.BillNo == inventory.BillNo && b.ReturnFlag == 0)
- .Select((b, a) => new
- {
- TotalQuantity = SqlFunc.AggregateSum(b.Quantity),
- TotalOkRkQty = SqlFunc.AggregateSum(b.OkRkqty)
- })
- .First();
-
- 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>()
- .Where(it => it.Guid == itemBarcodeDetails.AboutGuid)
- .Sum(it => it.Quantity);
-
- // Step 3: Calculate comeQty and invQty from `mes_inv_item_arn_detail`
- var detailSummary = db.Queryable<MesInvItemArnDetail>()
- .Where(it => it.Guid == itemBarcodeDetails.AboutGuid)
- .Select(it => new
- {
- TotalComeQty = SqlFunc.AggregateSum(it.Quantity),
- TotalInvQty = SqlFunc.AggregateSum(it.OkRkqty)
- })
- .First();
-
- if (detailSummary == null)
- throw new Exception("姝ゆ潯鐮佹壘涓嶅埌瀵瑰簲鏀惰揣鍗曟槑缁嗭紒");
-
- var comeQty = detailSummary.TotalComeQty ?? 0;
- var invQty = detailSummary.TotalInvQty ?? 0;
- var diffQty = comeQty - invQty;
-
- var mesItems = db.Queryable<MesItems>()
- .Where(s => s.Id == itemBarcodeDetails.ItemId).First();
-
- // Step 5: Combine final result
- result.Message =
- $" 鏉$爜鏁伴噺:{itemBarcodeDetails.Quantity},鐗╂枡 {mesItems.ItemNo} 鏈鍏ュ簱鎬绘暟锛歿totalCDetailsQuantity} 鎬诲埌 {comeQty} 宸插叆 {invQty} 娆� {diffQty}";
-
-
- //result.ItemNo = mesItems.ItemNo;
- result.SumQuantity = Convert.ToDecimal(totalCDetailsQuantity);
- }
-
- var mesInvItemInCDetails =
- base.GetSingle(it => it.ItemBarcode == entity.barcode);
-
- if (mesInvItemInCDetails == null)
- throw new Exception("鐗╂枡鍏ュ簱鏉$爜鏄庣粏涓嶅瓨鍦�"); // 鎶涘嚭寮傚父浠ヤ緵鍓嶅彴澶勭悊
-
- // 鍒涘缓 鎻掑叆鏃ュ織
- var logService = new LogService();
- var LogMsg = "銆怭DA銆戦噰璐叆搴撱�傛潯鐮併��" + entity.barcode + "銆� 鍏ュ簱鍗曞彿銆�" + cBillNo + "銆�";
- logService.CreateLog(db, entity.userName, inventory.Guid.ToString(), "MES_INV_ITEM_ARN", LogMsg, inventory.BillNo);
-
- return 1;
- });
-
- var purchaseInventory = getPurchaseInventory(entity);
-
-
- //result.ItemInDetails = purchaseInventory.ItemInDetails;
- //result.InvItemInCDetails = purchaseInventory.InvItemInCDetails;
-
- return result;
+ }
}
+
+
+
+ //public ItemInBaseModel SaveBarCodes(WarehouseQuery entity)
+ //{
+ // string functionName = "閲囪喘鍏ュ簱", fieldName = null, inFieldVal = null;
+ // string user = entity.userName,
+ // sectionCode = entity.sectionCode,
+ // itemBarcode = entity.barcode;
+ // var transactionNo = "101";
+ // int? billTypeId = 100, num = 0, num2 = 0;
+ // var freeze = 0;
+ // decimal cSyQty = 0;
+
+ // if (string.IsNullOrEmpty(sectionCode))
+ // throw new Exception("璇锋壂搴撲綅鏉$爜锛�");
+
+ // var itemBarcodeDetails = Db.Queryable<MesInvItemBarcodes>()
+ // .Where(it => it.ItemBarcode == itemBarcode)
+ // .First();
+
+ // if (itemBarcodeDetails == null)
+ // throw new Exception("鏉$爜涓嶅瓨鍦紝璇锋牳瀵癸紒");
+
+ // if (string.IsNullOrEmpty(itemBarcodeDetails.Memo) || itemBarcodeDetails.Memo != "閲囪喘鍏ュ簱")
+ // throw new Exception("姝ゆ潯鐮佷笉灞炰簬鍒拌揣鏉$爜锛屾棤娉曠敤閲囪喘鍏ュ簱锛�");
+
+ // var inventory = Db.Queryable<MesInvItemArn>()
+ // .Where(it => it.BillNo == itemBarcodeDetails.BillNo && it.Fstatus == true)
+ // .First();
+
+ // 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.Guid == itemBarcodeDetails.AboutGuid)
+ // .First();
+
+ // var cgddDetails = Db.Queryable<MesRohInData>()
+ // .Where(it => it.EbelnK3id == inventoryDetails.LineK3id)
+ // .First();
+
+ // if (inventoryDetails == null)
+ // throw new Exception("姝ゆ潯鐮佹壘涓嶅埌瀵瑰簲鏀惰揣鍗曟槑缁嗭紒");
+
+ // //鑾峰彇鍒拌揣妫�楠屾槑缁�
+ // var sqlParams = new List<SugarParameter> { new("@dhmxGuid", itemBarcodeDetails.AboutGuid) };
+ // var sql1 = @"SELECT *FROM v_dhmx WHERE dhmxGuid = @dhmxGuid ";
+ // var dhjymx = Db.Ado.SqlQuery<vDhmx>(sql1, sqlParams).First();
+ // //鍒ゅ畾妫�楠岃兘鍚﹀叆搴�
+ // if (dhjymx.CanStore != 1)
+ // {
+ // throw new Exception($"璇ユ潯鐮佸搴旂殑鏀舵枡鍗曟楠岀粨鏋�:銆恵dhjymx.InspectionResult}銆�,鍒ゅ畾缁撴灉锛氥�恵dhjymx.JudgmentResult}銆戯紝澶勭悊鎰忚锛氥�恵dhjymx.HandlingSuggestion}銆�,鏃犳硶鍏ュ簱");
+ // }
+
+ // var depotCode = Db.Queryable<MesDepotSections>()
+ // .Where(it => it.DepotSectionCode == sectionCode)
+ // .Select(it => it.DepotGuid)
+ // .First();
+
+ // var depotCode2 = Db.Queryable<MesInvItemArn>()
+ // .Where(it => it.BillNo == itemBarcodeDetails.BillNo)
+ // .Select(it => it.DepotsId)
+ // .First();
+
+ // MesDepots mesDepost = null;
+
+ // var checkGuid = UtilityHelper.CheckGuid(depotCode);
+ // if (checkGuid && depotCode != null)
+ // {
+ // mesDepost = Db.Queryable<MesDepots>()
+ // .Where(s => s.DepotId.ToString() == depotCode).First();
+
+ // // if (depotCode != mesDepost.Guid)
+ // // throw new Exception("鎵弿搴撲綅涓庨噰璐叆搴撳簱浣嶄笉涓�鑷达紒");
+ // }
+ // else
+ // {
+ // throw new Exception("搴撲綅缂栫爜 " + sectionCode + " 涓嶅瓨鍦紝璇风‘璁わ紒");
+ // }
+
+
+ // //num = Db.Queryable<MesInvItemInCDetails>()
+ // // .Where(it => it.ItemBarcode == itemBarcode)
+ // // .Count();
+
+ // //if (num > 0)
+ // // throw new Exception("姝ゆ潯鐮佸凡鎵爜鍏ュ簱瀹屾垚锛岃鏍稿锛�");
+
+ // //num = Db.Queryable<MesInvItemStocks>()
+ // // .Where(it => it.ItemBarcode == itemBarcode)
+ // // .Count();
+
+ // //if (num > 0)
+ // // throw new Exception("姝ゆ潯鐮佸凡鎵爜鍏ュ簱锛岃鏍稿锛�");
+
+ // var wmsManager = new WmsBaseMangeer();
+ // // 鏂板鍏ュ簱鏍¢獙锛堣皟鐢ㄥ瓨鍌ㄨ繃绋嬶級
+ // var checkResult = wmsManager.pdaInvJY(
+ // db: Db,
+ // edtUserNo: entity.userName,
+ // barcode: entity.barcode,
+ // sectionCode: sectionCode,
+ // stockId: mesDepost.DepotId.ToString(),
+ // stockOrgId: mesDepost.FSubsidiary,
+ // billNo: "", // 鏍规嵁瀹為檯鍗曟嵁鍙蜂紶鍊�
+ // transactionNo: "101" // 浜嬪姟绫诲瀷涓庡瓨鍌ㄨ繃绋嬪尮閰�
+ // );
+
+ // if (Convert.ToInt32(checkResult.result) < 1)
+ // throw new Exception($"鍏ュ簱鏍¢獙澶辫触锛歿checkResult.strMsg}");
+
+
+
+ // //num = Db.Queryable<MesInvItemArn>()
+ // // .Where(a => a.BillNo == itemBarcodeDetails.BillNo)
+ // // .InnerJoin<MesInvItemArnDetail>((a, b) =>
+ // // b.ParentGuid == a.Guid &&
+ // // b.ItemId == itemBarcodeDetails.ItemId && b.Ischeck == 1)
+ // // .Count();
+
+ // //num2 = Db.Queryable<MesInvItemArn>()
+ // // .Where(a => a.BillNo == itemBarcodeDetails.BillNo)
+ // // .InnerJoin<MesInvItemArnDetail>((a, b) => b.ParentGuid == a.Guid
+ // // && b.ItemId == itemBarcodeDetails.ItemId
+ // // && (b.CheckRes == "鍚堟牸" || b.CheckStates == "鐗归噰鐩存帴浣跨敤"))
+ // // .Count();
+
+ // //switch (num)
+ // //{
+ // // case 0 when num2 == 0:
+ // // case > 0 when num2 == 0:
+ // // freeze = 1;
+ // // break;
+ // // case 0 when num2 > 0:
+ // // throw new Exception("鍏ュ簱澶辫触,鍒拌揣鍗曟嵁鏈夐棶棰橈紒");
+ // //}
+
+
+ // // 鍒ゆ柇璐т富绫诲瀷
+ // var owner_type = wmsManager.GetOwnerType(cgddDetails.DemandOrg);
+ // // if (Db.Queryable<SysOrganization>().Any(x => x.Fid == cgddDetails.DemandOrg))
+ // // {
+ // // owner_type = "BD_OwnerOrg";
+ // // }
+ // // else
+ // // {
+ // // // 绗簩灞傚垽鏂細妫�鏌� MES_CUSTOMER
+ // // if (Db.Queryable<MesCustomer>().Any(x => x.Id == Convert.ToInt32(cgddDetails.DemandOrg)))
+ // // {
+ // // owner_type = "BD_Customer";
+ // // }
+ // // else
+ // // {
+ // // // 绗笁灞傚垽鏂細妫�鏌� MES_SUPPLIER
+ // // if (Db.Queryable<MesSupplier>().Any(x => x.Id == Convert.ToInt32(cgddDetails.DemandOrg)))
+ // // {
+ // // owner_type = "BD_Supplier";
+ // // }
+ // // else
+ // // {
+
+ // // // 绗洓灞傚垽鏂細鍐嶆妫�鏌� SYS_ORGANIZATION
+ // // if (Db.Queryable<SysOrganization>().Any(x => x.Fid == cgddDetails.ReceivingOrg))
+ // // {
+ // // owner_type = "BD_OwnerOrg";
+ // // }
+ // // else
+ // // {
+ // // throw new Exception("鍏ュ簱澶辫触,鍒拌揣鍗曟嵁瀵瑰簲鐨勯渶姹傜粍缁囨湁闂锛�");
+ // // }
+ // // }
+ // // }
+ // //}
+
+ // var result = new ItemInBaseModel();
+
+ // UseTransaction(db =>
+ // {
+ // var existingRecord = db.Queryable<MesInvItemIns>()
+ // .Where(it => it.InsDate.Value.ToString("yyyy-MM-dd") == DateTime.Now.ToString("yyyy-MM-dd")
+ // && it.TaskNo == itemBarcodeDetails.BillNo
+ // && it.Status == 0
+ // && it.TransctionNo == transactionNo
+ // && it.CreateBy == entity.userName
+ // && it.BillTypeId == billTypeId
+ // && it.DepotsId == mesDepost.DepotId)
+ // .Select(it => new
+ // {
+ // it.Guid,
+ // it.BillNo
+ // })
+ // .First();
+
+ // var cId = Guid.Empty;
+ // string cBillNo = null;
+
+ // if (existingRecord != null)
+ // {
+ // // If record exists, assign values
+ // cId = existingRecord.Guid;
+ // cBillNo = existingRecord.BillNo;
+ // }
+ // else
+ // {
+ // cId = Guid.NewGuid();
+ // cBillNo = BillNo.GetBillNo("CGRK(閲囪喘鍏ュ簱)");
+
+ // var suppNo = db.Queryable<MesSupplier>()
+ // .Where(s => s.Id.ToString() == inventory.SuppId).First();
+
+ // db.Insertable(new MesInvItemIns
+ // {
+ // Guid = cId,
+ // BillNo = cBillNo,
+ // BillTypeId = billTypeId,
+ // InsDate = DateTime.Now,
+ // DepotsId = mesDepost.DepotId,
+ // DepotsCode = mesDepost.DepotCode,
+ // TransctionNo = transactionNo,
+ // SuppId = suppNo.Id.ToString(),
+ // SuppNo = suppNo.SuppNo,
+ // CreateBy = user,
+ // CreateDate = DateTime.Now,
+ // LastupdateBy = user,
+ // LastupdateDate = DateTime.Now,
+ // UrgentFlag = itemBarcodeDetails.UrgentFlag.Value
+ // ? "1"
+ // : "0",
+ // CbillNo = itemBarcodeDetails.BillNo,
+ // Fstatus = 0,
+ // Status = 0,
+ // ReceiveOrgId = inventory.ReceiveOrgId,
+ // InType = "閲囪喘鍏ュ簱",
+ // TaskNo = itemBarcodeDetails.BillNo
+ // //WorkNo = itemBarcodeDetails.WorkNo
+ // }).IgnoreColumns(true).ExecuteCommand();
+ // }
+
+ // cSyQty = itemBarcodeDetails.Quantity.Value;
+
+ // entity.id = cId.ToString();
+ // entity.PageIndex = 1;
+ // entity.Limit = 1;
+
+ // itemBarcodeDetails.Hbdy ??= 0;
+ // if (itemBarcodeDetails.Hbdy == 1)
+ // {
+ // var details = db.Queryable<MesInvItemArnDetail>()
+ // .Where(d =>
+ // d.CbillNo == itemBarcodeDetails.BillNo &&
+ // d.Quantity != d.OkRkqty &&
+ // d.ItemId == itemBarcodeDetails.ItemId)
+ // .ToList();
+
+
+ // foreach (var detail in details)
+ // {
+ // if (cSyQty == 0) break;
+
+ // var remainingQty = detail.Quantity - (detail.OkRkqty ?? 0);
+ // if (remainingQty <= cSyQty)
+ // {
+ // // Update detail
+ // db.Updateable<MesInvItemArnDetail>()
+ // .SetColumns(d => new MesInvItemArnDetail
+ // {
+ // OkRkqty = (int)d.Quantity,
+ // IsdepsIn = true
+ // })
+ // .Where(d => d.Guid == detail.Guid)
+ // .IgnoreColumns(true)
+ // .ExecuteCommand();
+
+ // // Check if already inserted
+ // var count = db.Queryable<MesInvItemInCItems>()
+ // .Where(it =>
+ // it.ItemInId == cId &&
+ // it.ItemId == detail.ItemId &&
+ // it.DepotId == depotCode2 &&
+ // it.EbelnK3id == detail.EbelnK3id &&
+ // it.LineK3id == detail.LineK3id)
+ // .Count();
+
+ // cSyQty -= remainingQty.Value;
+
+ // if (count == 0)
+ // // Insert new item into MES_INV_ITEM_IN_C_ITEMS
+ // db.Insertable(new MesInvItemInCItems
+ // {
+ // ItemInId = cId,
+ // Quantity = remainingQty,
+ // CreateBy = user,
+ // CreateDate = DateTime.Now,
+ // ItemId = detail.ItemId,
+ // DepotCode = mesDepost.DepotCode,
+ // ItemSname = itemBarcodeDetails.ItemSname,
+ // Unit = itemBarcodeDetails.Unit,
+ // 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,
+ // DepotId = depotCode2,
+ // itemDabid = itemBarcodeDetails.AboutGuid.ToString()
+ // }).IgnoreColumns(true).ExecuteCommand();
+ // else
+ // db.Updateable<MesInvItemInCItems>()
+ // .SetColumns(it =>
+ // it.Quantity == it.Quantity + remainingQty)
+ // .Where(it =>
+ // it.ItemInId == cId &&
+ // it.ItemId == detail.ItemId &&
+ // it.DepotId == depotCode2 &&
+ // it.EbelnK3id == detail.EbelnK3id &&
+ // it.LineK3id == detail.LineK3id)
+ // .IgnoreColumns(true)
+ // .ExecuteCommand();
+
+ // // Insert new detail into MES_INV_ITEM_IN_C_DETAILS
+ // db.Insertable(new MesInvItemInCDetails
+ // {
+ // ItemInId = cId,
+ // BillNo = cBillNo,
+ // ItemBarcode = itemBarcode,
+ // Quantity = remainingQty,
+ // BarcodeFlag = true,
+ // EpFlag = true,
+ // WorkType = 1,
+ // ItemNo = detail.ItemNo,
+ // SuppId = itemBarcodeDetails.SuppId,
+ // SuppNo = itemBarcodeDetails.SuppNo,
+ // DepotCode = mesDepost.DepotCode,
+ // DepotSectionCode = sectionCode,
+ // ItemSname = itemBarcodeDetails.ItemSname,
+ // Unit = itemBarcodeDetails.Unit,
+ // CreateBy = user,
+ // CreateDate = DateTime.Now,
+ // LastupdateBy = user,
+ // LastupdateDate = DateTime.Now,
+ // Remark = itemBarcodeDetails.Memo,
+ // Ebeln = detail.WorkNo,
+ // WorkNo = detail.WorkNo,
+ // WorkLine = detail.WorkLine,
+ // CbillNo = itemBarcodeDetails.BillNo,
+ // UrgentFlag = detail.UrgentFlag,
+ // BoardStyle = detail.BoardStyle,
+ // TaskNo = detail.WorkNo,
+ // EbelnK3id = detail.EbelnK3id,
+ // LineK3id = detail.LineK3id,
+ // ItemId = detail.ItemId,
+ // ReceiveOrgId = inventory.ReceiveOrgId,
+ // LotNo = cgddDetails.BatchNumber
+ // }).IgnoreColumns(true).ExecuteCommand();
+ // }
+ // else
+ // {
+ // // Partially fulfill remaining quantity
+ // db.Updateable<MesInvItemArnDetail>()
+ // .SetColumns(d => new MesInvItemArnDetail
+ // {
+ // OkRkqty = (int)((d.OkRkqty ?? 0) + cSyQty)
+ // })
+ // .Where(d => d.Guid == detail.Guid)
+ // .IgnoreColumns(true)
+ // .ExecuteCommand();
+
+ // var count = db.Queryable<MesInvItemInCItems>()
+ // .Where(it =>
+ // it.ItemInId == cId &&
+ // it.ItemId == detail.ItemId &&
+ // it.DepotId == depotCode2 &&
+ // it.EbelnK3id == detail.EbelnK3id &&
+ // it.LineK3id == detail.LineK3id)
+ // .Count();
+
+ // if (count == 0)
+ // db.Insertable(new MesInvItemInCItems
+ // {
+ // ItemInId = cId,
+ // Quantity = cSyQty,
+ // CreateBy = user,
+ // CreateDate = DateTime.Now,
+ // ItemNo = detail.ItemNo,
+ // DepotCode = mesDepost.DepotCode,
+ // ItemSname = itemBarcodeDetails.ItemSname,
+ // Unit = itemBarcodeDetails.Unit,
+ // Ebeln = detail.WorkNo,
+ // BillNo = cBillNo,
+ // WorkNo = detail.WorkNo,
+ // 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,
+ // DepotId = depotCode2
+ // }).IgnoreColumns(true).ExecuteCommand();
+ // else
+ // db.Updateable<MesInvItemInCItems>()
+ // .SetColumns(it =>
+ // it.Quantity == it.Quantity + cSyQty)
+ // .Where(it =>
+ // it.ItemInId == cId &&
+ // it.ItemId == detail.ItemId &&
+ // it.DepotId == depotCode2 &&
+ // it.EbelnK3id == detail.EbelnK3id &&
+ // it.LineK3id == detail.LineK3id)
+ // .IgnoreColumns(true)
+ // .ExecuteCommand();
+
+ // db.Insertable(new MesInvItemInCDetails
+ // {
+ // ItemInId = cId,
+ // BillNo = cBillNo,
+ // ItemBarcode = itemBarcode,
+ // Quantity = cSyQty,
+ // BarcodeFlag = true,
+ // EpFlag = true,
+ // WorkType = 1,
+ // ItemNo = detail.ItemNo,
+ // SuppId = itemBarcodeDetails.SuppId,
+ // SuppNo = itemBarcodeDetails.SuppNo,
+ // DepotCode = mesDepost.DepotCode,
+ // DepotSectionCode = sectionCode,
+ // ItemSname = itemBarcodeDetails.ItemSname,
+ // Unit = itemBarcodeDetails.Unit,
+ // CreateBy = user,
+ // CreateDate = DateTime.Now,
+ // LastupdateBy = user,
+ // LastupdateDate = DateTime.Now,
+ // Remark = itemBarcodeDetails.Memo,
+ // Ebeln = detail.WorkNo,
+ // EbelnLineNo = detail.EbelnLine,
+ // WorkNo = detail.WorkNo,
+ // WorkLine = detail.WorkLine,
+ // CbillNo = itemBarcodeDetails.BillNo,
+ // UrgentFlag = detail.UrgentFlag,
+ // BoardStyle = detail.BoardStyle,
+ // TaskNo = detail.WorkNo,
+ // EbelnK3id = detail.EbelnK3id,
+ // LineK3id = detail.LineK3id,
+ // ItemId = detail.ItemId,
+ // ReceiveOrgId = inventory.ReceiveOrgId,
+ // LotNo = cgddDetails.BatchNumber
+ // }).IgnoreColumns(true).ExecuteCommand();
+
+ // cSyQty = 0; // Remaining quantity fulfilled
+ // }
+ // }
+
+ // db.Insertable(new MesInvBusiness2
+ // {
+ // Status = 1,
+ // BillTypeId = billTypeId,
+ // TransactionCode = transactionNo,
+ // BusinessType = 1,
+ // ItemBarcode = itemBarcode,
+ // ItemNo = itemBarcodeDetails.ItemNo,
+ // LotNo = cgddDetails.BatchNumber,
+ // EpFlag = true,
+ // Quantity = itemBarcodeDetails.Quantity,
+ // ToInvDepotsCode = mesDepost.DepotCode,
+ // ToInvDepotSectionsCode = sectionCode,
+ // Description = "閲囪喘鍏ュ簱",
+ // CreateBy = user,
+ // CreateDate = DateTime.Now,
+ // LastupdateBy = user,
+ // LastupdateDate = DateTime.Now,
+ // TaskNo = itemBarcodeDetails.BillNo,
+ // BillNo = cBillNo,
+ // WorkNo = itemBarcodeDetails.WorkNo,
+ // WorkLine = itemBarcodeDetails.WorkLine,
+ // SuppId = itemBarcodeDetails.SuppId,
+ // SuppNo = itemBarcodeDetails.SuppNo,
+ // EbelnK3id = itemBarcodeDetails.EbelnK3id,
+ // LineK3id = itemBarcodeDetails.LineK3id,
+ // ItemId = itemBarcodeDetails.ItemId
+ // }).IgnoreColumns(true).ExecuteCommand();
+
+ // // Insert into mes_inv_item_stocks
+ // }
+ // else
+ // {
+ // var detailone = db.Queryable<MesInvItemArnDetail>()
+ // .Where(d =>
+ // d.Guid == itemBarcodeDetails.AboutGuid)
+ // .First();
+
+ // // 妫�鏌ユ槸鍚﹀瓨鍦ㄤ簬 MES_INV_ITEM_IN_C_ITEMS 琛�
+ // var existingCount = db.Queryable<MesInvItemInCItems>()
+ // .Where(it =>
+ // it.ItemInId == cId &&
+ // it.ItemId == detailone.ItemId &&
+ // it.DepotId == depotCode2 &&
+ // it.itemDabid == itemBarcodeDetails.AboutGuid.ToString())
+ // .Count();
+
+ // if (existingCount == 0)
+ // // 涓嶅瓨鍦ㄦ椂鎻掑叆鏂拌褰�
+ // db.Insertable(new MesInvItemInCItems
+ // {
+ // ItemInId = cId,
+ // Quantity = itemBarcodeDetails.Quantity,
+ // CreateBy = user,
+ // CreateDate = DateTime.Now,
+ // ItemNo = itemBarcodeDetails.ItemNo,
+ // DepotCode = mesDepost.DepotCode,
+ // ItemSname = itemBarcodeDetails.ItemSname,
+ // Unit = itemBarcodeDetails.Unit,
+ // Ebeln = itemBarcodeDetails.WorkNo,
+ // BillNo = cBillNo,
+ // WorkNo = itemBarcodeDetails.WorkNo,
+ // 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,
+ // DepotId = depotCode2,
+ // itemDabid = itemBarcodeDetails.AboutGuid.ToString()
+ // }).IgnoreColumns(true).ExecuteCommand();
+ // else
+ // // 瀛樺湪鏃舵洿鏂版暟閲�
+ // db.Updateable<MesInvItemInCItems>()
+ // .SetColumns(it => new MesInvItemInCItems
+ // {
+ // Quantity = SqlFunc.IsNull(it.Quantity, 0) + itemBarcodeDetails.Quantity // 纭繚 Quantity 涓嶄负 null
+ // })
+ // .Where(it =>
+ // it.ItemInId == cId &&
+ // it.ItemId == detailone.ItemId &&
+ // it.DepotId == depotCode2 &&
+ // it.itemDabid == itemBarcodeDetails.AboutGuid.ToString())
+ // //.IgnoreColumns(true) // 淇濈暀 IgnoreColumns
+ // .ExecuteCommand();
+
+ // // 鎻掑叆 mes_inv_item_in_c_details 琛�
+ // db.Insertable(new MesInvItemInCDetails
+ // {
+ // ItemInId = cId,
+ // BillNo = cBillNo,
+ // ItemBarcode = itemBarcode,
+ // Quantity = itemBarcodeDetails.Quantity,
+ // BarcodeFlag = true,
+ // EpFlag = true,
+ // WorkType = 1,
+ // ItemNo = itemBarcodeDetails.ItemNo,
+ // LotNo = cgddDetails.BatchNumber,
+ // SuppId = itemBarcodeDetails.SuppId,
+ // SuppNo = itemBarcodeDetails.SuppNo,
+ // DepotCode = mesDepost.DepotCode,
+ // DepotSectionCode = sectionCode,
+ // ItemSname = itemBarcodeDetails.ItemSname,
+ // Unit = itemBarcodeDetails.Unit,
+ // CreateBy = user,
+ // CreateDate = DateTime.Now,
+ // LastupdateBy = user,
+ // LastupdateDate = DateTime.Now,
+ // Remark = itemBarcodeDetails.Memo,
+ // Ebeln = itemBarcodeDetails.Mblnr,
+ // EbelnLineNo = itemBarcodeDetails.Zeile,
+ // WorkNo = itemBarcodeDetails.WorkNo,
+ // WorkLine = itemBarcodeDetails.WorkLine,
+ // CbillNo = itemBarcodeDetails.BillNo,
+ // UrgentFlag = itemBarcodeDetails.UrgentFlag,
+ // BoardStyle = itemBarcodeDetails.BoardStyle,
+ // TaskNo = itemBarcodeDetails.TaskNo,
+ // EbelnK3id = itemBarcodeDetails.EbelnK3id,
+ // LineK3id = itemBarcodeDetails.LineK3id,
+ // ItemId = itemBarcodeDetails.ItemId,
+ // Ischeck = true,
+ // CheckDate = inventoryDetails.CheckDate,
+ // CheckRes = inventoryDetails.CheckRes,
+ // CheckStates = inventoryDetails.CheckStates,
+ // ReceiveOrgId = inventory.ReceiveOrgId,
+ // DepotId = Convert.ToInt64(depotCode2)
+ // }).IgnoreColumns(true).ExecuteCommand();
+
+ // // 鎻掑叆 mes_inv_business2 琛�
+ // db.Insertable(new MesInvBusiness2
+ // {
+ // Status = 1,
+ // BillTypeId = billTypeId,
+ // TransactionCode = transactionNo,
+ // BusinessType = 1,
+ // ItemBarcode = itemBarcode,
+ // ItemNo = itemBarcodeDetails.ItemNo,
+ // LotNo = itemBarcodeDetails.LotNo,
+ // EpFlag = true,
+ // Quantity = itemBarcodeDetails.Quantity,
+ // FromInvDepotsCode = null,
+ // FromInvDepotSectionsCode = null,
+ // ToInvDepotsCode = mesDepost.DepotCode,
+ // ToInvDepotSectionsCode = sectionCode,
+ // Description = "閲囪喘鍏ュ簱",
+ // CreateBy = user,
+ // CreateDate = DateTime.Now,
+ // LastupdateBy = user,
+ // LastupdateDate = DateTime.Now,
+ // TaskNo = itemBarcodeDetails.TaskNo,
+ // BillNo = cBillNo,
+ // WorkNo = itemBarcodeDetails.WorkNo,
+ // WorkLine = itemBarcodeDetails.WorkLine,
+ // SuppId = itemBarcodeDetails.SuppId,
+ // SuppNo = itemBarcodeDetails.SuppNo,
+ // EbelnK3id = itemBarcodeDetails.EbelnK3id,
+ // LineK3id = itemBarcodeDetails.LineK3id,
+ // ItemId = itemBarcodeDetails.ItemId
+ // }).IgnoreColumns(true).ExecuteCommand();
+
+ // // 鎻掑叆 mes_inv_item_stocks 琛�
+ // }
+
+
+
+ // db.Insertable(new MesInvItemStocks
+ // {
+ // TaskNo = itemBarcodeDetails.TaskNo,
+ // ItemBarcode = itemBarcode,
+ // ItemNo = cgddDetails.BatchNumber,
+ // LotNo = itemBarcodeDetails.LotNo,
+ // Quantity = itemBarcodeDetails.Quantity,
+ // DepotsCode = mesDepost.DepotCode,
+ // DepotSectionsCode = sectionCode,
+ // CheckDate = inventoryDetails.CheckDate,
+ // IndepDate = DateTime.Now,
+ // IqcStatus = inventoryDetails.CheckStates,
+ // 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,
+ // DepotId = Convert.ToInt32(depotCode2),
+ // OwnerId = cgddDetails.DemandOrg,
+ // OwnerType = owner_type,
+ // StockOrgId = mesDepost.FSubsidiary,
+ // IndepUserCode = user
+ // }).IgnoreColumns(true).ExecuteCommand();
+
+ // itemBarcodeDetails.Hbdy ??= 0;
+
+ // if (itemBarcodeDetails.Hbdy != 1)
+ // {
+ // //鏇存柊鏀舵枡鍗曟槑缁�
+ // db.Updateable<MesInvItemArnDetail>()
+ // .SetColumns(d => new MesInvItemArnDetail
+ // {
+ // OkRkqty = (int)((d.OkRkqty ?? 0) + cSyQty)
+ // })
+ // .Where(d => d.Guid == itemBarcodeDetails.AboutGuid)
+ // .ExecuteCommand();
+
+ // var first = db
+ // .Queryable<MesInvItemArnDetail>()
+ // .Where(b =>
+ // b.Guid == itemBarcodeDetails.AboutGuid)
+ // .Select(b => new
+ // {
+ // TotalQuantity =
+ // SqlFunc.AggregateSum(b.Quantity),
+ // TotalOkRkQty = SqlFunc.AggregateSum(b.OkRkqty)
+ // })
+ // .First();
+
+ // var TotalQuantity = first.TotalQuantity ?? 0;
+ // var TotalOkRkQty = first.TotalOkRkQty ?? 0;
+
+ // if (TotalQuantity == TotalOkRkQty)
+ // db.Updateable<MesInvItemArnDetail>()
+ // .SetColumns(s => s.IsdepsIn == true)
+ // .Where(s => s.Guid == itemBarcodeDetails.AboutGuid)
+ // .ExecuteCommand();
+
+
+ // var totalSummary = db.Queryable<MesInvItemArnDetail>()
+ // .InnerJoin<MesInvItemArn>((b, a) => a.Guid == b.ParentGuid)
+ // .Where((b, a) =>
+ // a.BillNo == inventory.BillNo && b.ReturnFlag == 0)
+ // .Select((b, a) => new
+ // {
+ // TotalQuantity = SqlFunc.AggregateSum(b.Quantity),
+ // TotalOkRkQty = SqlFunc.AggregateSum(b.OkRkqty)
+ // })
+ // .First();
+
+ // 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.ItemId == itemBarcodeDetails.ItemId &&
+ // it.WorkNo == itemBarcodeDetails.WorkNo &&
+ // it.ItemInId == cId)
+ // .Sum(it => it.Quantity);
+
+ // var detailSummary = db.Queryable<MesInvItemArnDetail>()
+ // .Where(it => it.Guid == inventoryDetails.Guid)
+ // .Select(it => new
+ // {
+ // TotalComeQty = SqlFunc.AggregateSum(it.Quantity),
+ // TotalInvQty = SqlFunc.AggregateSum(it.OkRkqty)
+ // })
+ // .First();
+
+ // var comeQty = detailSummary.TotalComeQty ?? 0;
+ // var invQty = detailSummary.TotalInvQty ?? 0;
+ // var diffQty = comeQty - invQty;
+
+ // if (detailSummary == null)
+ // throw new Exception("姝ゆ潯鐮佹壘涓嶅埌瀵瑰簲鏀惰揣鍗曟槑缁嗭紒");
+
+ // var mesItems = db.Queryable<MesItems>()
+ // .Where(s => s.Id == itemBarcodeDetails.ItemId).First();
+
+ // //result.Message =
+ // // $"鏉$爜鏁伴噺 {itemBarcodeDetails.Quantity},閲囪喘璁㈠崟 {itemBarcodeDetails.WorkNo} 椤规 {itemBarcodeDetails.WorkLine} 鐗╂枡 {mesItems.ItemNo} 鏈鍏ュ簱鎬绘暟锛歿totalCDetailsQuantity} 鎬诲埌 {comeQty} 宸插叆 {invQty} 娆� {diffQty}";
+ // result.Message = $"鐗╂枡{mesItems.ItemNo}鍏ュ簱鎴愬姛鏁伴噺{itemBarcodeDetails.Quantity.ToString()}";
+
+ // result.itemDetail = mesItems;
+
+ // result.ItemInDetails = db.Queryable<MesInvItemInCItems, MesItems>(
+ // (a, b) => new JoinQueryInfos(
+ // JoinType.Left,
+ // a.ItemId == b.ItemId)
+ // )
+ // .Where(a => a.ItemInId == cId && a.ItemId == itemBarcodeDetails.ItemId)
+ // .Select<dynamic>((a, b) => new
+ // {
+ // ItemNo = b.ItemNo,
+ // ItemName = b.ItemName,
+ // ItemModel = b.ItemModel,
+ // FQty = a.Quantity, // 鐢宠鏁伴噺
+ // FMaterialId = b.ItemId,
+ // Id = b.Guid.ToString()
+ // })
+ // .ToList();
+
+ // result.ItemBarCDetails = db.Queryable<MesInvItemInCDetails, MesItems>(
+ // (a, b) => new JoinQueryInfos(
+ // JoinType.Left,
+ // a.ItemId == b.ItemId)
+ // )
+ // .Where(a => a.ItemInId == cId && a.ItemId == itemBarcodeDetails.ItemId)
+ // .Select<dynamic>((a, b) => new
+ // {
+ // ItemNo = b.ItemNo,
+ // ItemName = b.ItemName,
+ // ItemModel = b.ItemModel,
+ // FQty = a.Quantity, // 鐢宠鏁伴噺
+ // FMaterialId = b.ItemId,
+ // Id = a.Guid.ToString(),
+ // kw = a.DepotSectionCode,
+ // barcode = a.ItemBarcode
+ // })
+ // .ToList();
+
+
+ // //result.ItemNo = mesItems.ItemNo;
+ // result.SumQuantity = Convert.ToDecimal(invQty);
+
+ // return 1;
+ // }
+ // else
+ // {
+ // // Step 1: Check if bill needs to be closed (status update)
+ // var totalSummary = db.Queryable<MesInvItemArnDetail>()
+ // .LeftJoin<MesInvItemArn>((b, a) => a.Guid == b.ParentGuid)
+ // .Where((b, a) =>
+ // a.BillNo == inventory.BillNo && b.ReturnFlag == 0)
+ // .Select((b, a) => new
+ // {
+ // TotalQuantity = SqlFunc.AggregateSum(b.Quantity),
+ // TotalOkRkQty = SqlFunc.AggregateSum(b.OkRkqty)
+ // })
+ // .First();
+
+ // 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>()
+ // .Where(it => it.Guid == itemBarcodeDetails.AboutGuid)
+ // .Sum(it => it.Quantity);
+
+ // // Step 3: Calculate comeQty and invQty from `mes_inv_item_arn_detail`
+ // var detailSummary = db.Queryable<MesInvItemArnDetail>()
+ // .Where(it => it.Guid == itemBarcodeDetails.AboutGuid)
+ // .Select(it => new
+ // {
+ // TotalComeQty = SqlFunc.AggregateSum(it.Quantity),
+ // TotalInvQty = SqlFunc.AggregateSum(it.OkRkqty)
+ // })
+ // .First();
+
+ // if (detailSummary == null)
+ // throw new Exception("姝ゆ潯鐮佹壘涓嶅埌瀵瑰簲鏀惰揣鍗曟槑缁嗭紒");
+
+ // var comeQty = detailSummary.TotalComeQty ?? 0;
+ // var invQty = detailSummary.TotalInvQty ?? 0;
+ // var diffQty = comeQty - invQty;
+
+ // var mesItems = db.Queryable<MesItems>()
+ // .Where(s => s.Id == itemBarcodeDetails.ItemId).First();
+
+ // // Step 5: Combine final result
+ // result.Message =
+ // $" 鏉$爜鏁伴噺:{itemBarcodeDetails.Quantity},鐗╂枡 {mesItems.ItemNo} 鏈鍏ュ簱鎬绘暟锛歿totalCDetailsQuantity} 鎬诲埌 {comeQty} 宸插叆 {invQty} 娆� {diffQty}";
+
+
+ // //result.ItemNo = mesItems.ItemNo;
+ // result.SumQuantity = Convert.ToDecimal(totalCDetailsQuantity);
+ // }
+
+ // var mesInvItemInCDetails =
+ // base.GetSingle(it => it.ItemBarcode == entity.barcode);
+
+ // if (mesInvItemInCDetails == null)
+ // throw new Exception("鐗╂枡鍏ュ簱鏉$爜鏄庣粏涓嶅瓨鍦�"); // 鎶涘嚭寮傚父浠ヤ緵鍓嶅彴澶勭悊
+
+ // // 鍒涘缓 鎻掑叆鏃ュ織
+ // var logService = new LogService();
+ // var LogMsg = "銆怭DA銆戦噰璐叆搴撱�傛潯鐮併��" + entity.barcode + "銆� 鍏ュ簱鍗曞彿銆�" + cBillNo + "銆�";
+ // logService.CreateLog(db, entity.userName, inventory.Guid.ToString(), "MES_INV_ITEM_ARN", LogMsg, inventory.BillNo);
+
+ // return 1;
+ // });
+
+ // var purchaseInventory = getPurchaseInventory(entity);
+
+
+ // //result.ItemInDetails = purchaseInventory.ItemInDetails;
+ // //result.InvItemInCDetails = purchaseInventory.InvItemInCDetails;
+
+ // return result;
+ //}
public ItemInBaseModel getPurchaseInventory(WarehouseQuery query)
{
--
Gitblit v1.9.3