From 250ae3deeabd8e0818f4adf57f747b71fefd5ef3 Mon Sep 17 00:00:00 2001
From: 啊鑫 <t2856754968@163.com>
Date: 星期一, 30 十二月 2024 16:54:56 +0800
Subject: [PATCH] 11
---
entity/TransferOut.cs | 199 ++++++++
service/Warehouse/TransferOutManager.cs | 381 +++++++++++++++
entity/MesInvItemMovesCDetails.cs | 250 ++++++++++
entity/MesInvItemMoves.cs | 172 +++++++
entity/TransferOutEtail.cs | 67 ++
service/Warehouse/MesItemQtManager.cs | 108 ---
Controllers/Warehouse/TransferOutController.cs | 169 +++++++
Controllers/Warehouse/MesItemQtController.cs | 65 +-
8 files changed, 1,285 insertions(+), 126 deletions(-)
diff --git a/Controllers/Warehouse/MesItemQtController.cs b/Controllers/Warehouse/MesItemQtController.cs
index a3ab253..7daac28 100644
--- a/Controllers/Warehouse/MesItemQtController.cs
+++ b/Controllers/Warehouse/MesItemQtController.cs
@@ -7,7 +7,7 @@
namespace NewPdaSqlServer.Controllers.Warehouse;
/// <summary>
-/// 鍏朵粬鍑哄簱鐩稿叧鎺ュ彛
+/// 鍏朵粬鍑哄簱鐩稿叧鎺ュ彛
/// </summary>
[Route("api/[controller]")]
[ApiController]
@@ -18,7 +18,7 @@
#region 鍩虹CRUD
/// <summary>
- /// 鑾峰彇鎵�鏈�
+ /// 鑾峰彇鎵�鏈�
/// </summary>
/// <returns>鍏朵粬鍑哄簱鍗曞垪琛�</returns>
[HttpPost("GetList")]
@@ -46,11 +46,11 @@
#region 鍏朵粬鍑哄簱涓氬姟
/// <summary>
- /// 鑾峰彇鏈畬鎴愮殑閫�鏂欏崟鍙峰垪琛�
+ /// 鑾峰彇鏈畬鎴愮殑閫�鏂欏崟鍙峰垪琛�
/// </summary>
/// <returns>閫�鏂欏崟鍙峰垪琛�</returns>
/// <remarks>
- /// 鑾峰彇鐘舵�佷负宸插鏍�(Qt015=true)涓旀湭瀹岀粨(Qt014=false)鐨勯��鏂欏崟鍙峰垪琛�
+ /// 鑾峰彇鐘舵�佷负宸插鏍�(Qt015=true)涓旀湭瀹岀粨(Qt014=false)鐨勯��鏂欏崟鍙峰垪琛�
/// </remarks>
/// <response code="200">鎴愬姛鑾峰彇閫�鏂欏崟鍙峰垪琛�</response>
/// <response code="400">鑾峰彇澶辫触</response>
@@ -75,25 +75,24 @@
}
/// <summary>
- /// 鑾峰彇寰呭鐞嗙殑閫�鏂欏崟鏄庣粏鍒楄〃
+ /// 鑾峰彇寰呭鐞嗙殑閫�鏂欏崟鏄庣粏鍒楄〃
/// </summary>
/// <param name="query">鏌ヨ鍙傛暟</param>
/// <returns>寰呭鐞嗙殑閫�鏂欏崟鏄庣粏鍒楄〃</returns>
/// <remarks>
- /// 璇锋眰绀轰緥:
- ///
+ /// 璇锋眰绀轰緥:
/// POST /api/MesItemQt/GetPendingQtList
/// {
- /// "userName": "admin", // 鐢ㄦ埛鍚�(蹇呭~)
- /// "billNo": "QT20240101001" // 閫�鏂欏崟鍙�(蹇呭~)
+ /// "userName": "admin", // 鐢ㄦ埛鍚�(蹇呭~)
+ /// "billNo": "QT20240101001" // 閫�鏂欏崟鍙�(蹇呭~)
/// }
- ///
- /// 杩斿洖鏈畬鎴愮殑鏄庣粏璁板綍(Qd007-Qd008>0)
+ /// 杩斿洖鏈畬鎴愮殑鏄庣粏璁板綍(Qd007-Qd008>0)
/// </remarks>
/// <response code="200">鎴愬姛鑾峰彇閫�鏂欏崟鏄庣粏</response>
/// <response code="400">鑾峰彇澶辫触锛岃繑鍥炲叿浣撻敊璇俊鎭�</response>
[HttpPost("GetPendingQtDetailList")]
- public ResponseResult GetPendingQtDetailList([FromBody] WarehouseQuery query)
+ public ResponseResult GetPendingQtDetailList(
+ [FromBody] WarehouseQuery query)
{
try
{
@@ -113,24 +112,22 @@
}
/// <summary>
- /// 鎵弿鏉$爜鍑哄簱
+ /// 鎵弿鏉$爜鍑哄簱
/// </summary>
/// <param name="query">鏌ヨ鍙傛暟</param>
/// <returns>鍑哄簱缁撴灉銆佸緟澶勭悊鏄庣粏鍜屾彁绀烘秷鎭�</returns>
/// <remarks>
- /// 璇锋眰绀轰緥:
- ///
+ /// 璇锋眰绀轰緥:
/// POST /api/MesItemQt/OutScanBarcode
/// {
- /// "billNo": "QT20240101001", // 閫�鏂欏崟鍙�(蹇呭~)
- /// "barcode": "BC001", // 鏉$爜鍙�(蹇呭~)
- /// "userName": "admin" // 鐢ㄦ埛鍚�(蹇呭~)
+ /// "billNo": "QT20240101001", // 閫�鏂欏崟鍙�(蹇呭~)
+ /// "barcode": "BC001", // 鏉$爜鍙�(蹇呭~)
+ /// "userName": "admin" // 鐢ㄦ埛鍚�(蹇呭~)
/// }
- ///
- /// 杩斿洖鏁版嵁鍖呭惈:
- /// - form: 澶勭悊缁撴灉琛ㄥ崟
- /// - item: 寰呭鐞嗘槑缁嗗垪琛�
- /// - message: 澶勭悊缁撴灉娑堟伅
+ /// 杩斿洖鏁版嵁鍖呭惈:
+ /// - form: 澶勭悊缁撴灉琛ㄥ崟
+ /// - item: 寰呭鐞嗘槑缁嗗垪琛�
+ /// - message: 澶勭悊缁撴灉娑堟伅
/// </remarks>
/// <response code="200">鎵弿鎴愬姛</response>
/// <response code="400">鎵弿澶辫触锛岃繑鍥炲叿浣撻敊璇俊鎭�</response>
@@ -158,25 +155,23 @@
}
/// <summary>
- /// 鎵撳嵃鏉$爜鍑哄簱
+ /// 鎵撳嵃鏉$爜鍑哄簱
/// </summary>
/// <param name="query">鏌ヨ鍙傛暟</param>
/// <returns>鍑哄簱缁撴灉銆佸緟澶勭悊鏄庣粏鍜屾彁绀烘秷鎭�</returns>
/// <remarks>
- /// 璇锋眰绀轰緥:
- ///
+ /// 璇锋眰绀轰緥:
/// POST /api/MesItemQt/PrintQtckBarcode
/// {
- /// "userName": "admin", // 鐢ㄦ埛鍚�(蹇呭~)
- /// "billNo": "QT20240101001", // 閫�鏂欏崟鍙�(蹇呭~)
- /// "barcode": "BC001", // 鏉$爜鍙�(蹇呭~)
- /// "Fum": 10 // 鍙戞枡鏁伴噺(蹇呭~,蹇呴』澶т簬0)
+ /// "userName": "admin", // 鐢ㄦ埛鍚�(蹇呭~)
+ /// "billNo": "QT20240101001", // 閫�鏂欏崟鍙�(蹇呭~)
+ /// "barcode": "BC001", // 鏉$爜鍙�(蹇呭~)
+ /// "Fum": 10 // 鍙戞枡鏁伴噺(蹇呭~,蹇呴』澶т簬0)
/// }
- ///
- /// 杩斿洖鏁版嵁鍖呭惈:
- /// - form: 澶勭悊缁撴灉琛ㄥ崟
- /// - item: 寰呭鐞嗘槑缁嗗垪琛�
- /// - message: 澶勭悊缁撴灉娑堟伅
+ /// 杩斿洖鏁版嵁鍖呭惈:
+ /// - form: 澶勭悊缁撴灉琛ㄥ崟
+ /// - item: 寰呭鐞嗘槑缁嗗垪琛�
+ /// - message: 澶勭悊缁撴灉娑堟伅
/// </remarks>
/// <response code="200">鎵撳嵃鎴愬姛</response>
/// <response code="400">鎵撳嵃澶辫触锛岃繑鍥炲叿浣撻敊璇俊鎭�</response>
diff --git a/Controllers/Warehouse/TransferOutController.cs b/Controllers/Warehouse/TransferOutController.cs
new file mode 100644
index 0000000..b826b2b
--- /dev/null
+++ b/Controllers/Warehouse/TransferOutController.cs
@@ -0,0 +1,169 @@
+锘縰sing System.Dynamic;
+using Microsoft.AspNetCore.Mvc;
+using NewPdaSqlServer.Dto.service;
+using NewPdaSqlServer.service.Warehouse;
+using NewPdaSqlServer.util;
+
+namespace NewPdaSqlServer.Controllers.Warehouse;
+
+/// <summary>
+/// 璋冩嫧鍑哄簱鐩稿叧鎺ュ彛
+/// </summary>
+[Route("api/[controller]")]
+[ApiController]
+public class TransferOutController : ControllerBase
+{
+ private readonly TransferOutManager _manager = new();
+
+ #region 鍩虹CRUD
+
+ /// <summary>
+ /// 鑾峰彇鎵�鏈夎皟鎷ㄥ嚭搴撳崟
+ /// </summary>
+ /// <returns>璋冩嫧鍑哄簱鍗曞垪琛�</returns>
+ [HttpPost("GetList")]
+ public ResponseResult GetList()
+ {
+ try
+ {
+ dynamic resultInfos = new ExpandoObject();
+ resultInfos.tbBillList = _manager.GetList();
+ return new ResponseResult
+ {
+ status = 0,
+ message = "OK",
+ data = resultInfos
+ };
+ }
+ catch (Exception ex)
+ {
+ return ResponseResult.ResponseError(ex);
+ }
+ }
+
+ #endregion
+
+ #region 璋冩嫧鍑哄簱涓氬姟
+
+ /// <summary>
+ /// 鑾峰彇鏈畬鎴愮殑璋冩嫧鍑哄簱鍗曞彿鍒楄〃
+ /// </summary>
+ /// <returns>鏈畬鎴愮殑璋冩嫧鍑哄簱鍗曞彿鍒楄〃</returns>
+ /// <remarks>
+ /// 鑾峰彇鐢宠鏁伴噺(sq)涓嶇瓑浜庡凡鎵暟閲�(ys)鐨勮皟鎷ㄥ嚭搴撳崟鍙峰垪琛�
+ /// </remarks>
+ /// <response code="200">鎴愬姛鑾峰彇璋冩嫧鍑哄簱鍗曞彿鍒楄〃</response>
+ /// <response code="400">鑾峰彇澶辫触</response>
+ [HttpPost("GetTransferOutNoList")]
+ public ResponseResult GetTransferOutNoList()
+ {
+ try
+ {
+ dynamic resultInfos = new ExpandoObject();
+ resultInfos.tbBillList = _manager.GetTransferOutNoList();
+ return new ResponseResult
+ {
+ status = 0,
+ message = "OK",
+ data = resultInfos
+ };
+ }
+ catch (Exception ex)
+ {
+ return ResponseResult.ResponseError(ex);
+ }
+ }
+
+ /// <summary>
+ /// 鏍规嵁鍗曟嵁鍙疯幏鍙栧緟澶勭悊鐨勮皟鎷ㄥ嚭搴撴槑缁嗗垪琛�
+ /// </summary>
+ /// <param name="query">鏌ヨ鍙傛暟</param>
+ /// <returns>寰呭鐞嗙殑璋冩嫧鍑哄簱鏄庣粏鍒楄〃</returns>
+ /// <remarks>
+ /// 璇锋眰绀轰緥:
+ ///
+ /// POST /api/TransferOut/GetTransferOutDetailListByBillNo
+ /// {
+ /// "billNo": "DB202401010001" // 璋冩嫧鍗曞彿(蹇呭~)
+ /// }
+ ///
+ /// 杩斿洖鏈畬鎴愮殑鏄庣粏璁板綍(ShNum-YsNum>0)锛屽寘鍚細
+ /// - ItemNo: 鐗╂枡缂栧彿
+ /// - ItemModel: 鐗╂枡瑙勬牸
+ /// - ShNum: 鐢宠鏁伴噺
+ /// - YsNum: 宸叉壂鏁伴噺
+ /// </remarks>
+ /// <response code="200">鎴愬姛鑾峰彇璋冩嫧鍑哄簱鏄庣粏</response>
+ /// <response code="400">鑾峰彇澶辫触锛岃繑鍥炲叿浣撻敊璇俊鎭�</response>
+ [HttpPost("GetTransferOutDetailListByBillNo")]
+ public ResponseResult GetTransferOutDetailListByBillNo([FromBody] WarehouseQuery query)
+ {
+ try
+ {
+ dynamic resultInfos = new ExpandoObject();
+ resultInfos.tbBillList = _manager.GetTransferOutDetailListByBillNo(query);
+ return new ResponseResult
+ {
+ status = 0,
+ message = "OK",
+ data = resultInfos
+ };
+ }
+ catch (Exception ex)
+ {
+ return ResponseResult.ResponseError(ex);
+ }
+ }
+
+ /// <summary>
+ /// 鎵弿鏉$爜杩涜璋冩嫧鍑哄簱澶勭悊
+ /// </summary>
+ /// <param name="query">鏌ヨ鍙傛暟</param>
+ /// <returns>澶勭悊缁撴灉鍜屽緟澶勭悊鏄庣粏</returns>
+ /// <remarks>
+ /// 璇锋眰绀轰緥:
+ ///
+ /// POST /api/TransferOut/ScanMoveBarcode
+ /// {
+ /// "billNo": "DB202401010001", // 璋冩嫧鍗曞彿(蹇呭~)
+ /// "userName": "admin", // 鐢ㄦ埛鍚�(蹇呭~)
+ /// "barcode": "BC001" // 鏉$爜鍙�(蹇呭~)
+ /// }
+ ///
+ /// 涓氬姟澶勭悊锛�
+ /// - 楠岃瘉璋冩嫧鍗曠姸鎬�
+ /// - 楠岃瘉鏉$爜搴撳瓨淇℃伅
+ /// - 楠岃瘉浠撳簱涓�鑷存��
+ /// - 楠岃瘉鏁伴噺鏄惁瓒呭嚭鏈壂鏁伴噺
+ /// - 鎵ц璋冩嫧鍑哄簱浜嬪姟澶勭悊
+ ///
+ /// 杩斿洖鏁版嵁鍖呭惈锛�
+ /// - form: 澶勭悊缁撴灉琛ㄥ崟
+ /// - items: 寰呭鐞嗘槑缁嗗垪琛�
+ /// </remarks>
+ /// <response code="200">鎵弿鎴愬姛</response>
+ /// <response code="400">鎵弿澶辫触锛岃繑鍥炲叿浣撻敊璇俊鎭�</response>
+ [HttpPost("ScanMoveBarcode")]
+ public ResponseResult ScanMoveBarcode([FromBody] WarehouseQuery query)
+ {
+ try
+ {
+ dynamic resultInfos = new ExpandoObject();
+ var (form, items) = _manager.ScanMoveBarcode(query);
+ resultInfos.form = form;
+ resultInfos.items = items;
+ return new ResponseResult
+ {
+ status = 0,
+ message = "OK",
+ data = resultInfos
+ };
+ }
+ catch (Exception ex)
+ {
+ return ResponseResult.ResponseError(ex);
+ }
+ }
+
+ #endregion
+}
\ No newline at end of file
diff --git a/entity/MesInvItemMoves.cs b/entity/MesInvItemMoves.cs
new file mode 100644
index 0000000..b17070a
--- /dev/null
+++ b/entity/MesInvItemMoves.cs
@@ -0,0 +1,172 @@
+锘縰sing SqlSugar;
+
+namespace NewPdaSqlServer.entity;
+
+/// <summary>
+/// </summary>
+[SugarTable("MES_INV_ITEM_MOVES")]
+public class MesInvItemMoves
+{
+ /// <summary>
+ /// 榛樿鍊�: (newid())
+ /// </summary>
+ [SugarColumn(ColumnName = "guid", IsPrimaryKey = true)]
+ public Guid Guid { get; set; }
+
+ /// <summary>
+ /// 绉诲簱鍗曞彿
+ /// </summary>
+ [SugarColumn(ColumnName = "bill_no")]
+ public string? BillNo { get; set; }
+
+ /// <summary>
+ /// 绉诲叆瀛愬簱id
+ /// </summary>
+ [SugarColumn(ColumnName = "inv_depots_id")]
+ public int? InvDepotsId { get; set; }
+
+ /// <summary>
+ /// 绉诲叆璐т綅id
+ /// </summary>
+ [SugarColumn(ColumnName = "inv_depot_sections_id")]
+ public int? InvDepotSectionsId { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓浜�
+ /// </summary>
+ [SugarColumn(ColumnName = "create_by")]
+ public string? CreateBy { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓鏃堕棿
+ /// </summary>
+ [SugarColumn(ColumnName = "create_date")]
+ public DateTime? CreateDate { get; set; }
+
+ /// <summary>
+ /// 鏈�鍚庢洿鏂颁汉
+ /// </summary>
+ [SugarColumn(ColumnName = "lastupdate_by")]
+ public string? LastupdateBy { get; set; }
+
+ /// <summary>
+ /// 鏈�鍚庢洿鏂版椂闂�
+ /// </summary>
+ [SugarColumn(ColumnName = "lastupdate_date")]
+ public DateTime? LastupdateDate { get; set; }
+
+ /// <summary>
+ /// 鐘舵�亅0-鍒跺崟1-杩囪处
+ /// </summary>
+ [SugarColumn(ColumnName = "status")]
+ public int? Status { get; set; }
+
+ /// <summary>
+ /// 澶囨敞
+ /// </summary>
+ [SugarColumn(ColumnName = "remark")]
+ public string? Remark { get; set; }
+
+ /// <summary>
+ /// 鍗曟嵁绫诲瀷ID
+ /// </summary>
+ [SugarColumn(ColumnName = "bill_type_id")]
+ public int? BillTypeId { get; set; }
+
+ /// <summary>
+ /// 浜嬪姟绫诲瀷ID
+ /// </summary>
+ [SugarColumn(ColumnName = "transaction_id")]
+ public int? TransactionId { get; set; }
+
+ /// <summary>
+ /// 瀹℃牳浜�
+ /// </summary>
+ [SugarColumn(ColumnName = "checkuser")]
+ public string? Checkuser { get; set; }
+
+ /// <summary>
+ /// 瀹℃牳鏃ユ湡
+ /// </summary>
+ [SugarColumn(ColumnName = "checkdate")]
+ public DateTime? Checkdate { get; set; }
+
+ /// <summary>
+ /// 浜嬪姟绫诲瀷缂栫爜
+ /// </summary>
+ [SugarColumn(ColumnName = "transaction_no")]
+ public int? TransactionNo { get; set; }
+
+ /// <summary>
+ /// 绉诲嚭瀛愬簱id
+ /// </summary>
+ [SugarColumn(ColumnName = "from_depots_id")]
+ public string? FromDepotsId { get; set; }
+
+ /// <summary>
+ /// 宸ュ巶缂栫爜
+ /// </summary>
+ [SugarColumn(ColumnName = "factory_code")]
+ public string? FactoryCode { get; set; }
+
+ /// <summary>
+ /// SAP杩斿洖鍗曟嵁
+ /// </summary>
+ [SugarColumn(ColumnName = "sapno")]
+ public string? Sapno { get; set; }
+
+ /// <summary>
+ /// 宸插洖鍐橲AP
+ /// 榛樿鍊�: ((0))
+ /// </summary>
+ [SugarColumn(ColumnName = "sapstatus")]
+ public int? Sapstatus { get; set; }
+
+ /// <summary>
+ /// SAP杩斿洖骞翠唤
+ /// </summary>
+ [SugarColumn(ColumnName = "sapyear")]
+ public int? Sapyear { get; set; }
+
+ /// <summary>
+ /// SAP杩斿洖淇℃伅
+ /// </summary>
+ [SugarColumn(ColumnName = "saptext")]
+ public string? Saptext { get; set; }
+
+ /// <summary>
+ /// 鍒嗗巶缂栫爜
+ /// </summary>
+ [SugarColumn(ColumnName = "factory")]
+ public string? Factory { get; set; }
+
+ /// <summary>
+ /// 鍏徃浠g爜
+ /// </summary>
+ [SugarColumn(ColumnName = "company")]
+ public string? Company { get; set; }
+
+ /// <summary>
+ /// 鍙嶅鏍镐簨鍔$被鍨嬬紪鐮�
+ /// </summary>
+ [SugarColumn(ColumnName = "mtransaction_no")]
+ public int? MtransactionNo { get; set; }
+
+ /// <summary>
+ /// 鑷姩淇濆瓨瀛楁
+ /// </summary>
+ [SugarColumn(ColumnName = "zd_num")]
+ public int? ZdNum { get; set; }
+
+ /// <summary>
+ /// 鏄惁鎺ㄩ�丒RP1-鏄紝2-鍚�
+ /// </summary>
+ [SugarColumn(ColumnName = "ts")]
+ public int? Ts { get; set; }
+
+ /// <summary>
+ /// 璋冩嫧鍑哄簱鐢宠鍗�
+ /// </summary>
+ [SugarColumn(ColumnName = "TASK_NO")]
+ public string? TaskNo { get; set; }
+}
\ No newline at end of file
diff --git a/entity/MesInvItemMovesCDetails.cs b/entity/MesInvItemMovesCDetails.cs
new file mode 100644
index 0000000..3ac4eef
--- /dev/null
+++ b/entity/MesInvItemMovesCDetails.cs
@@ -0,0 +1,250 @@
+锘縰sing SqlSugar;
+
+namespace NewPdaSqlServer.entity;
+
+/// <summary>
+/// </summary>
+[SugarTable("MES_INV_ITEM_MOVES_C_DETAILS")]
+public class MesInvItemMovesCDetails
+{
+ /// <summary>
+ /// </summary>
+ [SugarColumn(ColumnName = "guid", IsPrimaryKey = true)]
+ public Guid Guid { get; set; }
+
+ /// <summary>
+ /// </summary>
+ [SugarColumn(ColumnName = "item_move_guid")]
+ public Guid? ItemMoveGuid { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡鏉$爜
+ /// </summary>
+ [SugarColumn(ColumnName = "item_barcode")]
+ public string? ItemBarcode { get; set; }
+
+ /// <summary>
+ /// 瀹㈡埛鐗╂枡缂栫爜锛堟棤鏉$爜鎵嬪伐褰曞叆锛屾湁鏉$爜涓哄啑浣欏瓧娈碉級
+ /// </summary>
+ [SugarColumn(ColumnName = "c_item_code")]
+ public string? CItemCode { get; set; }
+
+ /// <summary>
+ /// 淇″崕鐗╂枡缂栫爜锛堟棤鏉$爜鎵嬪伐褰曞叆锛屾湁鏉$爜涓哄啑浣欏瓧娈碉級
+ /// </summary>
+ [SugarColumn(ColumnName = "item_no")]
+ public string? ItemNo { get; set; }
+
+ /// <summary>
+ /// 鍘傚鎵规
+ /// </summary>
+ [SugarColumn(ColumnName = "lot_no")]
+ public string? LotNo { get; set; }
+
+ /// <summary>
+ /// 鏁伴噺锛堟棤鏉$爜鎵嬪伐褰曞叆锛屾湁鏉$爜涓哄啑浣欏瓧娈碉級
+ /// </summary>
+ [SugarColumn(ColumnName = "quantity")]
+ public decimal? Quantity { get; set; }
+
+ /// <summary>
+ /// 鍑哄簱鏂瑰紡(1:鏈夋潯鐮�,0:鏃犳潯鐮�)
+ /// 榛樿鍊�: ((1))
+ /// </summary>
+ [SugarColumn(ColumnName = "barcode_flag")]
+ public int? BarcodeFlag { get; set; }
+
+ /// <summary>
+ /// 鐜繚鏍囧織锛堟棤鏉$爜鎵嬪伐褰曞叆锛屾湁鏉$爜涓哄啑浣欏瓧娈碉級
+ /// 榛樿鍊�: ((1))
+ /// </summary>
+ [SugarColumn(ColumnName = "ep_flag")]
+ public int? EpFlag { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓浜�
+ /// </summary>
+ [SugarColumn(ColumnName = "create_by")]
+ public string? CreateBy { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓鏃堕棿
+ /// </summary>
+ [SugarColumn(ColumnName = "create_date")]
+ public DateTime? CreateDate { get; set; }
+
+ /// <summary>
+ /// 鏈�鍚庢洿鏂颁汉
+ /// </summary>
+ [SugarColumn(ColumnName = "lastupdate_by")]
+ public string? LastupdateBy { get; set; }
+
+ /// <summary>
+ /// 鏈�鍚庢洿鏂版椂闂�
+ /// </summary>
+ [SugarColumn(ColumnName = "lastupdate_date")]
+ public DateTime? LastupdateDate { get; set; }
+
+ /// <summary>
+ /// 瀛愬簱id
+ /// </summary>
+ [SugarColumn(ColumnName = "inv_depots_id")]
+ public int? InvDepotsId { get; set; }
+
+ /// <summary>
+ /// 璐т綅id
+ /// </summary>
+ [SugarColumn(ColumnName = "inv_depot_sections_id")]
+ public int? InvDepotSectionsId { get; set; }
+
+ /// <summary>
+ /// 瀹㈡埛缂栫爜
+ /// </summary>
+ [SugarColumn(ColumnName = "cust_no")]
+ public string? CustNo { get; set; }
+
+ /// <summary>
+ /// 浠诲姟浠ゅ彿
+ /// </summary>
+ [SugarColumn(ColumnName = "task_no")]
+ public string? TaskNo { get; set; }
+
+ /// <summary>
+ /// 绉诲嚭浠撳簱缂栧彿
+ /// </summary>
+ [SugarColumn(ColumnName = "from_depots_code")]
+ public string? FromDepotsCode { get; set; }
+
+ /// <summary>
+ /// 绉诲嚭搴撲綅缂栧彿
+ /// </summary>
+ [SugarColumn(ColumnName = "from_depot_sections_code")]
+ public string? FromDepotSectionsCode { get; set; }
+
+ /// <summary>
+ /// 鏉$爜澶囨敞
+ /// </summary>
+ [SugarColumn(ColumnName = "remark")]
+ public string? Remark { get; set; }
+
+ /// <summary>
+ /// 鍒嗗巶缂栫爜
+ /// </summary>
+ [SugarColumn(ColumnName = "factory")]
+ public string? Factory { get; set; }
+
+ /// <summary>
+ /// 鍏徃浠g爜
+ /// </summary>
+ [SugarColumn(ColumnName = "company")]
+ public string? Company { get; set; }
+
+ /// <summary>
+ /// 绠卞彿
+ /// </summary>
+ [SugarColumn(ColumnName = "box_no")]
+ public string? BoxNo { get; set; }
+
+ /// <summary>
+ /// 鍗℃澘鍙�
+ /// </summary>
+ [SugarColumn(ColumnName = "ko_no")]
+ public string? KoNo { get; set; }
+
+ /// <summary>
+ /// 绉诲叆浠撳簱缂栧彿
+ /// </summary>
+ [SugarColumn(ColumnName = "inv_depots_code")]
+ public string? InvDepotsCode { get; set; }
+
+ /// <summary>
+ /// 绉诲叆搴撲綅缂栧彿
+ /// </summary>
+ [SugarColumn(ColumnName = "inv_depot_sections_code")]
+ public string? InvDepotSectionsCode { get; set; }
+
+ /// <summary>
+ /// 璐ㄦ缁撴灉
+ /// </summary>
+ [SugarColumn(ColumnName = "iqc_status")]
+ public string? IqcStatus { get; set; }
+
+ /// <summary>
+ /// 灏忚溅缂栧彿
+ /// </summary>
+ [SugarColumn(ColumnName = "fcar")]
+ public string? Fcar { get; set; }
+
+ /// <summary>
+ /// 鍏ュ簱鏃ユ湡
+ /// </summary>
+ [SugarColumn(ColumnName = "indep_date")]
+ public DateTime? IndepDate { get; set; }
+
+ /// <summary>
+ /// 鍐荤粨鎻愪氦閲嶆锛�0锛氬喕缁撴湭鎻愪氦閲嶆锛�1锛氬喕缁撳苟鎻愪氦閲嶆
+ /// 榛樿鍊�: ((0))
+ /// </summary>
+ [SugarColumn(ColumnName = "visable_submit")]
+ public int? VisableSubmit { get; set; }
+
+ /// <summary>
+ /// 鎻愪氦閲嶆浜�
+ /// </summary>
+ [SugarColumn(ColumnName = "visable_submit_by")]
+ public string? VisableSubmitBy { get; set; }
+
+ /// <summary>
+ /// 鎻愪氦閲嶆鏃堕棿
+ /// </summary>
+ [SugarColumn(ColumnName = "visable_submit_date")]
+ public DateTime? VisableSubmitDate { get; set; }
+
+ /// <summary>
+ /// 浜у搧鍨嬪彿
+ /// </summary>
+ [SugarColumn(ColumnName = "board_style")]
+ public string? BoardStyle { get; set; }
+
+ /// <summary>
+ /// 浠诲姟鍗曞彿
+ /// </summary>
+ [SugarColumn(ColumnName = "work_no")]
+ public string? WorkNo { get; set; }
+
+ /// <summary>
+ /// 浠诲姟鍗曡鍙�
+ /// </summary>
+ [SugarColumn(ColumnName = "work_line")]
+ public int? WorkLine { get; set; }
+
+ /// <summary>
+ /// 渚涘簲鍟嗙紪鍙�
+ /// </summary>
+ [SugarColumn(ColumnName = "supp_no")]
+ public string? SuppNo { get; set; }
+
+ /// <summary>
+ /// 璋冨叆
+ /// </summary>
+ [SugarColumn(ColumnName = "move_ok")]
+ public int? MoveOk { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡ID
+ /// </summary>
+ [SugarColumn(ColumnName = "item_id")]
+ public int? ItemId { get; set; }
+
+ /// <summary>
+ /// K3ID
+ /// </summary>
+ [SugarColumn(ColumnName = "EBELN_K3ID")]
+ public long? EbelnK3id { get; set; }
+
+ /// <summary>
+ /// 琛孠3ID
+ /// </summary>
+ [SugarColumn(ColumnName = "LINE_K3ID")]
+ public long? LineK3id { get; set; }
+}
\ No newline at end of file
diff --git a/entity/TransferOut.cs b/entity/TransferOut.cs
new file mode 100644
index 0000000..be97376
--- /dev/null
+++ b/entity/TransferOut.cs
@@ -0,0 +1,199 @@
+锘縰sing SqlSugar;
+
+namespace NewPdaSqlServer.entity;
+
+/// <summary>
+/// 璋冩嫧鍑哄簱涓昏〃
+/// </summary>
+[SugarTable("Transfer_Out")]
+public class TransferOut
+{
+ /// <summary>
+ /// 涓婚敭
+ /// 榛樿鍊�: (newid())
+ /// </summary>
+ [SugarColumn(ColumnName = "guid", IsPrimaryKey = true)]
+ public Guid Guid { get; set; }
+
+ /// <summary>
+ /// 鍗曟嵁绫诲瀷
+ /// </summary>
+ [SugarColumn(ColumnName = "bill_type_id")]
+ public string BillTypeId { get; set; }
+
+ /// <summary>
+ /// 璋冩嫧鏂瑰悜
+ /// </summary>
+ [SugarColumn(ColumnName = "transfer_direct")]
+ public string TransferDirect { get; set; }
+
+ /// <summary>
+ /// 璋冩嫧绫诲瀷
+ /// </summary>
+ [SugarColumn(ColumnName = "transfer_biz_type")]
+ public string TransferBizType { get; set; }
+
+ /// <summary>
+ /// 璋冨嚭搴撳瓨缁勭粐
+ /// </summary>
+ [SugarColumn(ColumnName = "stockoutorg_id")]
+ public string StockoutorgId { get; set; }
+
+ /// <summary>
+ /// 璋冨叆搴撳瓨缁勭粐
+ /// </summary>
+ [SugarColumn(ColumnName = "stockorg_id")]
+ public string StockorgId { get; set; }
+
+ /// <summary>
+ /// 璋冨嚭璐т富绫诲瀷
+ /// </summary>
+ [SugarColumn(ColumnName = "owner_type_out_id_head")]
+ public string OwnerTypeOutIdHead { get; set; }
+
+ /// <summary>
+ /// 璋冨嚭璐т富
+ /// </summary>
+ [SugarColumn(ColumnName = "owner_out_id_head")]
+ public string OwnerOutIdHead { get; set; }
+
+ /// <summary>
+ /// 璋冨叆璐т富绫诲瀷
+ /// </summary>
+ [SugarColumn(ColumnName = "owner_type_id_head")]
+ public string OwnerTypeIdHead { get; set; }
+
+ /// <summary>
+ /// 璋冨叆璐т富
+ /// </summary>
+ [SugarColumn(ColumnName = "owner_id_head")]
+ public string OwnerIdHead { get; set; }
+
+ /// <summary>
+ /// 閿�鍞粍缁�
+ /// </summary>
+ [SugarColumn(ColumnName = "saleorg_id")]
+ public string SaleorgId { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓浜�
+ /// </summary>
+ [SugarColumn(ColumnName = "create_by")]
+ public string CreateBy { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓鏃堕棿
+ /// </summary>
+ [SugarColumn(ColumnName = "cteate_data")]
+ public DateTime? CteateData { get; set; }
+
+ /// <summary>
+ /// 鏈�鍚庢洿鏂颁汉
+ /// </summary>
+ [SugarColumn(ColumnName = "lastupdate_by")]
+ public string LastupdateBy { get; set; }
+
+ /// <summary>
+ /// 鏈�鍚庢洿鏂版椂闂�
+ /// </summary>
+ [SugarColumn(ColumnName = "lastupdate_date")]
+ public DateTime? LastupdateDate { get; set; }
+
+ /// <summary>
+ /// 瀹℃牳浜�
+ /// </summary>
+ [SugarColumn(ColumnName = "CHECK_USER")]
+ public string CheckUser { get; set; }
+
+ /// <summary>
+ /// 瀹℃牳鏃堕棿
+ /// </summary>
+ [SugarColumn(ColumnName = "CHECK_DATE")]
+ public DateTime? CheckDate { get; set; }
+
+ /// <summary>
+ /// 瀹℃牳鐘舵��
+ /// 榛樿鍊�: ((0))
+ /// </summary>
+ [SugarColumn(ColumnName = "STATUS")]
+ public int? Status { get; set; }
+
+ /// <summary>
+ /// 璋冩嫧绫诲瀷缂栫爜
+ /// </summary>
+ [SugarColumn(ColumnName = "transferbiztype_no")]
+ public string TransferbiztypeNo { get; set; }
+
+ /// <summary>
+ /// 璋冩嫧鏂瑰悜缂栫爜
+ /// </summary>
+ [SugarColumn(ColumnName = "transferdirect_no")]
+ public string TransferdirectNo { get; set; }
+
+ /// <summary>
+ /// 璋冨嚭浠撳簱
+ /// </summary>
+ [SugarColumn(ColumnName = "inv_code")]
+ public string InvCode { get; set; }
+
+ /// <summary>
+ /// 璋冨嚭浠撳簱鍚嶇О
+ /// </summary>
+ [SugarColumn(ColumnName = "inv_name")]
+ public string InvName { get; set; }
+
+ /// <summary>
+ /// 璋冨叆浠撳簱
+ /// </summary>
+ [SugarColumn(ColumnName = "from_code")]
+ public string FromCode { get; set; }
+
+ /// <summary>
+ /// 璋冨叆浠撳簱鍚嶇О
+ /// </summary>
+ [SugarColumn(ColumnName = "from_name")]
+ public string FromName { get; set; }
+
+ /// <summary>
+ /// 璋冨嚭搴撳瓨缁勭粐ID
+ /// </summary>
+ [SugarColumn(ColumnName = "stockoutorgid_no")]
+ public int? StockoutorgidNo { get; set; }
+
+ /// <summary>
+ /// 璋冨叆搴撳瓨缁勭粐ID
+ /// </summary>
+ [SugarColumn(ColumnName = "stockorgid_no")]
+ public int? StockorgidNo { get; set; }
+
+ /// <summary>
+ /// 璋冩嫧鐢宠鍗�
+ /// </summary>
+ [SugarColumn(ColumnName = "bill_no")]
+ public string BillNo { get; set; }
+
+ /// <summary>
+ /// 鍗曟嵁绫诲瀷缂栫爜
+ /// </summary>
+ [SugarColumn(ColumnName = "billtypeid_no")]
+ public string BilltypeidNo { get; set; }
+
+ /// <summary>
+ /// 鍑哄簱浠撳簱
+ /// </summary>
+ [SugarColumn(ColumnName = "ck_depot")]
+ public int? CkDepot { get; set; }
+
+ /// <summary>
+ /// 鍏ュ簱浠撳簱
+ /// </summary>
+ [SugarColumn(ColumnName = "rk_depot")]
+ public int? RkDepot { get; set; }
+
+ /// <summary>
+ /// 瀹岀粨鏍囪瘑
+ /// 榛樿鍊�: ((0))
+ /// </summary>
+ [SugarColumn(ColumnName = "is_wc")]
+ public int? IsWc { get; set; }
+}
\ No newline at end of file
diff --git a/entity/TransferOutEtail.cs b/entity/TransferOutEtail.cs
new file mode 100644
index 0000000..0bbe03c
--- /dev/null
+++ b/entity/TransferOutEtail.cs
@@ -0,0 +1,67 @@
+锘縰sing SqlSugar;
+
+namespace NewPdaSqlServer.entity;
+
+/// <summary>
+/// 璋冩嫧鍑哄簱鐢宠鏄庣粏
+/// </summary>
+[SugarTable("Transfer_Out_DETAIL")]
+public class TransferOutDetail
+{
+ /// <summary>
+ /// 榛樿鍊�: (newid())
+ /// </summary>
+ [SugarColumn(ColumnName = "guid", IsPrimaryKey = true)]
+ public Guid Guid { get; set; }
+
+ /// <summary>
+ /// </summary>
+ [SugarColumn(ColumnName = "pid")]
+ public Guid? Pid { get; set; }
+
+ /// <summary>
+ /// </summary>
+ [SugarColumn(ColumnName = "item_id")]
+ public int? ItemId { get; set; }
+
+ /// <summary>
+ /// 鐢宠鏁伴噺
+ /// </summary>
+ [SugarColumn(ColumnName = "sh_num")]
+ public int? ShNum { get; set; }
+
+ /// <summary>
+ /// 宸叉壂鏁伴噺
+ /// </summary>
+ [SugarColumn(ColumnName = "ys_num")]
+ public int? YsNum { get; set; }
+
+ /// <summary>
+ /// </summary>
+ [SugarColumn(ColumnName = "item_unit")]
+ public string? ItemUnit { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡鍚嶇О
+ /// </summary>
+ [SugarColumn(ColumnName = "item_name")]
+ public string? ItemName { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡缂栫爜
+ /// </summary>
+ [SugarColumn(ColumnName = "item_no")]
+ public string? ItemNo { get; set; }
+
+ /// <summary>
+ /// 瑙勬牸鍨嬪彿
+ /// </summary>
+ [SugarColumn(ColumnName = "item_model")]
+ public string? ItemModel { get; set; }
+
+ /// <summary>
+ /// 褰撳墠搴撳瓨鏁�
+ /// </summary>
+ [SugarColumn(ColumnName = "kc")]
+ public int? Kc { get; set; }
+}
\ No newline at end of file
diff --git a/service/Warehouse/MesItemQtManager.cs b/service/Warehouse/MesItemQtManager.cs
index 01ce4e1..83730c5 100644
--- a/service/Warehouse/MesItemQtManager.cs
+++ b/service/Warehouse/MesItemQtManager.cs
@@ -24,7 +24,7 @@
}
/// <summary>
- /// 鑾峰彇寰呭鐞嗙殑閫�鏂欏崟鏄庣粏鍒楄〃
+ /// 鑾峰彇寰呭鐞嗙殑閫�鏂欏崟鏄庣粏鍒楄〃
/// </summary>
/// <param name="query">浠撳簱鏌ヨ鍙傛暟锛屽寘鍚敤鎴峰悕鍜屽崟鎹彿</param>
/// <returns>寰呭鐞嗙殑閫�鏂欏崟鏄庣粏鍒楄〃</returns>
@@ -40,22 +40,15 @@
.First();
// 濡傛灉鏈壘鍒伴��鏂欏崟锛屾姏鍑哄紓甯�
- if (mesItemQt == null)
- {
- throw new Exception($"鏈煡璇㈠埌姝ゅ叾浠栧叆搴撶敵璇峰崟 {p_bill_no}");
- }
+ if (mesItemQt == null) throw new Exception($"鏈煡璇㈠埌姝ゅ叾浠栧叆搴撶敵璇峰崟 {p_bill_no}");
// 妫�鏌ラ��鏂欏崟鐨勫鏍哥姸鎬�(Qt015)锛屾湭瀹℃牳鍒欐姏鍑哄紓甯�
if (mesItemQt.Qt015 == false)
- {
throw new Exception($"鍏朵粬鍑哄簱鐢宠鍗� {p_bill_no} 鏈鏍革紝璇风‘璁わ紒");
- }
// 妫�鏌ラ��鏂欏崟鐨勫畬缁撶姸鎬�(Qt014)锛屽凡瀹岀粨鍒欐姏鍑哄紓甯�
if (mesItemQt.Qt014 == true)
- {
throw new Exception($"鍏朵粬鍑哄簱鐢宠鍗� {p_bill_no} 宸插畬缁擄紝璇风‘璁わ紒");
- }
// 鑱旇〃鏌ヨ鑾峰彇鏈畬鎴愮殑鏄庣粏鍒楄〃
// 鍏宠仈琛細
@@ -97,10 +90,7 @@
var p_transaction_no = 202;
// 妫�鏌ュ崟鎹彿鏄惁涓虹┖
- if (string.IsNullOrEmpty(p_bill_no))
- {
- throw new Exception("璇烽�夊彇鍗曟嵁鍙凤紒");
- }
+ if (string.IsNullOrEmpty(p_bill_no)) throw new Exception("璇烽�夊彇鍗曟嵁鍙凤紒");
// 妫�鏌ユ槸鍚﹂噸澶嶆壂鎻�
var existingBarcode = Db.Queryable<MesInvItemOutCDetails>()
@@ -108,10 +98,7 @@
it.ItemBarcode == p_item_barcode && it.PbillNo == p_bill_no)
.Any();
- if (existingBarcode)
- {
- throw new Exception("姝ゆ潯鐮佸凡缁忔壂鐮佸嚭搴�,鍕块噸澶嶆壂鎻忥紒");
- }
+ if (existingBarcode) throw new Exception("姝ゆ潯鐮佸凡缁忔壂鐮佸嚭搴�,鍕块噸澶嶆壂鎻忥紒");
// 鑾峰彇鏉$爜淇℃伅
var barcode = Db.Queryable<MesInvItemBarcodes>()
@@ -119,9 +106,7 @@
.First();
if (barcode == null)
- {
throw new Exception($"mes涓笉瀛樺湪姝ゆ潯鐮�,璇锋牳瀵癸紒{p_item_barcode}");
- }
// 鑾峰彇搴撳瓨淇℃伅
var stock = Db.Queryable<MesInvItemStocks>()
@@ -129,20 +114,14 @@
.First();
if (stock == null)
- {
throw new Exception($"搴撳瓨涓棤姝ゆ潯鐮侊紝璇锋鏌ユ潯鐮佹槸鍚︽湭鍏ュ簱鎴栧凡鍑哄簱锛亄p_item_barcode}");
- }
if (string.IsNullOrEmpty(stock.DepotsCode))
- {
throw new Exception($"璋冩嫧涓殑鏉$爜涓嶅彲鍙戞枡,璇峰厛瀹屾垚璋冩嫧鍗曟嵁{p_item_barcode}");
- }
if (stock.DepotsCode is "S006" or "S005")
- {
throw new Exception($"鏉$爜鍦ㄤ笉鑹搧浠撲笅 涓嶅彲鍙戞枡{p_item_barcode}");
- }
// 妫�鏌ユ槸鍚﹀湪瀵勫瓨浠撲綅
// var isDepotSection = Db.Queryable<MesJcDepot>()
@@ -160,16 +139,12 @@
.First();
if (mesItemQt == null)
- {
throw new Exception($"鍏朵粬鍑哄簱鐢宠鍗� {p_bill_no} 涓嶅瓨鍦紝璇风‘璁わ紒");
- }
// 妫�鏌ヤ粨搴撴槸鍚︿竴鑷�
if (mesItemQt.Qt011 != stock.DepotsCode)
- {
throw new Exception(
$"鎵爜鍑鸿揣浠撳簱{stock.DepotsCode}涓庡叾浠栧嚭搴撶敵璇蜂粨搴搟mesItemQt.Qt011}涓嶄竴鑷达紝璇锋牳瀵癸紒");
- }
// 鑾峰彇鍑哄簱鍗曟槑缁�
var qtDetail = Db.Queryable<MesItemQtDatall>()
@@ -178,17 +153,12 @@
it.ItemId == stock.ItemId.ToString())
.First();
- if (qtDetail == null)
- {
- throw new Exception("鎵爜鐗╂枡闈炴湰娆″嚭搴撶敵璇风墿鏂欙紝璇锋牳瀵癸紒");
- }
+ if (qtDetail == null) throw new Exception("鎵爜鐗╂枡闈炴湰娆″嚭搴撶敵璇风墿鏂欙紝璇锋牳瀵癸紒");
// 妫�鏌ュ墿浣欐暟閲�
var remainingQty = (qtDetail.Qd007 ?? 0) - (qtDetail.Qd008 ?? 0);
if (remainingQty <= 0)
- {
throw new Exception($"鐢宠鐗╂枡 {barcode.ItemNo} 宸插嚭搴撳畬鎴愶紒");
- }
// 妫�鏌ユ暟閲忔槸鍚﹁秴鍑�
if (stock.Quantity > remainingQty)
@@ -295,10 +265,7 @@
it.ItemId == stock.ItemId.ToString())
.First();
- if (qtDetail == null)
- {
- throw new Exception($"鏈壘鍒板搴旂殑閫�鏂欏崟鏄庣粏淇℃伅");
- }
+ if (qtDetail == null) throw new Exception("鏈壘鍒板搴旂殑閫�鏂欏崟鏄庣粏淇℃伅");
// 妫�鏌ユ槸鍚﹀凡瀛樺湪鍑哄簱鐗╂枡璁板綍
var existingOutItem = Db.Queryable<MesInvItemOutItems>()
@@ -329,7 +296,7 @@
ItemId = !string.IsNullOrEmpty(qtDetail.ItemId)
? long.Parse(qtDetail.ItemId)
: null,
- FType = 0,
+ FType = 0
// Unit = qtDetail.Qd009
};
@@ -429,12 +396,10 @@
// 妫�鏌ユ槑缁嗘槸鍚﹀畬鎴�,濡傛灉瀹屾垚鍒欐洿鏂扮姸鎬�
if ((qtDetail.Qd007 ?? 0) - (qtDetail.Qd008 ?? 0) == stock.Quantity)
- {
commit += db.Updateable<MesItemQtDatall>()
.SetColumns(it => it.Qd011 == 1)
.Where(it => it.Guid == qtDetail.Guid)
.ExecuteCommand();
- }
mesItemQtDatalls = Db
.Queryable<MesItemQt, MesItemQtDatall, MesItems>(
@@ -456,12 +421,10 @@
// 濡傛灉娌℃湁寰呭鐞嗘槑缁嗭紝鏇存柊閫�鏂欏崟鐘舵�佷负宸插畬鎴�
if (CollectionUtil.IsNullOrEmpty(mesItemQtDatalls))
- {
db.Updateable<MesItemQt>()
.SetColumns(it => it.Qt014 == true)
.Where(it => it.Qtck == p_bill_no)
.ExecuteCommand();
- }
// 鏋勫缓杩斿洖娑堟伅
mess = $"鎵爜鎴愬姛锛佹潯鐮� {p_item_barcode} 鏁伴噺 {stock.Quantity} 宸插嚭搴�";
@@ -471,10 +434,7 @@
query.Num = stock.Quantity;
query.Fum = null;
- if (commit < 5)
- {
- throw new Exception("鏇存柊澶辫触");
- }
+ if (commit < 5) throw new Exception("鏇存柊澶辫触");
return commit;
});
@@ -494,16 +454,10 @@
var p_transaction_no = 202;
// 妫�鏌ュ崟鎹彿鏄惁涓虹┖
- if (string.IsNullOrEmpty(p_bill_no))
- {
- throw new Exception("璇烽�夊彇鍗曟嵁鍙凤紒");
- }
+ if (string.IsNullOrEmpty(p_bill_no)) throw new Exception("璇烽�夊彇鍗曟嵁鍙凤紒");
// 妫�鏌ユ暟閲忔槸鍚︽湁鏁�
- if (p_qty <= 0)
- {
- throw new Exception("璇疯緭鍏ユ纭殑鍙戞枡鏁伴噺锛�");
- }
+ if (p_qty <= 0) throw new Exception("璇疯緭鍏ユ纭殑鍙戞枡鏁伴噺锛�");
// 鑾峰彇搴撳瓨鏉$爜淇℃伅
var stock = Db.Queryable<MesInvItemStocks>()
@@ -511,19 +465,13 @@
.First();
if (stock == null)
- {
throw new Exception($"搴撳瓨涓棤姝ゆ潯鐮侊紝璇锋鏌ユ潯鐮佹槸鍚︽湭鍏ュ簱鎴栧凡鍑哄簱锛亄p_old_barcode}");
- }
if (string.IsNullOrEmpty(stock.DepotsCode))
- {
throw new Exception($"璋冩嫧涓殑鏉$爜涓嶅彲鍙戞枡,璇峰厛瀹屾垚璋冩嫧鍗曟嵁{p_old_barcode}");
- }
if (stock.DepotsCode is "S006" or "S005")
- {
throw new Exception($"鏉$爜鍦ㄤ笉鑹搧浠撲笅 涓嶅彲鍙戞枡{p_old_barcode}");
- }
// 鑾峰彇鏉$爜淇℃伅
var barcode = Db.Queryable<MesInvItemBarcodes>()
@@ -531,9 +479,7 @@
.First();
if (barcode == null)
- {
throw new Exception($"mes涓笉瀛樺湪姝ゆ潯鐮侊紝璇锋牳瀵癸紒{p_old_barcode}");
- }
// 鑾峰彇閫�鏂欏崟淇℃伅
var mesItemQt = Db.Queryable<MesItemQt>()
@@ -541,15 +487,11 @@
.First();
if (mesItemQt == null)
- {
throw new Exception($"鍏朵粬鍑哄簱鐢宠鍗� {p_bill_no} 涓嶅瓨鍦紝璇风‘璁わ紒");
- }
if (mesItemQt.Qt011 != stock.DepotsCode)
- {
throw new Exception(
$"鎵爜鍑鸿揣浠撳簱{stock.DepotsCode}涓庡叾浠栧嚭搴撶敵璇蜂粨搴搟mesItemQt.Qt011}涓嶄竴鑷达紝璇锋牳瀵癸紒");
- }
// 鑾峰彇閫�鏂欏崟鏄庣粏
var qtDetail = Db.Queryable<MesItemQtDatall>()
@@ -558,32 +500,23 @@
it.ItemId == stock.ItemId.ToString())
.First();
- if (qtDetail == null)
- {
- throw new Exception("鎵爜鐗╂枡闈炴湰娆″嚭搴撶敵璇风墿鏂欙紝璇锋牳瀵癸紒");
- }
+ if (qtDetail == null) throw new Exception("鎵爜鐗╂枡闈炴湰娆″嚭搴撶敵璇风墿鏂欙紝璇锋牳瀵癸紒");
var remainingQty = (qtDetail.Qd007 ?? 0) - (qtDetail.Qd008 ?? 0);
if (remainingQty <= 0)
- {
throw new Exception($"鐢宠鐗╂枡 {barcode.ItemNo} 宸插嚭搴撳畬鎴愶紒");
- }
if (p_qty > remainingQty)
- {
throw new Exception(
$"杈撳叆鐨勬媶鍒嗘暟閲� {p_qty} 涓嶅彲澶т簬鍓╀綑闇�鍙戞暟閲� {remainingQty} 璇蜂慨鏀�");
- }
var totalQty = Db.Queryable<MesInvItemStocks>()
.Where(it => it.ItemBarcode == p_old_barcode && it.Quantity > 0)
.Sum(it => it.Quantity);
if (totalQty < p_qty)
- {
throw new Exception($"杈撳叆鐨勫彂鏂欐暟閲� {p_qty} 涓嶅彲澶т簬鏉$爜鏁伴噺 {totalQty} 璇蜂慨鏀�");
- }
var message = string.Empty;
var mesItemQtDatalls = new List<MesItemQtDatall>();
@@ -633,7 +566,7 @@
ComeFlg = 5,
EbelnK3id = barcode.EbelnK3id,
LineK3id = barcode.LineK3id,
- ItemId = barcode.ItemId,
+ ItemId = barcode.ItemId
}).IgnoreColumns(true).ExecuteCommand();
// 鏇存柊鍘熸潯鐮佹暟閲�
@@ -667,7 +600,7 @@
BillNo = stock.BillNo,
EbelnK3id = stock.EbelnK3id,
LineK3id = stock.LineK3id,
- ItemId = stock.ItemId,
+ ItemId = stock.ItemId
}).IgnoreColumns(true).ExecuteCommand();
@@ -702,7 +635,7 @@
LineK3id = stock.LineK3id,
SuppId = stock.SuppId,
SuppNo = stock.SuppNo,
- ItemId = stock.ItemId,
+ ItemId = stock.ItemId
}).IgnoreColumns(true).ExecuteCommand();
}
else
@@ -733,7 +666,7 @@
commit += db.Insertable(new MesInvItemOuts
{
Guid = outId,
- ItemOutNo = $"OUT-{DateTime.Now:yyyyMMddHHmmss}",
+ ItemOutNo = outNo,
TaskNo = p_bill_no,
Status = 0,
CreateBy = c_user,
@@ -751,9 +684,8 @@
PbillNo = p_bill_no,
OutDate = DateTime.Now,
Nflag = 0,
- Reason = mesItemQt.Qt010,
+ Reason = mesItemQt.Qt010
}).ExecuteReturnIdentity();
- outNo = $"OUT-{DateTime.Now:yyyyMMddHHmmss}";
}
else
{
@@ -768,7 +700,6 @@
.First();
if (outItem == null)
- {
// 鎻掑叆鏂版槑缁�
db.Insertable(new MesInvItemOutItems
{
@@ -789,12 +720,10 @@
ItemId = !string.IsNullOrEmpty(qtDetail.ItemId)
? long.Parse(qtDetail.ItemId)
: null,
- FType = 0,
+ FType = 0
// Unit = qtDetail.Qd009
}).ExecuteCommand();
- }
else
- {
// 鏇存柊鏄庣粏鏁伴噺
db.Updateable<MesInvItemOutItems>()
.SetColumns(it =>
@@ -804,7 +733,6 @@
it.ItemId == stock.ItemId &&
it.QtOutId == qtDetail.Guid)
.ExecuteCommand();
- }
// 鎻掑叆鍑哄簱鏄庣粏
db.Insertable(new MesInvItemOutCDetails
@@ -887,12 +815,10 @@
// 濡傛灉鎵�鏈夋槑缁嗗畬鎴愶紝鏇存柊閫�鏂欏崟鐘舵��
if (!hasUnfinished)
- {
db.Updateable<MesItemQt>()
.SetColumns(it => it.Qt014 == true)
.Where(it => it.Qtck == p_bill_no)
.ExecuteCommand();
- }
// 鑾峰彇鍓╀綑寰呭鐞嗘槑缁�
mesItemQtDatalls = db
diff --git a/service/Warehouse/TransferOutManager.cs b/service/Warehouse/TransferOutManager.cs
new file mode 100644
index 0000000..2788646
--- /dev/null
+++ b/service/Warehouse/TransferOutManager.cs
@@ -0,0 +1,381 @@
+锘縰sing NewPdaSqlServer.DB;
+using NewPdaSqlServer.Dto.service;
+using NewPdaSqlServer.entity;
+using NewPdaSqlServer.util;
+using SqlSugar;
+
+namespace NewPdaSqlServer.service.Warehouse;
+
+/// <summary>
+/// 璋冩嫧鍑哄簱绠$悊绫�
+/// 璐熻矗澶勭悊璋冩嫧鍑哄簱鐩稿叧鐨勪笟鍔¢�昏緫
+/// </summary>
+public class TransferOutManager : Repository<TransferOut>
+{
+ /// <summary>
+ /// 鑾峰彇鏈畬鎴愮殑璋冩嫧鍑哄簱鍗曞彿鍒楄〃
+ /// </summary>
+ /// <returns>鏈畬鎴愮殑璋冩嫧鍑哄簱鍗曞彿鍒楄〃</returns>
+ public List<string> GetTransferOutNoList()
+ {
+ // 鍏堜粠鏁版嵁搴撹幏鍙朤ransfer_Out_ETAIL琛ㄧ殑鏁版嵁
+ var transferOutDetails = Db.Queryable<TransferOutDetail>().ToList();
+
+ // 浣跨敤LINQ瀵硅幏鍙栫殑鏁版嵁杩涜鍒嗙粍鍜岀瓫閫�
+ // 绛涢�夋潯浠�:鐢宠鏁伴噺(sq)涓嶇瓑浜庡凡鎵暟閲�(ys)鐨勮褰�
+ var result = transferOutDetails
+ .GroupBy(x => x.Pid)
+ .Select(g => new
+ {
+ pid = g.Key,
+ sq = g.Sum(x => x.ShNum), // 鐢宠鏁伴噺鍚堣
+ ys = g.Sum(x => x.YsNum) // 宸叉壂鏁伴噺鍚堣
+ })
+ .Where(x => (x.sq ?? 0) != (x.ys ?? 0))
+ .Select(x => x.pid)
+ .ToList();
+
+ // 鏍规嵁pid鏌ヨ瀵瑰簲鐨勫嚭搴撳崟鍙�
+ var billNos = Db.Queryable<TransferOut>()
+ .Where(x => result.Contains(x.Guid))
+ .Select(x => x.BillNo)
+ .ToList();
+
+ return billNos;
+ }
+
+ /// <summary>
+ /// 鏍规嵁鍗曟嵁鍙疯幏鍙栧緟澶勭悊鐨勮皟鎷ㄥ嚭搴撴槑缁嗗垪琛�
+ /// </summary>
+ /// <param name="query">鏌ヨ鍙傛暟,鍖呭惈鍗曟嵁鍙�</param>
+ /// <returns>寰呭鐞嗙殑璋冩嫧鍑哄簱鏄庣粏鍒楄〃</returns>
+ public List<TransferOutDetail> GetTransferOutDetailListByBillNo(
+ WarehouseQuery query)
+ {
+ var p_bill_no = query.billNo;
+
+ // 鏍规嵁SQL鏌ヨ鏉′欢鑾峰彇寰呭鐞嗙殑鍑哄簱鏄庣粏
+ // 鍏宠仈鏌ヨTransferOutDetail銆乀ransferOut鍜孧esItems涓夊紶琛�
+ // 绛涢�夋潯浠�:鏈畬鎴愭暟閲忓ぇ浜�0涓斿崟鎹凡瀹℃牳
+ var result = Db.Queryable<TransferOutDetail, TransferOut, MesItems>(
+ (b, a, s) => new JoinQueryInfos(
+ JoinType.Left, b.Pid == a.Guid,
+ JoinType.Left, b.ItemId == s.Id))
+ .Where((b, a, s) =>
+ (b.ShNum ?? 0) - (b.YsNum ?? 0) > 0 // 鏈畬鎴愭暟閲忓ぇ浜�0
+ && a.BillNo == p_bill_no // 鍖归厤鍗曟嵁鍙�
+ && a.Status == 1) // 鍗曟嵁宸插鏍�
+ .OrderBy((b, a, s) => s.ItemNo)
+ .Select((b, a, s) => new TransferOutDetail
+ {
+ ItemNo = s.ItemNo,
+ ItemModel = s.ItemModel,
+ ShNum = b.ShNum, // 鐢宠鏁伴噺
+ YsNum = b.YsNum, // 宸叉壂鏁伴噺
+ // 淇濈暀鍏朵粬蹇呰瀛楁...
+ Pid = b.Pid,
+ ItemId = b.ItemId,
+ Guid = b.Guid
+ })
+ .ToList();
+
+ return result;
+ }
+
+ /// <summary>
+ /// 鎵弿鏉$爜杩涜璋冩嫧鍑哄簱澶勭悊
+ /// </summary>
+ /// <param name="query">鍖呭惈鍗曟嵁鍙枫�佺敤鎴峰悕鍜屾潯鐮佷俊鎭殑鏌ヨ鍙傛暟</param>
+ /// <returns>澶勭悊鍚庣殑琛ㄥ崟鍜屽緟澶勭悊鏄庣粏鍒楄〃</returns>
+ public (WarehouseQuery form, List<TransferOutDetail> items)
+ ScanMoveBarcode(WarehouseQuery query)
+ {
+ var p_bill_no = query.billNo;
+ var c_user = query.userName;
+ var p_item_barcode = query.barcode;
+
+ var p_bill_type_id = 300; // 鍗曟嵁绫诲瀷ID
+ var p_transaction_no = 301; // 浜ゆ槗缂栧彿
+
+ // 楠岃瘉鍗曟嵁鍙�
+ if (string.IsNullOrEmpty(p_bill_no))
+ {
+ throw new Exception("璇烽�夊彇鍗曟嵁鍙凤紒");
+ }
+
+ // 鏌ヨ鍑哄簱鍗曞苟楠岃瘉鐘舵��
+ var transferOut = Db.Queryable<TransferOut>()
+ .Where(x => x.BillNo == p_bill_no && x.Status == 1)
+ .First();
+ if (transferOut == null)
+ {
+ throw new Exception("鏈壘鍒拌皟鎷ㄧ敵璇峰崟鎴栬�呰皟鎷ㄧ敵璇峰崟娌″鏍�");
+ }
+
+ // 鏌ヨ鏉$爜搴撳瓨淇℃伅骞堕獙璇�
+ var stock = Db.Queryable<MesInvItemStocks>()
+ .Where(x => x.ItemBarcode == p_item_barcode
+ && x.Quantity > 0
+ && !string.IsNullOrEmpty(x.DepotsCode))
+ .First();
+ if (stock == null)
+ {
+ throw new Exception($"搴撳瓨涓棤姝ゆ潯鐮侊紝璇锋牳瀵癸紒{p_item_barcode}");
+ }
+
+ // 楠岃瘉浠撳簱涓�鑷存��
+ if (stock.DepotsCode != transferOut.InvCode)
+ {
+ throw new Exception(
+ $"鏉$爜搴撳瓨浠撳簱{stock.DepotsCode}鍜岀敵璇蜂粨搴撲笉涓�鑷磠transferOut.InvCode}");
+ }
+
+ // 鏌ヨ鐗╂枡淇℃伅
+ var item = Db.Queryable<MesItems>()
+ .Where(x => x.Id == stock.ItemId)
+ .First();
+ if (item == null)
+ {
+ throw new Exception("鏈壘鍒扮墿鏂�");
+ }
+
+ // 鏌ヨ璋冩嫧鏄庣粏骞堕獙璇�
+ var detail = Db.Queryable<TransferOutDetail>()
+ .Where(x => x.ItemId == stock.ItemId && x.Pid == transferOut.Guid)
+ .First();
+ if (detail == null)
+ {
+ throw new Exception("鏈壘鍒版潯鐮佺墿鏂欑浉搴旂殑璋冩嫧鐢宠");
+ }
+
+ // 楠岃瘉鏁伴噺鏄惁瓒呭嚭鏈壂鏁伴噺
+ if ((detail.ShNum ?? 0) - (detail.YsNum ?? 0) < stock.Quantity)
+ {
+ throw new Exception("鏉$爜鏁伴噺澶т簬鐢宠鏈壂鏁伴噺锛岃鎷嗗垎浜嗗啀鎵爜");
+ }
+
+ // 浣跨敤浜嬪姟澶勭悊鏁版嵁鏇存柊
+ UseTransaction(db =>
+ {
+ // 鏌ヨ鐜版湁绉诲簱璁板綍
+ var existingMove = db.Queryable<MesInvItemMoves>()
+ .Where(x => x.TaskNo == p_bill_no
+ && x.TransactionNo == p_transaction_no
+ && (x.Status ?? 0) == 0)
+ .First();
+
+ var commit = 0; // 璁板綍鏇存柊鎿嶄綔娆℃暟
+ var c_id = Guid.Empty;
+
+ // 澶勭悊绉诲簱涓昏〃璁板綍
+ if (existingMove != null)
+ {
+ // 鏇存柊鐜版湁璁板綍鐨勬渶鍚庝慨鏀逛俊鎭�
+ commit += db.Updateable<MesInvItemMoves>()
+ .SetColumns(s => s.LastupdateDate == DateTime.Now)
+ .SetColumns(s => s.LastupdateBy == c_user)
+ .Where(s => s.Guid == existingMove.Guid)
+ .ExecuteCommand();
+
+ c_id = existingMove.Guid;
+ }
+ else
+ {
+ // 鏌ヨ鐩稿叧浠撳簱淇℃伅
+ var mesDepots = db.Queryable<MesDepots>()
+ .Where(s => s.DepotCode == transferOut.FromCode)
+ .First();
+
+ var invMesDepots = db.Queryable<MesDepots>()
+ .Where(s => s.DepotCode == transferOut.InvCode)
+ .First();
+
+ c_id = Guid.NewGuid();
+
+ // 鍒涘缓鏂扮殑绉诲簱璁板綍
+ var newMove = new MesInvItemMoves
+ {
+ Guid = c_id,
+ BillNo = BillNo.GetBillNo("DBCKD"),
+ CreateBy = c_user,
+ CreateDate = DateTime.Now,
+ BillTypeId = p_bill_type_id,
+ TransactionNo = p_transaction_no,
+ InvDepotSectionsId = mesDepots.DepotId,
+ // InvDepotSectionsCode = transferOut.FromCode,
+ // FromDepotsCode = transferOut.InvCode,
+ FromDepotsId = invMesDepots.DepotId.ToString(),
+ TaskNo = p_bill_no
+ };
+ commit += db.Insertable(newMove).IgnoreColumns(true)
+ .ExecuteCommand();
+ }
+
+ // 鍐欏叆鑰佹潯鐮佷氦鏄撴槑缁�
+ var business = new MesInvBusiness2
+ {
+ Guid = Guid.NewGuid(),
+ Status = 1,
+ BillTypeId = p_bill_type_id,
+ TransactionCode = p_transaction_no.ToString(),
+ BusinessType = -1,
+ ItemBarcode = p_item_barcode,
+ ItemNo = item.ItemNo,
+ LotNo = stock.LotNo,
+ EpFlag = true,
+ Quantity = stock.Quantity,
+ FromInvDepotsCode = stock.DepotsCode,
+ FromInvDepotSectionsCode = stock.DepotSectionsCode,
+ ToInvDepotsCode = transferOut.FromCode,
+ ToInvDepotSectionsCode = stock.DepotSectionsCode,
+ CreateBy = c_user,
+ CreateDate = DateTime.Now,
+ LastupdateBy = c_user,
+ LastupdateDate = DateTime.Now,
+ Factory = stock.Factory,
+ Company = stock.Company,
+ TaskNo = stock.TaskNo,
+ BillNo = p_bill_no,
+ WorkNo = stock.WorkNo,
+ WorkLine = stock.WorkLine,
+ SuppNo = stock.SuppNo,
+ ItemId = stock.ItemId,
+ EbelnK3id = stock.EbelnK3id,
+ LineK3id = stock.LineK3id,
+ // RkDepot = transferOut.RkDepot,
+ // CkDepot = transferOut.CkDepot
+ };
+
+ commit += db.Insertable(business).IgnoreColumns(true)
+ .ExecuteCommand();
+
+ // 鍐欏叆鏂版潯鐮佷氦鏄撴槑缁�
+ var moveDetail = new MesInvItemMovesCDetails
+ {
+ Guid = Guid.NewGuid(),
+ ItemMoveGuid = c_id,
+ ItemBarcode = p_item_barcode,
+ CItemCode = stock.CItemCode,
+ ItemNo = item.ItemNo,
+ LotNo = stock.LotNo,
+ Quantity = stock.Quantity,
+ EpFlag = stock.EpFlag,
+ CreateBy = c_user,
+ CreateDate = DateTime.Now,
+ LastupdateBy = c_user,
+ LastupdateDate = DateTime.Now,
+ // CustomerNo = stock.CustomerNo,
+ TaskNo = stock.TaskNo,
+ FromDepotsCode = stock.DepotsCode,
+ FromDepotSectionsCode = stock.DepotSectionsCode,
+ Factory = stock.Factory,
+ Company = stock.Company,
+ InvDepotsCode = transferOut.FromCode,
+ // InvDepotSectionsCode = p_sectioncode,
+ IqcStatus = stock.IqcStatus,
+ Fcar = stock.Fcar,
+ IndepDate = stock.IndepDate,
+ VisableSubmit = stock.VisableSubmit,
+ VisableSubmitBy = stock.VisableSubmitBy,
+ VisableSubmitDate = stock.VisableSubmitDate,
+ BoardStyle = stock.BoardStyle,
+ WorkNo = stock.WorkNo,
+ WorkLine = stock.WorkLine,
+ SuppNo = stock.SuppNo,
+ ItemId = (int)stock.ItemId,
+ EbelnK3id = stock.EbelnK3id,
+ LineK3id = stock.LineK3id,
+ // RkDepot = transferOut.RkDepot,
+ // CkDepot = transferOut.CkDepot
+ };
+
+ commit += db.Insertable(moveDetail).IgnoreColumns(true)
+ .ExecuteCommand();
+
+ // 鏇存柊鎴栨彃鍏ュ嚭搴撴槑缁嗚褰�
+ var outItem = db.Queryable<MesInvItemOutItems>()
+ .Where(x => x.ItemOutId == c_id && x.ItemId == stock.ItemId)
+ .First();
+
+ if (outItem != null)
+ {
+ // 鏇存柊鐜版湁璁板綍鐨勬暟閲�
+ outItem.Quantity += stock.Quantity;
+ commit += db.Updateable<MesInvItemOutItems>()
+ .SetColumns(x => x.Quantity == outItem.Quantity)
+ .Where(x => x.Guid == outItem.Guid)
+ .ExecuteCommand();
+ }
+ else
+ {
+ // 鎻掑叆鏂拌褰�
+ var newOutItem = new MesInvItemOutItems
+ {
+ Guid = Guid.NewGuid(),
+ ItemOutId = c_id,
+ ItemId = stock.ItemId,
+ CreateBy = c_user,
+ CreateDate = DateTime.Now,
+ TaskNo = stock.TaskNo,
+ WorkNo = stock.WorkNo,
+ WorkLine = stock.WorkLine,
+ EbelnK3id = (int)stock.EbelnK3id,
+ LineK3id = (int)stock.LineK3id,
+ Quantity = stock.Quantity,
+ // Unit = stock.ItemUnit
+ };
+
+ commit += db.Insertable(newOutItem).IgnoreColumns(true)
+ .ExecuteCommand();
+ }
+
+ // 鏇存柊璋冩嫧鐢宠宸叉壂鏁伴噺
+ detail = db.Queryable<TransferOutDetail>()
+ .Where(x => x.Guid == detail.Guid)
+ .First();
+
+ if (detail != null)
+ {
+ detail.YsNum = (detail.YsNum ?? 0) + stock.Quantity as int?;
+ commit += db.Updateable<TransferOutDetail>()
+ .SetColumns(x => x.YsNum == detail.YsNum)
+ .Where(x => x.Guid == detail.Guid)
+ .ExecuteCommand();
+ }
+
+ // 妫�鏌ユ槸鍚︽墍鏈夋槑缁嗛兘宸插畬鎴�
+ var totals = db.Queryable<TransferOutDetail, TransferOut>((b, a) =>
+ new JoinQueryInfos(JoinType.Left, b.Pid == a.Guid))
+ .Where((b, a) => a.BillNo == p_bill_no)
+ .Select((b, a) => new {
+ ShNum = SqlFunc.AggregateSum(b.ShNum), // 鐢宠鎬绘暟閲�
+ YsNum = SqlFunc.AggregateSum(b.YsNum) // 宸叉壂鎬绘暟閲�
+ })
+ .First();
+
+ // 濡傛灉鐢宠鏁伴噺绛変簬宸叉壂鏁伴噺锛屾洿鏂板崟鎹畬鎴愮姸鎬�
+ if (totals.ShNum == totals.YsNum)
+ {
+ commit += db.Updateable<TransferOut>()
+ .SetColumns(x => x.IsWc == 1)
+ .Where(x => x.BillNo == p_bill_no)
+ .ExecuteCommand();
+ }
+
+ // 鏇存柊杩斿洖鍙傛暟
+ query.itemNo = item.ItemNo;
+ query.Num = stock.Quantity;
+
+ // 楠岃瘉鏇存柊鎿嶄綔鏄惁鍏ㄩ儴鎴愬姛
+ if (commit < 4)
+ {
+ throw new Exception("鏇存柊澶辫触");
+ }
+
+ return commit;
+ });
+
+ // 杩斿洖鏇存柊鍚庣殑琛ㄥ崟鍜屽緟澶勭悊鏄庣粏
+ return (query, GetTransferOutDetailListByBillNo(query));
+ }
+}
\ No newline at end of file
--
Gitblit v1.9.3