From 8685c8e96eeeaa262044f0fdc7827e645f5e22a0 Mon Sep 17 00:00:00 2001 From: 啊鑫 <t2856754968@163.com> Date: 星期一, 23 十二月 2024 21:50:07 +0800 Subject: [PATCH] 111 --- service/Warehouse/MesItemTblManager.cs | 169 +- entity/MesInvItemBarcodes.cs | 4 Dto/service/WarehouseQuery.cs | 1 entity/MesItemTblDetail.cs | 9 Controllers/Warehouse/MesItemBlController.cs | 374 ++++++ Controllers/Warehouse/MesItemTblController.cs | 14 entity/MesItemBl.cs | 155 ++ Dto/service/PendingMaterialDto.cs | 32 service/Warehouse/MesItemBlDetailManager.cs | 11 entity/MesInvItemOutItems.cs | 5 util/BillNo.cs | 7 service/Warehouse/MesItemBlManager.cs | 1733 +++++++++++++++++++++++++++++ Controllers/Warehouse/MesItemBlDetailController.cs | 162 ++ entity/Womdab.cs | 166 +- entity/Womdaa.cs | 329 ++-- entity/MesInvBusiness2.cs | 167 +- entity/MesItemBlDetail.cs | 143 ++ 17 files changed, 3,051 insertions(+), 430 deletions(-) diff --git a/Controllers/Warehouse/MesItemBlController.cs b/Controllers/Warehouse/MesItemBlController.cs new file mode 100644 index 0000000..026fdca --- /dev/null +++ b/Controllers/Warehouse/MesItemBlController.cs @@ -0,0 +1,374 @@ +锘縰sing System.Dynamic; +using Microsoft.AspNetCore.Mvc; +using NewPdaSqlServer.Dto.service; +using NewPdaSqlServer.entity; +using NewPdaSqlServer.service.Warehouse; +using NewPdaSqlServer.util; + +namespace NewPdaSqlServer.Controllers.Warehouse; + +/// <summary> +/// 鐢熶骇琛ユ枡鐩稿叧鎺ュ彛 +/// </summary> +[Route("api/[controller]")] +[ApiController] +public class MesItemBlController : ControllerBase +{ + private readonly MesItemBlManager _manager = new(); + + /***杩涘叆妯$増绠$悊鍙互淇敼妯$増***/ + + /// <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); + } + } + + /// <summary> + /// 鏍规嵁涓婚敭鑾峰彇 + /// </summary> + /// <returns></returns> + [HttpPost("GetById")] + public ResponseResult GetById(int id) + { + try + { + dynamic resultInfos = new ExpandoObject(); + resultInfos.tbBillList = _manager.GetById(id); + return new ResponseResult + { + status = 0, + message = "OK", + data = resultInfos + }; + } + catch (Exception ex) + { + return ResponseResult.ResponseError(ex); + } + } + + /// <summary> + /// 鏍规嵁涓婚敭鍒犻櫎 + /// </summary> + /// <returns></returns> + [HttpPost("DeleteByIds")] + public ResponseResult DeleteByIds([FromBody] object[] ids) + { + try + { + dynamic resultInfos = new ExpandoObject(); + resultInfos.tbBillList = _manager.DeleteByIds(ids); + return new ResponseResult + { + status = 0, + message = "OK", + data = resultInfos + }; + } + catch (Exception ex) + { + return ResponseResult.ResponseError(ex); + } + } + + /// <summary> + /// 娣诲姞 + /// </summary> + /// <returns></returns> + [HttpPost("Insert")] + public ResponseResult Add([FromBody] MesItemBl data) + { + try + { + dynamic resultInfos = new ExpandoObject(); + resultInfos.tbBillList = _manager.Insert(data); + return new ResponseResult + { + status = 0, + message = "OK", + data = resultInfos + }; + } + catch (Exception ex) + { + return ResponseResult.ResponseError(ex); + } + } + + /// <summary> + /// 娣诲姞杩斿洖鑷 + /// </summary> + /// <returns></returns> + [HttpPost("InsertReturnIdentity")] + public ResponseResult InsertReturnIdentity([FromBody] MesItemBl data) + { + try + { + dynamic resultInfos = new ExpandoObject(); + resultInfos.tbBillList = _manager.InsertReturnIdentity(data); + return new ResponseResult + { + status = 0, + message = "OK", + data = resultInfos + }; + } + catch (Exception ex) + { + return ResponseResult.ResponseError(ex); + } + } + + /// <summary> + /// 淇敼 + /// </summary> + /// <returns></returns> + [HttpPost("Update")] + public ResponseResult Update([FromBody] MesItemBl data) + { + try + { + dynamic resultInfos = new ExpandoObject(); + resultInfos.tbBillList = _manager.Update(data); + return new ResponseResult + { + status = 0, + message = "OK", + data = resultInfos + }; + } + catch (Exception ex) + { + return ResponseResult.ResponseError(ex); + } + } + + #region 鐢熶骇琛ユ枡 + + /// <summary> + /// 鑾峰彇鐢熶骇琛ユ枡鍗曞彿鍒楄〃 + /// </summary> + /// <returns>琛ユ枡鍗曞彿鍒楄〃</returns> + /// <response code="200">鎴愬姛鑾峰彇琛ユ枡鍗曞彿鍒楄〃</response> + /// <response code="400">鑾峰彇澶辫触</response> + [HttpPost("GetSCBLBillNo")] + public ResponseResult GetSCBLBillNo() + { + try + { + dynamic resultInfos = new ExpandoObject(); + resultInfos.tbBillList = _manager.GetSCBLBillNo(); + return new ResponseResult + { + status = 0, + message = "OK", + data = resultInfos + }; + } + catch (Exception ex) + { + return ResponseResult.ResponseError(ex); + } + } + + /// <summary> + /// 鏍规嵁鍗曞彿鑾峰彇鐢熶骇琛ユ枡鍗曟槑缁� + /// </summary> + /// <param name="query">鏌ヨ鍙傛暟锛屽繀椤诲寘鍚玝illNo</param> + /// <returns>琛ユ枡鍗曟槑缁嗗垪琛�</returns> + /// <remarks> + /// 璇锋眰绀轰緥: + /// + /// POST /api/MesItemBl/GetMesItemBlDetailByBillNo + /// { + /// "billNo": "BL202401010001" + /// } + /// </remarks> + /// <response code="200">鎴愬姛鑾峰彇琛ユ枡鍗曟槑缁�</response> + /// <response code="400">鑾峰彇澶辫触锛屽彲鑳芥槸鍗曟嵁鍙蜂笉瀛樺湪鎴栧凡瀹屾垚</response> + [HttpPost("GetMesItemBlDetailByBillNo")] + public ResponseResult GetMesItemBlDetailByBillNo([FromBody] WarehouseQuery query) + { + try + { + dynamic resultInfos = new ExpandoObject(); + resultInfos.tbBillList = _manager.GetMesItemBlDetailByBillNo(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/MesItemBl/SctlScanBarcode + /// { + /// "billNo": "WO202401010001", + /// "barcode": "1234567890", + /// "userName": "admin", + /// "blNo": "BL202401010001" + /// } + /// </remarks> + /// <response code="200">鎵弿鎴愬姛</response> + /// <response code="400">鎵弿澶辫触锛岃繑鍥炲叿浣撻敊璇俊鎭�</response> + [HttpPost("SctlScanBarcode")] + public ResponseResult SctlScanBarcode([FromBody] WarehouseQuery query) + { + try + { + dynamic resultInfos = new ExpandoObject(); + var (success, pendingList) = _manager.SctlScanBarcode(query); + resultInfos.success = success; + resultInfos.pendingList = pendingList; + return new ResponseResult + { + status = 0, + message = "OK", + data = resultInfos + }; + } + catch (Exception ex) + { + return ResponseResult.ResponseError(ex); + } + } + + #endregion + + #region 鐢熶骇瓒呴 + + /// <summary> + /// 鑾峰彇鐢熶骇瓒呴鍗曞彿鍒楄〃 + /// </summary> + /// <returns>瓒呴鍗曞彿鍒楄〃</returns> + /// <response code="200">鎴愬姛鑾峰彇瓒呴鍗曞彿鍒楄〃</response> + /// <response code="400">鑾峰彇澶辫触</response> + [HttpPost("GetSccList")] + public ResponseResult GetSccList() + { + try + { + dynamic resultInfos = new ExpandoObject(); + resultInfos.tbBillList = _manager.GetSccList(); + return new ResponseResult + { + status = 0, + message = "OK", + data = resultInfos + }; + } + catch (Exception ex) + { + return ResponseResult.ResponseError(ex); + } + } + + /// <summary> + /// 鑾峰彇鐢熶骇瓒呴鍗曟槑缁� + /// </summary> + /// <param name="query">鏌ヨ鍙傛暟锛屽繀椤诲寘鍚玝illNo</param> + /// <returns>瓒呴鍗曟槑缁嗗垪琛�</returns> + /// <remarks> + /// 璇锋眰绀轰緥: + /// + /// POST /api/MesItemBl/GetMesItemBlDetailBySccBillNo + /// { + /// "billNo": "SC202401010001" + /// } + /// </remarks> + /// <response code="200">鎴愬姛鑾峰彇瓒呴鍗曟槑缁�</response> + /// <response code="400">鑾峰彇澶辫触锛岃繑鍥炲叿浣撻敊璇俊鎭�</response> + [HttpPost("GetMesItemBlDetailBySccBillNo")] + public ResponseResult GetMesItemBlDetailBySccBillNo([FromBody] WarehouseQuery query) + { + try + { + dynamic resultInfos = new ExpandoObject(); + resultInfos.tbBillList = _manager.GetMesItemBlDetailBySccBillNo(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/MesItemBl/ScanBarcodeForOverPicking + /// { + /// "billNo": "WO202401010001", + /// "barcode": "1234567890", + /// "userName": "admin", + /// "blNo": "SC202401010001" + /// } + /// </remarks> + /// <response code="200">鎵弿鎴愬姛</response> + /// <response code="400">鎵弿澶辫触锛岃繑鍥炲叿浣撻敊璇俊鎭�</response> + [HttpPost("ScanBarcodeForOverPicking")] + public ResponseResult ScanBarcodeForOverPicking([FromBody] WarehouseQuery query) + { + try + { + dynamic resultInfos = new ExpandoObject(); + var (success, pendingList) = _manager.ScanBarcodeForOverPicking(query); + resultInfos.success = success; + resultInfos.pendingList = pendingList; + 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/Controllers/Warehouse/MesItemBlDetailController.cs b/Controllers/Warehouse/MesItemBlDetailController.cs new file mode 100644 index 0000000..f198257 --- /dev/null +++ b/Controllers/Warehouse/MesItemBlDetailController.cs @@ -0,0 +1,162 @@ +锘縰sing System.Dynamic; +using Microsoft.AspNetCore.Mvc; +using NewPdaSqlServer.entity; +using NewPdaSqlServer.service.Warehouse; +using NewPdaSqlServer.util; + +namespace NewPdaSqlServer.Controllers.Warehouse; + +[ApiController] +[Route("api/[controller]")] +public class MesItemBlDetailController : ControllerBase +{ + private readonly MesItemBlDetailManager m = new(); + + + /***杩涘叆妯$増绠$悊鍙互淇敼妯$増***/ + + /// <summary> + /// 鑾峰彇鎵�鏈� + /// </summary> + /// <returns></returns> + [HttpPost("GetList")] + public ResponseResult GetList() + { + try + { + dynamic resultInfos = new ExpandoObject(); + resultInfos.tbBillList = m.GetList(); + return new ResponseResult + { + status = 0, + message = "OK", + data = resultInfos + }; + } + catch (Exception ex) + { + return ResponseResult.ResponseError(ex); + } + } + + + /// <summary> + /// 鏍规嵁涓婚敭鑾峰彇 + /// </summary> + /// <returns></returns> + [HttpPost("GetById")] + public ResponseResult GetById(int id) + { + try + { + dynamic resultInfos = new ExpandoObject(); + resultInfos.tbBillList = m.GetById(id); + return new ResponseResult + { + status = 0, + message = "OK", + data = resultInfos + }; + } + catch (Exception ex) + { + return ResponseResult.ResponseError(ex); + } + } + + /// <summary> + /// 鏍规嵁涓婚敭鍒犻櫎 + /// </summary> + /// <returns></returns> + [HttpPost("DeleteByIds")] + public ResponseResult DeleteByIds([FromBody] object[] ids) + { + try + { + dynamic resultInfos = new ExpandoObject(); + resultInfos.tbBillList = m.DeleteByIds(ids); + return new ResponseResult + { + status = 0, + message = "OK", + data = resultInfos + }; + } + catch (Exception ex) + { + return ResponseResult.ResponseError(ex); + } + } + + /// <summary> + /// 娣诲姞 + /// </summary> + /// <returns></returns> + [HttpPost("Insert")] + public ResponseResult Add([FromBody] MesItemBlDetail data) + { + try + { + dynamic resultInfos = new ExpandoObject(); + resultInfos.tbBillList = m.Insert(data); + return new ResponseResult + { + status = 0, + message = "OK", + data = resultInfos + }; + } + catch (Exception ex) + { + return ResponseResult.ResponseError(ex); + } + } + + /// <summary> + /// 娣诲姞杩斿洖鑷 + /// </summary> + /// <returns></returns> + [HttpPost("InsertReturnIdentity")] + public ResponseResult InsertReturnIdentity([FromBody] MesItemBlDetail data) + { + try + { + dynamic resultInfos = new ExpandoObject(); + resultInfos.tbBillList = m.InsertReturnIdentity(data); + return new ResponseResult + { + status = 0, + message = "OK", + data = resultInfos + }; + } + catch (Exception ex) + { + return ResponseResult.ResponseError(ex); + } + } + + /// <summary> + /// 淇敼 + /// </summary> + /// <returns></returns> + [HttpPost("Update")] + public ResponseResult Update([FromBody] MesItemBlDetail data) + { + try + { + dynamic resultInfos = new ExpandoObject(); + resultInfos.tbBillList = m.Update(data); + return new ResponseResult + { + status = 0, + message = "OK", + data = resultInfos + }; + } + catch (Exception ex) + { + return ResponseResult.ResponseError(ex); + } + } +} \ No newline at end of file diff --git a/Controllers/Warehouse/MesItemTblController.cs b/Controllers/Warehouse/MesItemTblController.cs index 6a06111..347c52b 100644 --- a/Controllers/Warehouse/MesItemTblController.cs +++ b/Controllers/Warehouse/MesItemTblController.cs @@ -8,9 +8,8 @@ namespace NewPdaSqlServer.Controllers.Warehouse; /// <summary> -/// 鐢熶骇閫�鏂欑浉鍏虫帴鍙� +/// 鐢熶骇閫�鏂欑浉鍏虫帴鍙� /// </summary> - [Route("api/[controller]")] [ApiController] public class MesItemTblController : ControllerBase @@ -166,7 +165,7 @@ // 鏂板鐨勬柟娉� /// <summary> - /// 鑾峰彇鐢熶骇閫�鏂欏崟鍙峰垪琛� + /// 鑾峰彇鐢熶骇閫�鏂欏崟鍙峰垪琛� /// </summary> /// <returns>閫�鏂欏崟鍙峰垪琛�</returns> [HttpPost("GetSCTLBillNo")] @@ -190,12 +189,13 @@ } /// <summary> - /// 鏍规嵁鍗曞彿鑾峰彇鐢熶骇閫�鏂欏崟鏄庣粏 + /// 鏍规嵁鍗曞彿鑾峰彇鐢熶骇閫�鏂欏崟鏄庣粏 /// </summary> /// <param name="query">鏌ヨ鍙傛暟</param> /// <returns>閫�鏂欏崟鏄庣粏鍒楄〃</returns> [HttpPost("GetMesItemTblDetailByBillNo")] - public ResponseResult GetMesItemTblDetailByBillNo([FromBody] WarehouseQuery query) + public ResponseResult GetMesItemTblDetailByBillNo( + [FromBody] WarehouseQuery query) { try { @@ -215,7 +215,7 @@ } /// <summary> - /// 鎵弿搴撲綅 + /// 鎵弿搴撲綅 /// </summary> /// <param name="query">鏌ヨ鍙傛暟</param> /// <returns>搴撲綅淇℃伅</returns> @@ -240,7 +240,7 @@ } /// <summary> - /// 鎵弿鏉$爜 + /// 鎵弿鏉$爜 /// </summary> /// <param name="query">鏌ヨ鍙傛暟</param> /// <returns>鎵弿缁撴灉</returns> diff --git a/Dto/service/PendingMaterialDto.cs b/Dto/service/PendingMaterialDto.cs new file mode 100644 index 0000000..d9363da --- /dev/null +++ b/Dto/service/PendingMaterialDto.cs @@ -0,0 +1,32 @@ +namespace NewPdaSqlServer.Dto.service; + +/// <summary> +/// 寰呭鐞嗙墿鏂欎俊鎭疍TO +/// </summary> +public class PendingMaterialDto +{ + /// <summary> + /// 搴撲綅缂栫爜 + /// </summary> + public string SectionCode { get; set; } + + /// <summary> + /// 鐗╂枡缂栧彿 + /// </summary> + public string ItemNo { get; set; } + + /// <summary> + /// 鐗╂枡鍚嶇О + /// </summary> + public string ItemName { get; set; } + + /// <summary> + /// 鐗╂枡瑙勬牸 + /// </summary> + public string ItemSpec { get; set; } + + /// <summary> + /// 寰呭鐞嗘暟閲� + /// </summary> + public decimal PendingQty { get; set; } +} \ No newline at end of file diff --git a/Dto/service/WarehouseQuery.cs b/Dto/service/WarehouseQuery.cs index 6e543bd..103d606 100644 --- a/Dto/service/WarehouseQuery.cs +++ b/Dto/service/WarehouseQuery.cs @@ -4,6 +4,7 @@ public class WarehouseQuery : Page { + public string? blNo { get; set; } //琛ユ枡鍗曞彿 public string? id { get; set; } public string? sectionCode { get; set; } public string? barcode { get; set; } diff --git a/entity/MesInvBusiness2.cs b/entity/MesInvBusiness2.cs index 234b1dd..04db7d7 100644 --- a/entity/MesInvBusiness2.cs +++ b/entity/MesInvBusiness2.cs @@ -9,250 +9,249 @@ public class MesInvBusiness2 { /// <summary> - /// ID(seq_inv_id) - /// 榛樿鍊�: (newid()) - ///</summary> + /// ID(seq_inv_id) + /// 榛樿鍊�: (newid()) + /// </summary> [SugarColumn(ColumnName = "guid", IsPrimaryKey = true)] public Guid Guid { get; set; } /// <summary> - /// 鐘舵�亅0-鏈氦鏄�1-宸蹭氦鏄� - ///</summary> + /// 鐘舵�亅0-鏈氦鏄�1-宸蹭氦鏄� + /// </summary> [SugarColumn(ColumnName = "STATUS")] public long? Status { get; set; } /// <summary> - /// 鍗曟嵁绫诲瀷ID - ///</summary> + /// 鍗曟嵁绫诲瀷ID + /// </summary> [SugarColumn(ColumnName = "BILL_TYPE_ID")] public long? BillTypeId { get; set; } /// <summary> - /// 浜嬪姟绫诲瀷缂栫爜 - ///</summary> + /// 浜嬪姟绫诲瀷缂栫爜 + /// </summary> [SugarColumn(ColumnName = "TRANSACTION_CODE")] public string? TransactionCode { get; set; } /// <summary> - /// 浜ゆ槗绫诲瀷|1-鍏ュ簱0-杞簱-1鍑哄簱 - ///</summary> + /// 浜ゆ槗绫诲瀷|1-鍏ュ簱0-杞簱-1鍑哄簱 + /// </summary> [SugarColumn(ColumnName = "BUSINESS_TYPE")] public long? BusinessType { get; set; } /// <summary> - /// 鍗曟嵁ID - ///</summary> + /// 鍗曟嵁ID + /// </summary> [SugarColumn(ColumnName = "BILL_ID")] public long? BillId { get; set; } /// <summary> - /// 鍗曟嵁缂栫爜 - ///</summary> + /// 鍗曟嵁缂栫爜 + /// </summary> [SugarColumn(ColumnName = "BILL_NO")] public string? BillNo { get; set; } /// <summary> - /// 鐢熶骇璁㈠崟鍙� - ///</summary> + /// 鐢熶骇璁㈠崟鍙� + /// </summary> [SugarColumn(ColumnName = "TASK_NO")] public string? TaskNo { get; set; } /// <summary> - /// 瀹㈡埛缂栧彿 - ///</summary> + /// 瀹㈡埛缂栧彿 + /// </summary> [SugarColumn(ColumnName = "CUSTOMER_NO")] public string? CustomerNo { get; set; } /// <summary> - /// 鍗曟嵁琛孖D - ///</summary> + /// 鍗曟嵁琛孖D + /// </summary> [SugarColumn(ColumnName = "BILL_LINE_ID")] public long? BillLineId { get; set; } /// <summary> - /// 鐗╂枡鏉$爜 - ///</summary> + /// 鐗╂枡鏉$爜 + /// </summary> [SugarColumn(ColumnName = "ITEM_BARCODE")] public string? ItemBarcode { get; set; } /// <summary> - /// 鏈徃鐗╂枡缂栫爜 - ///</summary> + /// 鏈徃鐗╂枡缂栫爜 + /// </summary> [SugarColumn(ColumnName = "ITEM_NO")] public string? ItemNo { get; set; } /// <summary> - /// 瀹㈡埛鐗╂枡缂栫爜 - ///</summary> + /// 瀹㈡埛鐗╂枡缂栫爜 + /// </summary> [SugarColumn(ColumnName = "C_ITEM_CODE")] public string? CItemCode { get; set; } /// <summary> - /// 鍘傚鎵规 - ///</summary> + /// 鍘傚鎵规 + /// </summary> [SugarColumn(ColumnName = "LOT_NO")] public string? LotNo { get; set; } /// <summary> - /// 鏄惁鐜繚(0:鍚�,1:鏄�) - ///</summary> + /// 鏄惁鐜繚(0:鍚�,1:鏄�) + /// </summary> [SugarColumn(ColumnName = "EP_FLAG")] public bool? EpFlag { get; set; } /// <summary> - /// 鏁伴噺 - ///</summary> + /// 鏁伴噺 + /// </summary> [SugarColumn(ColumnName = "QUANTITY")] public decimal? Quantity { get; set; } /// <summary> - /// 婧愬瓙搴揅ODE - ///</summary> + /// 婧愬瓙搴揅ODE + /// </summary> [SugarColumn(ColumnName = "FROM_INV_DEPOTS_CODE")] public string? FromInvDepotsCode { get; set; } /// <summary> - /// 婧愯揣浣岰ODE - ///</summary> + /// 婧愯揣浣岰ODE + /// </summary> [SugarColumn(ColumnName = "FROM_INV_DEPOT_SECTIONS_CODE")] public string? FromInvDepotSectionsCode { get; set; } /// <summary> - /// 鐩殑瀛愬簱CODE - ///</summary> + /// 鐩殑瀛愬簱CODE + /// </summary> [SugarColumn(ColumnName = "TO_INV_DEPOTS_CODE")] public string? ToInvDepotsCode { get; set; } /// <summary> - /// 鐩殑璐т綅CODE - ///</summary> + /// 鐩殑璐т綅CODE + /// </summary> [SugarColumn(ColumnName = "TO_INV_DEPOT_SECTIONS_CODE")] public string? ToInvDepotSectionsCode { get; set; } /// <summary> - /// 浜ゆ槗寮傚父淇℃伅 - ///</summary> + /// 浜ゆ槗寮傚父淇℃伅 + /// </summary> [SugarColumn(ColumnName = "DESCRIPTION")] public string? Description { get; set; } /// <summary> - /// 鍒涘缓浜� - ///</summary> + /// 鍒涘缓浜� + /// </summary> [SugarColumn(ColumnName = "CREATE_BY")] public string? CreateBy { get; set; } /// <summary> - /// 鍒涘缓鏃堕棿 - ///</summary> + /// 鍒涘缓鏃堕棿 + /// </summary> [SugarColumn(ColumnName = "CREATE_DATE")] public DateTime? CreateDate { get; set; } /// <summary> - /// 鏈�鍚庢洿鏂颁汉 - ///</summary> + /// 鏈�鍚庢洿鏂颁汉 + /// </summary> [SugarColumn(ColumnName = "LASTUPDATE_BY")] public string? LastupdateBy { get; set; } /// <summary> - /// 鏈�鍚庢洿鏂版椂闂� - ///</summary> + /// 鏈�鍚庢洿鏂版椂闂� + /// </summary> [SugarColumn(ColumnName = "LASTUPDATE_DATE")] public DateTime? LastupdateDate { get; set; } /// <summary> - /// 瓒呮崯缁熻鏍囪瘑 - /// 榛樿鍊�: ((0)) - ///</summary> + /// 瓒呮崯缁熻鏍囪瘑 + /// 榛樿鍊�: ((0)) + /// </summary> [SugarColumn(ColumnName = "ULLAGE_STAT_FLAG")] public bool? UllageStatFlag { get; set; } /// <summary> - /// 鍒嗗巶缂栫爜 - ///</summary> + /// 鍒嗗巶缂栫爜 + /// </summary> [SugarColumn(ColumnName = "FACTORY")] public string? Factory { get; set; } /// <summary> - /// 鍏徃浠g爜 - ///</summary> + /// 鍏徃浠g爜 + /// </summary> [SugarColumn(ColumnName = "COMPANY")] public string? Company { get; set; } /// <summary> - /// 绠卞彿鏉$爜 - ///</summary> + /// 绠卞彿鏉$爜 + /// </summary> [SugarColumn(ColumnName = "ITEM_BARCODE2")] public string? ItemBarcode2 { get; set; } /// <summary> - /// 鍗℃澘鏉$爜 - ///</summary> + /// 鍗℃澘鏉$爜 + /// </summary> [SugarColumn(ColumnName = "ITEM_BARCODE3")] public string? ItemBarcode3 { get; set; } /// <summary> - /// 浠诲姟鍗曞彿 - ///</summary> + /// 浠诲姟鍗曞彿 + /// </summary> [SugarColumn(ColumnName = "WORK_NO")] public string? WorkNo { get; set; } /// <summary> - /// 浠诲姟鍗曡鍙� - ///</summary> + /// 浠诲姟鍗曡鍙� + /// </summary> [SugarColumn(ColumnName = "WORK_LINE")] public int? WorkLine { get; set; } /// <summary> - /// 渚涘簲鍟� - ///</summary> + /// 渚涘簲鍟� + /// </summary> [SugarColumn(ColumnName = "SUPP_NO")] public string? SuppNo { get; set; } /// <summary> - /// 鐢熶骇绾� - ///</summary> + /// 鐢熶骇绾� + /// </summary> [SugarColumn(ColumnName = "LINE_NO")] public string? LineNo { get; set; } /// <summary> - /// 閲囪喘璁㈠崟id - ///</summary> + /// 閲囪喘璁㈠崟id + /// </summary> [SugarColumn(ColumnName = "EBELN_K3ID")] public long? EbelnK3id { get; set; } /// <summary> - /// 閲囪喘璁㈠崟琛宨d - ///</summary> + /// 閲囪喘璁㈠崟琛宨d + /// </summary> [SugarColumn(ColumnName = "LINE_K3ID")] public long? LineK3id { get; set; } /// <summary> - /// 鐗╂枡ID - ///</summary> + /// 鐗╂枡ID + /// </summary> [SugarColumn(ColumnName = "ITEM_ID")] public long? ItemId { get; set; } /// <summary> - /// - ///</summary> + /// </summary> [SugarColumn(ColumnName = "SUPP_ID")] public string? SuppId { get; set; } /// <summary> - /// 婧愪粨搴揑D - ///</summary> + /// 婧愪粨搴揑D + /// </summary> [SugarColumn(ColumnName = "FROM_DEPOT_ID")] public int? FromDepotId { get; set; } /// <summary> - /// 鐩殑浠撳簱ID - ///</summary> + /// 鐩殑浠撳簱ID + /// </summary> [SugarColumn(ColumnName = "INV_DEPOT_ID")] public int? InvDepotId { get; set; } /// <summary> - /// mes鍗曟嵁鏄庣粏琛宨d - ///</summary> + /// mes鍗曟嵁鏄庣粏琛宨d + /// </summary> [SugarColumn(ColumnName = "MES_LINE")] public Guid? MesLine { get; set; } } \ No newline at end of file diff --git a/entity/MesInvItemBarcodes.cs b/entity/MesInvItemBarcodes.cs index 142865a..3fb8c2d 100644 --- a/entity/MesInvItemBarcodes.cs +++ b/entity/MesInvItemBarcodes.cs @@ -192,7 +192,7 @@ /// 鎵规鏃ユ湡 /// </summary> [SugarColumn(ColumnName = "LOT_DATE")] - public string? LotDate { get; set; } + public DateTime? LotDate { get; set; } /// <summary> /// 鎴愬搧鏉$爜 @@ -411,7 +411,7 @@ /// 榛樿鍊�: ((0)) /// </summary> [SugarColumn(ColumnName = "COME_FLG")] - public bool? ComeFlg { get; set; } + public short? ComeFlg { get; set; } /// <summary> /// 琛屽彿 diff --git a/entity/MesInvItemOutItems.cs b/entity/MesInvItemOutItems.cs index 6d4a2b3..0756b27 100644 --- a/entity/MesInvItemOutItems.cs +++ b/entity/MesInvItemOutItems.cs @@ -223,6 +223,11 @@ [SugarColumn(ColumnName = "item_dabid")] public int? ItemDabid { get; set; } + /// <summary> + /// 搴旇鏄埌璐ф槑缁嗚〃鐨刧uid + /// </summary> + [SugarColumn(ColumnName = "about_Guid")] + public Guid? AboutGuid { get; set; } [SugarColumn(IsIgnore = true)] public string? ItemName { get; set; } diff --git a/entity/MesItemBl.cs b/entity/MesItemBl.cs new file mode 100644 index 0000000..111e394 --- /dev/null +++ b/entity/MesItemBl.cs @@ -0,0 +1,155 @@ +锘縰sing SqlSugar; + +namespace NewPdaSqlServer.entity; + +/// <summary> +/// </summary> +[SugarTable("MES_ITEM_BL")] +public class MesItemBl +{ + /// <summary> + /// ID + /// </summary> + [SugarColumn(ColumnName = "id", IsPrimaryKey = true)] + public Guid Id { get; set; } + + /// <summary> + /// 琛ユ枡鍗曞彿 + /// </summary> + [SugarColumn(ColumnName = "bl_no")] + public string BlNo { get; set; } + + /// <summary> + /// 鐢熶骇宸ュ崟 + /// </summary> + [SugarColumn(ColumnName = "bl001")] + public string Bl001 { get; set; } + + /// <summary> + /// 浜у搧缂栧彿 + /// </summary> + [SugarColumn(ColumnName = "bl002")] + public string Bl002 { get; set; } + + /// <summary> + /// 浜ч噺 + /// </summary> + [SugarColumn(ColumnName = "bl003")] + public int? Bl003 { get; set; } + + /// <summary> + /// 鐢宠浜� + /// </summary> + [SugarColumn(ColumnName = "bl004")] + public string Bl004 { get; set; } + + /// <summary> + /// 棰嗘枡鏃ユ湡 + /// </summary> + [SugarColumn(ColumnName = "bl005")] + public DateTime? Bl005 { get; set; } + + /// <summary> + /// 瀹℃牳鏃ユ湡 + /// </summary> + [SugarColumn(ColumnName = "bl006")] + public DateTime? Bl006 { get; set; } + + /// <summary> + /// 琛ユ枡鍘熷洜 + /// </summary> + [SugarColumn(ColumnName = "bl007")] + public string Bl007 { get; set; } + + /// <summary> + /// 鍑哄簱绫诲埆锛堣ˉ鏂�,瓒呴锛� + /// </summary> + [SugarColumn(ColumnName = "bl008")] + public string Bl008 { get; set; } + + /// <summary> + /// 涓氬姟绫诲瀷 + /// </summary> + [SugarColumn(ColumnName = "bl009")] + public string Bl009 { get; set; } + + /// <summary> + /// 鍙戞枡浠� + /// </summary> + [SugarColumn(ColumnName = "bl010")] + public string Bl010 { get; set; } + + /// <summary> + /// 琛ユ枡閮ㄩ棬 + /// </summary> + [SugarColumn(ColumnName = "bl011")] + public string Bl011 { get; set; } + + /// <summary> + /// 琛ユ枡浜х嚎 + /// </summary> + [SugarColumn(ColumnName = "bl012")] + public string Bl012 { get; set; } + + /// <summary> + /// 浠诲姟鍗曞彿 + /// </summary> + [SugarColumn(ColumnName = "bl013")] + public string Bl013 { get; set; } + + /// <summary> + /// 浜у搧鍚嶇О + /// </summary> + [SugarColumn(ColumnName = "bl014")] + public string Bl014 { get; set; } + + /// <summary> + /// 浜у搧鍨嬪彿 + /// </summary> + [SugarColumn(ColumnName = "bl015")] + public string Bl015 { get; set; } + + /// <summary> + /// 瀹℃牳浜� + /// </summary> + [SugarColumn(ColumnName = "bl016")] + public string Bl016 { get; set; } + + /// <summary> + /// 涓氬姟绫诲瀷缂栫爜 + /// </summary> + [SugarColumn(ColumnName = "bl017")] + public string Bl017 { get; set; } + + /// <summary> + /// 瀹℃牳鐘舵�� + /// 榛樿鍊�: ((0)) + /// </summary> + [SugarColumn(ColumnName = "bl018")] + public bool? Bl018 { get; set; } + + /// <summary> + /// 瀹岀粨鏍囪瘑 + /// 榛樿鍊�: ((0)) + /// </summary> + [SugarColumn(ColumnName = "bl019")] + public bool? Bl019 { get; set; } + + /// <summary> + /// 浜у搧id + /// </summary> + [SugarColumn(ColumnName = "item_id")] + public int? ItemId { get; set; } + + /// <summary> + /// 瀹屾垚浜� + /// </summary> + [SugarColumn(ColumnName = "wc_user")] + public string WcUser { get; set; } + + /// <summary> + /// 瀹屾垚鏃堕棿 + /// </summary> + [SugarColumn(ColumnName = "wc_time")] + public string WcTime { get; set; } +} \ No newline at end of file diff --git a/entity/MesItemBlDetail.cs b/entity/MesItemBlDetail.cs new file mode 100644 index 0000000..7a61806 --- /dev/null +++ b/entity/MesItemBlDetail.cs @@ -0,0 +1,143 @@ +锘縰sing SqlSugar; + +namespace NewPdaSqlServer.entity; + +/// <summary> +/// </summary> +[SugarTable("MES_ITEM_BL_DETAIL")] +public class MesItemBlDetail +{ + /// <summary> + /// ID + /// </summary> + [SugarColumn(ColumnName = "id", IsPrimaryKey = true)] + public Guid Id { get; set; } + + /// <summary> + /// MID + /// </summary> + [SugarColumn(ColumnName = "mid")] + public Guid? Mid { get; set; } + + /// <summary> + /// 宸ュ崟鍙� + /// </summary> + [SugarColumn(ColumnName = "bld001")] + public string Bld001 { get; set; } + + /// <summary> + /// 鐗╂枡缂栧彿 + /// </summary> + [SugarColumn(ColumnName = "bld002")] + public string Bld002 { get; set; } + + /// <summary> + /// 鐗╂枡鍚嶇О + /// </summary> + [SugarColumn(ColumnName = "bld003")] + public string Bld003 { get; set; } + + /// <summary> + /// 瑙勬牸鍨嬪彿 + /// </summary> + [SugarColumn(ColumnName = "bld004")] + public string Bld004 { get; set; } + + /// <summary> + /// 棰滆壊 + /// </summary> + [SugarColumn(ColumnName = "bld005")] + public string Bld005 { get; set; } + + /// <summary> + /// 璁″垝鏁伴噺 + /// </summary> + [SugarColumn(ColumnName = "bld006")] + public int? Bld006 { get; set; } + + /// <summary> + /// 鐢宠鏁伴噺 + /// </summary> + [SugarColumn(ColumnName = "bld007")] + public int? Bld007 { get; set; } + + /// <summary> + /// 宸查鏁伴噺 + /// 榛樿鍊�: ((0)) + /// </summary> + [SugarColumn(ColumnName = "bld008")] + public int? Bld008 { get; set; } + + /// <summary> + /// 鍗曚綅 + /// </summary> + [SugarColumn(ColumnName = "bld009")] + public string Bld009 { get; set; } + + /// <summary> + /// 澶囨敞 + /// </summary> + [SugarColumn(ColumnName = "bld010")] + public string Bld010 { get; set; } + + /// <summary> + /// 瀹岀粨鏍囪瘑 + /// 榛樿鍊�: ((0)) + /// </summary> + [SugarColumn(ColumnName = "bld011")] + public int? Bld011 { get; set; } + + /// <summary> + /// 鐗╂枡id + /// </summary> + [SugarColumn(ColumnName = "bld012")] + public int? Bld012 { get; set; } + + /// <summary> + /// 椤规 + /// </summary> + [SugarColumn(ColumnName = "bld013")] + public int? Bld013 { get; set; } + + /// <summary> + /// ERP鎶曟枡鍗曡id + /// </summary> + [SugarColumn(ColumnName = "bld014")] + public int? Bld014 { get; set; } + + /// <summary> + /// </summary> + [SugarColumn(ColumnName = "bld015")] + public string Bld015 { get; set; } + + /// <summary> + /// </summary> + [SugarColumn(ColumnName = "bld016")] + public string Bld016 { get; set; } + + /// <summary> + /// </summary> + [SugarColumn(ColumnName = "bld017")] + public string Bld017 { get; set; } + + /// <summary> + /// </summary> + [SugarColumn(ColumnName = "bld018")] + public string Bld018 { get; set; } + + /// <summary> + /// </summary> + [SugarColumn(ColumnName = "bld019")] + public string Bld019 { get; set; } + + /// <summary> + /// </summary> + [SugarColumn(ColumnName = "bld020")] + public string Bld020 { get; set; } + + /// <summary> + /// 鍏宠仈鐨刣ab琛ㄤ富閿� + /// </summary> + [SugarColumn(ColumnName = "dabGuid")] + public Guid? DabGuid { get; set; } +} \ No newline at end of file diff --git a/entity/MesItemTblDetail.cs b/entity/MesItemTblDetail.cs index 7ed7db8..5a32b40 100644 --- a/entity/MesItemTblDetail.cs +++ b/entity/MesItemTblDetail.cs @@ -95,11 +95,9 @@ [SugarColumn(ColumnName = "tld012")] public int? Tld012 { get; set; } - [SugarColumn(IsIgnore = true)] - public string? BillNo { get; set; } + [SugarColumn(IsIgnore = true)] public string? BillNo { get; set; } - [SugarColumn(IsIgnore = true)] - public string? ItemNo { get; set; } + [SugarColumn(IsIgnore = true)] public string? ItemNo { get; set; } /// <summary> /// 鐗╂枡鍚嶇О @@ -107,6 +105,5 @@ [SugarColumn(IsIgnore = true)] public string? ItemName { get; set; } - [SugarColumn(IsIgnore = true)] - public string ItemModel { get; set; } + [SugarColumn(IsIgnore = true)] public string ItemModel { get; set; } } \ No newline at end of file diff --git a/entity/Womdaa.cs b/entity/Womdaa.cs index f748c76..3d8aff8 100644 --- a/entity/Womdaa.cs +++ b/entity/Womdaa.cs @@ -8,403 +8,418 @@ public class Womdaa { /// <summary> - /// 榛樿鍊�: (newid()) - /// </summary> - [SugarColumn(ColumnName = "guid")] - public Guid? Guid { get; set; } + /// + /// 榛樿鍊�: (newid()) + ///</summary> + [SugarColumn(ColumnName = "guid", IsPrimaryKey = true)] + public Guid Guid { get; set; } /// <summary> - /// </summary> + /// + ///</summary> [SugarColumn(ColumnName = "pbaGuid")] public Guid? PbaGuid { get; set; } /// <summary> - /// </summary> + /// + ///</summary> [SugarColumn(ColumnName = "caaGuid")] public Guid? CaaGuid { get; set; } /// <summary> - /// 鑷鍒� - /// </summary> + /// 鑷鍒� + ///</summary> [SugarColumn(ColumnName = "id")] public int? Id { get; set; } /// <summary> - /// 鎺掍骇ID - /// </summary> + /// 鎺掍骇ID + ///</summary> [SugarColumn(ColumnName = "pid")] public int? Pid { get; set; } /// <summary> - /// 鍗曞彿 - /// </summary> + /// 鍗曞彿 + ///</summary> [SugarColumn(ColumnName = "daa001")] - public string Daa001 { get; set; } + public string? Daa001 { get; set; } /// <summary> - /// 浜у搧ID - /// </summary> + /// 浜у搧ID + ///</summary> [SugarColumn(ColumnName = "daa002")] - public string Daa002 { get; set; } + public string? Daa002 { get; set; } /// <summary> - /// 浜у搧鍚嶇О - /// </summary> + /// 浜у搧鍚嶇О + ///</summary> [SugarColumn(ColumnName = "daa003")] - public string Daa003 { get; set; } + public string? Daa003 { get; set; } /// <summary> - /// 浜у搧瑙勬牸 - /// </summary> + /// 浜у搧瑙勬牸 + ///</summary> [SugarColumn(ColumnName = "daa004")] - public string Daa004 { get; set; } + public string? Daa004 { get; set; } /// <summary> - /// 鍗曚綅 - /// </summary> + /// 鍗曚綅 + ///</summary> [SugarColumn(ColumnName = "daa005")] - public string Daa005 { get; set; } + public string? Daa005 { get; set; } /// <summary> - /// ERP棰勮寮�宸ユ椂闂� - /// </summary> + /// ERP棰勮寮�宸ユ椂闂� + ///</summary> [SugarColumn(ColumnName = "daa006")] public DateTime? Daa006 { get; set; } /// <summary> - /// ERP棰勮瀹屽伐鏃堕棿 - /// </summary> + /// ERP棰勮瀹屽伐鏃堕棿 + ///</summary> [SugarColumn(ColumnName = "daa007")] public DateTime? Daa007 { get; set; } /// <summary> - /// 宸ュ崟鏁伴噺 - /// </summary> + /// 宸ュ崟鏁伴噺 + ///</summary> [SugarColumn(ColumnName = "daa008")] public int? Daa008 { get; set; } /// <summary> - /// 澶囨敞 - /// </summary> + /// 澶囨敞 + ///</summary> [SugarColumn(ColumnName = "daa009")] - public string Daa009 { get; set; } + public string? Daa009 { get; set; } /// <summary> - /// 鍏ュ簱鏁伴噺 - /// </summary> + /// 鍏ュ簱鏁伴噺 + ///</summary> [SugarColumn(ColumnName = "daa010")] public int? Daa010 { get; set; } /// <summary> - /// 宸茬敓浜ч噺 - /// </summary> + /// 宸茬敓浜ч噺 + ///</summary> [SugarColumn(ColumnName = "daa011")] public int? Daa011 { get; set; } /// <summary> - /// 鎶ュ簾鏁伴噺 - /// </summary> + /// 鎶ュ簾鏁伴噺 + ///</summary> [SugarColumn(ColumnName = "daa012")] public int? Daa012 { get; set; } /// <summary> - /// 宸ヤ綔杞﹂棿 - /// </summary> + /// 宸ヤ綔杞﹂棿 + ///</summary> [SugarColumn(ColumnName = "daa013")] - public string Daa013 { get; set; } + public string? Daa013 { get; set; } /// <summary> - /// 鎶曟枡鍗曞崟鍙� - /// </summary> + /// 鎶曟枡鍗曞崟鍙� + ///</summary> [SugarColumn(ColumnName = "daa014")] - public string Daa014 { get; set; } + public string? Daa014 { get; set; } /// <summary> - /// 鐢熶骇绾垮埆 - /// </summary> + /// 鐢熶骇绾垮埆 + ///</summary> [SugarColumn(ColumnName = "daa015")] - public string Daa015 { get; set; } + public string? Daa015 { get; set; } /// <summary> - /// 瀹為檯寮�宸ユ棩 - /// </summary> + /// 瀹為檯寮�宸ユ棩 + ///</summary> [SugarColumn(ColumnName = "daa016")] public DateTime? Daa016 { get; set; } /// <summary> - /// 瀹為檯瀹屽伐鏃� - /// </summary> + /// 瀹為檯瀹屽伐鏃� + ///</summary> [SugarColumn(ColumnName = "daa017")] public DateTime? Daa017 { get; set; } /// <summary> - /// 宸ュ崟鐘舵�� - /// </summary> + /// 宸ュ崟鐘舵�� + ///</summary> [SugarColumn(ColumnName = "daa018")] - public string Daa018 { get; set; } + public string? Daa018 { get; set; } /// <summary> - /// 榻愬鐘舵�� - /// </summary> + /// 榻愬鐘舵�� + ///</summary> [SugarColumn(ColumnName = "daa019")] - public string Daa019 { get; set; } + public string? Daa019 { get; set; } /// <summary> - /// 瀹℃牳鐮� - /// </summary> + /// 瀹℃牳鐮� + ///</summary> [SugarColumn(ColumnName = "fstatus")] public int? Fstatus { get; set; } /// <summary> - /// 瀹℃牳鏃ユ湡 - /// </summary> + /// 瀹℃牳鏃ユ湡 + ///</summary> [SugarColumn(ColumnName = "check_date")] public DateTime? CheckDate { get; set; } /// <summary> - /// 瀹℃牳浜� - /// </summary> + /// 瀹℃牳浜� + ///</summary> [SugarColumn(ColumnName = "check_user")] - public string CheckUser { get; set; } + public string? CheckUser { get; set; } /// <summary> - /// 绾垮埆缂栫爜 - /// </summary> + /// 绾垮埆缂栫爜 + ///</summary> [SugarColumn(ColumnName = "daa020")] - public string Daa020 { get; set; } + public string? Daa020 { get; set; } /// <summary> - /// 浠诲姟鍗曞崟鍙� - /// </summary> + /// 浠诲姟鍗曞崟鍙� + ///</summary> [SugarColumn(ColumnName = "daa021")] - public string Daa021 { get; set; } + public string? Daa021 { get; set; } /// <summary> - /// 閫氱煡澶囨枡锛�0-鏈�氱煡锛�1-閫氱煡 - /// 榛樿鍊�: ((0)) - /// </summary> + /// 閫氱煡澶囨枡锛�0-鏈�氱煡锛�1-閫氱煡 + /// 榛樿鍊�: ((0)) + ///</summary> [SugarColumn(ColumnName = "daa022")] public int? Daa022 { get; set; } /// <summary> - /// 鐢熶骇搴忓彿 - /// </summary> + /// 鐢熶骇搴忓彿 + ///</summary> [SugarColumn(ColumnName = "daa023")] public int? Daa023 { get; set; } /// <summary> - /// 鎺掍骇鏃ユ湡 - /// </summary> + /// 鎺掍骇鏃ユ湡 + ///</summary> [SugarColumn(ColumnName = "daa024")] - public string Daa024 { get; set; } + public string? Daa024 { get; set; } /// <summary> - /// 棣栦欢鏄惁妫�楠�1-妫�楠岋紝0鏈楠� - /// </summary> + /// 棣栦欢鏄惁妫�楠�1-妫�楠岋紝0鏈楠� + ///</summary> [SugarColumn(ColumnName = "daa025")] - public string Daa025 { get; set; } + public string? Daa025 { get; set; } /// <summary> - /// 棣栦欢妫�楠岀粨鏋� - /// </summary> + /// 棣栦欢妫�楠岀粨鏋� + ///</summary> [SugarColumn(ColumnName = "daa026")] - public string Daa026 { get; set; } + public string? Daa026 { get; set; } /// <summary> - /// 宸叉姤妫�锛�0-鏈姤妫�锛�1-宸叉姤妫� - /// </summary> + /// 宸叉姤妫�锛�0-鏈姤妫�锛�1-宸叉姤妫� + ///</summary> [SugarColumn(ColumnName = "is_reportcheck")] public int? IsReportcheck { get; set; } /// <summary> - /// 鎶ユ浜� - /// </summary> + /// 鎶ユ浜� + ///</summary> [SugarColumn(ColumnName = "usname")] - public string Usname { get; set; } + public string? Usname { get; set; } /// <summary> - /// 鎶ユ鏃堕棿 - /// </summary> + /// 鎶ユ鏃堕棿 + ///</summary> [SugarColumn(ColumnName = "reporttime")] public DateTime? Reporttime { get; set; } /// <summary> - /// 鏈哄彴缂栧彿 - /// </summary> + /// 鏈哄彴缂栧彿 + ///</summary> [SugarColumn(ColumnName = "machine_no")] - public string MachineNo { get; set; } + public string? MachineNo { get; set; } /// <summary> - /// 澶囨枡瀹屾垚1-瀹屾垚锛�0鏈畬鎴� - /// </summary> + /// 澶囨枡瀹屾垚1-瀹屾垚锛�0鏈畬鎴� + ///</summary> [SugarColumn(ColumnName = "daa027")] public int? Daa027 { get; set; } /// <summary> - /// 澶囨枡瀹屾垚鏃堕棿 - /// </summary> + /// 澶囨枡瀹屾垚鏃堕棿 + ///</summary> [SugarColumn(ColumnName = "daa028")] - public string Daa028 { get; set; } + public string? Daa028 { get; set; } /// <summary> - /// 鏍囧噯宸ユ椂 - /// </summary> + /// 鏍囧噯宸ユ椂 + ///</summary> [SugarColumn(ColumnName = "prod_hour")] public int? ProdHour { get; set; } /// <summary> - /// 鍗曚汉灏忔椂浜ц兘 - /// </summary> + /// 鍗曚汉灏忔椂浜ц兘 + ///</summary> [SugarColumn(ColumnName = "person_hour_capacity")] public int? PersonHourCapacity { get; set; } /// <summary> - /// 鐞嗚鏍囦骇 - /// </summary> + /// 鐞嗚鏍囦骇 + ///</summary> [SugarColumn(ColumnName = "the_capacity")] public int? TheCapacity { get; set; } /// <summary> - /// 璁″垝鐢ㄤ汉鏁� - /// </summary> + /// 璁″垝鐢ㄤ汉鏁� + ///</summary> [SugarColumn(ColumnName = "plan_personnel")] public int? PlanPersonnel { get; set; } /// <summary> - /// 璁″垝鏍囧噯浜ц兘 - /// </summary> + /// 璁″垝鏍囧噯浜ц兘 + ///</summary> [SugarColumn(ColumnName = "plan_capacity")] public int? PlanCapacity { get; set; } /// <summary> - /// 鐞嗚鐢ㄦ椂/M - /// </summary> + /// 鐞嗚鐢ㄦ椂/M + ///</summary> [SugarColumn(ColumnName = "the_min")] public int? TheMin { get; set; } /// <summary> - /// 鐞嗚鐢ㄦ椂/H - /// </summary> + /// 鐞嗚鐢ㄦ椂/H + ///</summary> [SugarColumn(ColumnName = "the_hour")] public int? TheHour { get; set; } /// <summary> - /// 绾夸綋绫诲埆 - /// </summary> + /// 绾夸綋绫诲埆 + ///</summary> [SugarColumn(ColumnName = "line_type")] - public string LineType { get; set; } + public string? LineType { get; set; } /// <summary> - /// 鏍囧噯浜烘暟 - /// </summary> + /// 鏍囧噯浜烘暟 + ///</summary> [SugarColumn(ColumnName = "personnel")] public int? Personnel { get; set; } /// <summary> - /// 鎹㈢嚎鏃堕棿 - /// </summary> + /// 鎹㈢嚎鏃堕棿 + ///</summary> [SugarColumn(ColumnName = "change_line_time")] public int? ChangeLineTime { get; set; } /// <summary> - /// 浼戞伅鏃堕棿 - /// </summary> + /// 浼戞伅鏃堕棿 + ///</summary> [SugarColumn(ColumnName = "rest_time")] public int? RestTime { get; set; } /// <summary> - /// 鎺掍骇搴忓彿 - /// </summary> + /// 鎺掍骇搴忓彿 + ///</summary> [SugarColumn(ColumnName = "schedule_order")] public int? ScheduleOrder { get; set; } /// <summary> - /// MES棰勮寮�宸ユ椂闂� - /// </summary> + /// MES棰勮寮�宸ユ椂闂� + ///</summary> [SugarColumn(ColumnName = "mes_start_prod")] public DateTime? MesStartProd { get; set; } /// <summary> - /// MES棰勮瀹屽伐鏃堕棿 - /// </summary> + /// MES棰勮瀹屽伐鏃堕棿 + ///</summary> [SugarColumn(ColumnName = "mes_end_prod")] public DateTime? MesEndProd { get; set; } /// <summary> - /// 鎺掍骇鎺ㄩ�佹爣璇� - /// </summary> + /// 鎺掍骇鎺ㄩ�佹爣璇� + ///</summary> [SugarColumn(ColumnName = "prodts")] public int? Prodts { get; set; } /// <summary> - /// 棰勮澶囨枡鏃堕棿 - /// </summary> + /// 棰勮澶囨枡鏃堕棿 + ///</summary> [SugarColumn(ColumnName = "prepare_time")] public DateTime? PrepareTime { get; set; } /// <summary> - /// 鎻掍欢鎶曞叆浜烘暟 - /// </summary> + /// 鎻掍欢鎶曞叆浜烘暟 + ///</summary> [SugarColumn(ColumnName = "cj_worker")] public int? CjWorker { get; set; } /// <summary> - /// 鎻掍欢璁″垝鎶曞叆浜烘暟 - /// </summary> + /// 鎻掍欢璁″垝鎶曞叆浜烘暟 + ///</summary> [SugarColumn(ColumnName = "p_cj_worker")] public int? PCjWorker { get; set; } /// <summary> - /// 鎻掍欢鏃ヤ骇閲� - /// </summary> + /// 鎻掍欢鏃ヤ骇閲� + ///</summary> [SugarColumn(ColumnName = "cj_daily_out")] public int? CjDailyOut { get; set; } /// <summary> - /// 鎻掍欢鏍囧噯宸ユ椂 - /// </summary> + /// 鎻掍欢鏍囧噯宸ユ椂 + ///</summary> [SugarColumn(ColumnName = "cj_std_hour")] public int? CjStdHour { get; set; } /// <summary> - /// 閿$剨鎶曞叆浜烘暟 - /// </summary> + /// 閿$剨鎶曞叆浜烘暟 + ///</summary> [SugarColumn(ColumnName = "hx_worker")] public int? HxWorker { get; set; } /// <summary> - /// 閿$剨璁″垝鎶曞叆浜烘暟 - /// </summary> + /// 閿$剨璁″垝鎶曞叆浜烘暟 + ///</summary> [SugarColumn(ColumnName = "p_hx_worker")] public int? PHxWorker { get; set; } /// <summary> - /// 閿$剨鏃ヤ骇閲� - /// </summary> + /// 閿$剨鏃ヤ骇閲� + ///</summary> [SugarColumn(ColumnName = "hx_daily_out")] public int? HxDailyOut { get; set; } /// <summary> - /// 閿$剨鏍囧噯宸ユ椂 - /// </summary> + /// 閿$剨鏍囧噯宸ユ椂 + ///</summary> [SugarColumn(ColumnName = "hx_std_hour")] public int? HxStdHour { get; set; } /// <summary> - /// 鎻掍欢鏁伴噺 - /// </summary> + /// 鎻掍欢鏁伴噺 + ///</summary> [SugarColumn(ColumnName = "cj_num")] public int? CjNum { get; set; } /// <summary> - /// 瀹㈡埛 - /// </summary> + /// 瀹㈡埛 + ///</summary> [SugarColumn(ColumnName = "cust")] - public string Cust { get; set; } + public string? Cust { get; set; } /// <summary> - /// 鏄惁棣栨 - /// </summary> + /// 鏄惁棣栨 + ///</summary> [SugarColumn(ColumnName = "IS_SJ")] public int? IsSj { get; set; } + + /// <summary> + /// 浜у搧缂栫爜 + ///</summary> + [SugarColumn(ColumnName = "daa029")] + public string? Daa029 { get; set; } + + /// <summary> + /// 瀹為檯绾夸綋缂栫爜 + ///</summary> + [SugarColumn(ColumnName = "sj_xt")] + public string? SjXt { get; set; } } \ No newline at end of file diff --git a/entity/Womdab.cs b/entity/Womdab.cs index 4521451..c3f1fc6 100644 --- a/entity/Womdab.cs +++ b/entity/Womdab.cs @@ -8,228 +8,236 @@ public class Womdab { /// <summary> - /// 榛樿鍊�: (newid()) - /// </summary> + /// + /// 榛樿鍊�: (newid()) + ///</summary> [SugarColumn(ColumnName = "guid", IsPrimaryKey = true)] public Guid Guid { get; set; } /// <summary> - /// </summary> + /// + ///</summary> [SugarColumn(ColumnName = "daaGuid")] public Guid? DaaGuid { get; set; } /// <summary> - /// 鑷鍒� - /// </summary> + /// 鑷鍒� + ///</summary> [SugarColumn(ColumnName = "id")] public int? Id { get; set; } /// <summary> - /// PID - /// </summary> + /// PID + ///</summary> [SugarColumn(ColumnName = "pid")] public int? Pid { get; set; } /// <summary> - /// 宸ュ崟鍗曞彿 - /// </summary> + /// 宸ュ崟鍗曞彿 + ///</summary> [SugarColumn(ColumnName = "dab001")] public string? Dab001 { get; set; } /// <summary> - /// 搴忓彿 - /// </summary> + /// 搴忓彿 + ///</summary> [SugarColumn(ColumnName = "dab002")] public int? Dab002 { get; set; } /// <summary> - /// 鏉愭枡缂栫爜 - /// </summary> + /// 鏉愭枡id + ///</summary> [SugarColumn(ColumnName = "dab003")] public string? Dab003 { get; set; } /// <summary> - /// 鏉愭枡鍚嶇О - /// </summary> + /// 鏉愭枡鍚嶇О + ///</summary> [SugarColumn(ColumnName = "dab004")] public string? Dab004 { get; set; } /// <summary> - /// 鏉愭枡瑙勬牸 - /// </summary> + /// 鏉愭枡瑙勬牸 + ///</summary> [SugarColumn(ColumnName = "dab005")] public string? Dab005 { get; set; } /// <summary> - /// 闇�棰嗙敤閲� - /// </summary> + /// 闇�棰嗙敤閲� + ///</summary> [SugarColumn(ColumnName = "dab006")] public decimal? Dab006 { get; set; } /// <summary> - /// 宸查鐢ㄩ噺 - /// </summary> + /// 宸查鐢ㄩ噺 + ///</summary> [SugarColumn(ColumnName = "dab007")] public decimal? Dab007 { get; set; } /// <summary> - /// 宸ヨ壓 - /// </summary> + /// 宸ヨ壓 + ///</summary> [SugarColumn(ColumnName = "dab008")] public string? Dab008 { get; set; } /// <summary> - /// 鍗曚綅 - /// </summary> + /// 鍗曚綅 + ///</summary> [SugarColumn(ColumnName = "dab009")] public string? Dab009 { get; set; } /// <summary> - /// 鏉愭枡绫诲瀷 - /// </summary> + /// 鏉愭枡绫诲瀷 + ///</summary> [SugarColumn(ColumnName = "dab010")] public string? Dab010 { get; set; } /// <summary> - /// 涓绘枡 - /// </summary> + /// 涓绘枡 + ///</summary> [SugarColumn(ColumnName = "dab011")] public string? Dab011 { get; set; } /// <summary> - /// 缁勬垚鐢ㄩ噺 - /// </summary> + /// 缁勬垚鐢ㄩ噺 + ///</summary> [SugarColumn(ColumnName = "dab012")] public int? Dab012 { get; set; } /// <summary> - /// 搴曟暟 - /// </summary> + /// 搴曟暟 + ///</summary> [SugarColumn(ColumnName = "dab013")] public int? Dab013 { get; set; } /// <summary> - /// 鏄惁鏇挎枡 - /// </summary> + /// 鏄惁鏇挎枡 + ///</summary> [SugarColumn(ColumnName = "dab014")] public string? Dab014 { get; set; } /// <summary> - /// 鐐逛綅 - /// </summary> + /// 鐐逛綅 + ///</summary> [SugarColumn(ColumnName = "dab015")] public string? Dab015 { get; set; } /// <summary> - /// 鎶曟枡鍗曞彿 - /// </summary> + /// 鎶曟枡鍗曞彿 + ///</summary> [SugarColumn(ColumnName = "dab016")] public string? Dab016 { get; set; } /// <summary> - /// 浠撳簱缂栫爜 - /// </summary> + /// 浠撳簱缂栫爜 + ///</summary> [SugarColumn(ColumnName = "dab017")] public string? Dab017 { get; set; } /// <summary> - /// 浠撳簱鍚嶇О - /// </summary> + /// 浠撳簱鍚嶇О + ///</summary> [SugarColumn(ColumnName = "dab018")] public string? Dab018 { get; set; } /// <summary> - /// 棰嗘枡鏂瑰紡 - /// </summary> + /// 棰嗘枡鏂瑰紡 + ///</summary> [SugarColumn(ColumnName = "dab019")] public string? Dab019 { get; set; } /// <summary> - /// 鍥哄畾鎹熻�� - /// </summary> + /// 鍥哄畾鎹熻�� + ///</summary> [SugarColumn(ColumnName = "scrapqty")] public int? Scrapqty { get; set; } /// <summary> - /// 鍙樺姩鎹熻�楃巼 - /// </summary> + /// 鍙樺姩鎹熻�楃巼 + ///</summary> [SugarColumn(ColumnName = "scraprate")] public int? Scraprate { get; set; } /// <summary> - /// 鎶曟枡鍗曡id - /// </summary> + /// 鎶曟枡鍗曡id + ///</summary> [SugarColumn(ColumnName = "erpid")] public int? Erpid { get; set; } /// <summary> - /// 鎶曟枡鍗曞ごid - /// </summary> + /// 鎶曟枡鍗曞ごid + ///</summary> [SugarColumn(ColumnName = "eid")] public int? Eid { get; set; } /// <summary> - /// 瀹為鐢ㄩ噺 - /// 榛樿鍊�: ((0)) - /// </summary> + /// 瀹為鐢ㄩ噺 + /// 榛樿鍊�: ((0)) + ///</summary> [SugarColumn(ColumnName = "dab020")] public decimal? Dab020 { get; set; } /// <summary> - /// 琛ラ鏁伴噺 - /// 榛樿鍊�: ((0)) - /// </summary> + /// 琛ラ鏁伴噺 + /// 榛樿鍊�: ((0)) + ///</summary> [SugarColumn(ColumnName = "dab021")] public decimal? Dab021 { get; set; } /// <summary> - /// 閫�鏂欐暟閲� - /// 榛樿鍊�: ((0)) - /// </summary> + /// 閫�鏂欐暟閲� + /// 榛樿鍊�: ((0)) + ///</summary> [SugarColumn(ColumnName = "dab022")] public decimal? Dab022 { get; set; } /// <summary> - /// 瓒呴鏁伴噺 - /// 榛樿鍊�: ((0)) - /// </summary> + /// 瓒呴鏁伴噺 + /// 榛樿鍊�: ((0)) + ///</summary> [SugarColumn(ColumnName = "dab023")] public decimal? Dab023 { get; set; } /// <summary> - /// 鑹搧閫�鏂� - /// 榛樿鍊�: ((0)) - /// </summary> + /// 鑹搧閫�鏂� + /// 榛樿鍊�: ((0)) + ///</summary> [SugarColumn(ColumnName = "lp_tl")] public int? LpTl { get; set; } /// <summary> - /// 鏉ユ枡涓嶈壇 - /// 榛樿鍊�: ((0)) - /// </summary> + /// 鏉ユ枡涓嶈壇 + /// 榛樿鍊�: ((0)) + ///</summary> [SugarColumn(ColumnName = "ll_bl")] public int? LlBl { get; set; } /// <summary> - /// 浣滀笟涓嶈壇 - /// 榛樿鍊�: ((0)) - /// </summary> + /// 浣滀笟涓嶈壇 + /// 榛樿鍊�: ((0)) + ///</summary> [SugarColumn(ColumnName = "zy_bl")] public int? ZyBl { get; set; } /// <summary> - /// 鍚堝苟鏍囪瘑 - /// 榛樿鍊�: ((0)) - /// </summary> + /// 鍚堝苟鏍囪瘑 + /// 榛樿鍊�: ((0)) + ///</summary> [SugarColumn(ColumnName = "hb_flag")] public int? HbFlag { get; set; } /// <summary> - /// 鍚堝苟鍗曞彿 - /// </summary> + /// 鍚堝苟鍗曞彿 + ///</summary> [SugarColumn(ColumnName = "hb_no")] public string? HbNo { get; set; } + /// <summary> + /// 鐗╂枡缂栫爜 + ///</summary> + [SugarColumn(ColumnName = "dab024")] + public string? Dab024 { get; set; } + // 鍔ㄦ�佹坊鍔犵殑灞炴�� [SugarColumn(IsIgnore = true)] public decimal? wNum { get; set; } diff --git a/service/Warehouse/MesItemBlDetailManager.cs b/service/Warehouse/MesItemBlDetailManager.cs new file mode 100644 index 0000000..3d70b99 --- /dev/null +++ b/service/Warehouse/MesItemBlDetailManager.cs @@ -0,0 +1,11 @@ +锘縰sing NewPdaSqlServer.DB; +using NewPdaSqlServer.entity; + +namespace NewPdaSqlServer.service.Warehouse; + +public class MesItemBlDetailManager : Repository<MesItemBlDetail> +{ + //褰撳墠绫诲凡缁忕户鎵夸簡 Repository 澧炪�佸垹銆佹煡銆佹敼鐨勬柟娉� + + //杩欓噷闈㈠啓鐨勪唬鐮佷笉浼氱粰瑕嗙洊,濡傛灉瑕侀噸鏂扮敓鎴愯鍒犻櫎 MesItemBlDetailManager.cs +} \ No newline at end of file diff --git a/service/Warehouse/MesItemBlManager.cs b/service/Warehouse/MesItemBlManager.cs new file mode 100644 index 0000000..a89cb7e --- /dev/null +++ b/service/Warehouse/MesItemBlManager.cs @@ -0,0 +1,1733 @@ +锘縰sing NewPdaSqlServer.DB; +using NewPdaSqlServer.Dto.service; +using NewPdaSqlServer.entity; +using NewPdaSqlServer.util; +using SqlSugar; + +namespace NewPdaSqlServer.service.Warehouse; + +public class MesItemBlManager : Repository<MesItemBl> +{ + #region 鐢熶骇琛ユ枡 + + /// <summary> + /// 鑾峰彇鐢熶骇琛ユ枡鍗曞彿鍒楄〃 + /// </summary> + /// <returns>琛ユ枡鍗曞彿鍒楄〃</returns> + public List<string> GetSCBLBillNo() + { + var list = Db.Queryable<MesItemBl>() + .Where(s => (s.Bl018 ?? false) == true + && (s.Bl019 ?? false) == false + && s.Bl008 == "鐢熶骇琛ユ枡") + .Select(s => s.BlNo) + .ToList(); + return list; + } + + /// <summary> + /// 鏍规嵁鍗曞彿鑾峰彇鐢熶骇琛ユ枡鍗曟槑缁� prc_rf_pda_scan_zout_showbl + /// </summary> + /// <param name="billNo">琛ユ枡鍗曞彿</param> + /// <returns>琛ユ枡鍗曟槑缁嗗垪琛�</returns> + public List<MesItemBlDetail> GetMesItemBlDetailByBillNo( + WarehouseQuery query) + { + if (string.IsNullOrEmpty(query.billNo)) + throw new Exception("璇烽�夊崟鎹彿锛�"); + + // 妫�鏌ヨˉ鏂欏崟鏄惁瀛樺湪涓斾负鐢熶骇琛ユ枡绫诲瀷 + var mesItemBl = Db.Queryable<MesItemBl>() + .Where(a => a.BlNo == query.billNo && a.Bl008 == "鐢熶骇琛ユ枡") + .First(); + + if (mesItemBl == null) + throw new Exception("鍗曟嵁鍙蜂笉姝g‘锛�"); + + if (mesItemBl.Bl019 == true) + throw new Exception("鍗曟嵁鍙峰凡瀹屾垚锛�"); + + // 鑾峰彇鏈畬鎴愮殑琛ユ枡鍗曟槑缁� + var blDetails = Db.Queryable<MesItemBl, MesItemBlDetail>((a, b) => + new JoinQueryInfos(JoinType.Left, a.Id == b.Mid)) + .Where((a, b) => a.BlNo == query.billNo + && (b.Bld007 ?? 0) - (b.Bld008 ?? 0) > 0) + .Select((a, b) => new MesItemBlDetail + { + Bld012 = b.Bld012, + Bld002 = b.Bld002, + Bld003 = b.Bld003, + Bld004 = b.Bld004, + Bld007 = b.Bld007, + Bld008 = b.Bld008 + }) + .ToList(); + + return blDetails; + } + + /// <summary> + /// 鎵弿鏉$爜 prc_rf_pda_scan_zout_barcode3 + /// </summary> + /// <param name="query">鏌ヨ鍙傛暟</param> + /// <returns>鎵弿缁撴灉</returns> + /// <remarks> + /// 鍙傛暟璇存槑: + /// - billNo: 鍗曟嵁鍙�(蹇呭~) + /// - barcode: 鏉$爜(蹇呭~) + /// - userName: 鐢ㄦ埛鍚� + /// - blNo: 琛ユ枡鍗曞彿(蹇呭~) + /// </remarks> + public (bool success, List<PendingMaterialDto> pendingList) SctlScanBarcode( + WarehouseQuery query) + { + #region 鍙傛暟鏍¢獙 + + if (string.IsNullOrEmpty(query.billNo)) + throw new Exception("璇烽�夊彇鍗曟嵁鍙凤紒"); + + if (string.IsNullOrEmpty(query.barcode)) + throw new Exception("璇锋壂鎻忔潯鐮侊紒"); + + if (string.IsNullOrEmpty(query.userName)) + throw new Exception("鐢ㄦ埛鍚嶄笉鑳戒负绌猴紒"); + + if (string.IsNullOrEmpty(query.blNo)) + throw new Exception("琛ユ枡鍗曞彿涓嶈兘涓虹┖锛�"); + + #endregion + + // 妫�楠屾槸鍚﹂噸澶嶆壂鎻� + var exists = Db.Queryable<MesInvItemOutCDetails>() + .Where(b => b.ItemBarcode == query.barcode) + .Any(); + + if (exists) + throw new Exception("姝ゆ潯鐮佸凡鎵弿,鍕块噸澶嶆壂鐮侊紒"); + + // 鏌ヨ鏉$爜搴撳瓨淇℃伅 + var stockBarcode = Db.Queryable<MesInvItemStocks>() + .Where(t => t.ItemBarcode == query.barcode && t.Quantity > 0) + .First(); + + if (stockBarcode == null) + throw new Exception($"搴撳瓨涓棤姝ゆ潯鐮�,璇锋牳瀵癸紒{query.barcode}"); + + // 妫�鏌ヨˉ鏂欏崟鐘舵�� + var mesItemBl = Db.Queryable<MesItemBl>() + .Where(a => a.BlNo == query.blNo && (a.Bl018 ?? false) == false) + .First(); + + if (mesItemBl == null) + throw new Exception($"鐢宠鍗� {query.blNo} 宸叉挙鍥烇紒"); + + if (mesItemBl.Bl018 != true) + throw new Exception($"鐢宠鍗� {query.blNo} 鏈鏍革紒"); + + if (mesItemBl.Bl019 == true) + throw new Exception($"鐢宠鍗� {query.blNo} 宸插畬缁擄紒"); + + // 鑾峰彇琛ユ枡鍗曟槑缁嗗苟鏍¢獙 + var blDetail = Db.Queryable<MesItemBlDetail>() + .Where(b => + b.Mid == mesItemBl.Id && b.Bld012 == stockBarcode.ItemId) + .First(); + + if (blDetail == null) + throw new Exception($"鐢宠鍗曚笉瀛樺湪姝ょ墿鏂� {stockBarcode.ItemNo} 璇风‘璁わ紒"); + + // 妫�鏌ュ緟琛ユ暟閲� + var quantity = (blDetail.Bld007 ?? 0) - (blDetail.Bld008 ?? 0); + if (quantity == 0) + throw new Exception("鐗╂枡宸叉壂鐮佸畬鎴愶紝璇锋牳瀵癸紒"); + + // 妫�鏌ュ伐鍗曚俊鎭� + var womdaa = Db.Queryable<Womdaa>() + .Where(a => a.Daa001 == query.billNo) + .First(); + + if (womdaa == null) + throw new Exception($"宸ュ崟 {query.billNo} 涓嶅瓨鍦紝璇风‘璁わ紒"); + + // 妫�鏌ュ鏂欐槑缁� + var womdab = Db.Queryable<Womdab>() + .Where(b => b.Dab001 == query.billNo && b.Erpid == blDetail.Bld014) + .First(); + + if (womdab == null) + throw new Exception($"澶囨枡鏄庣粏涓嶅瓨鍦ㄦ鐗╂枡 {stockBarcode.ItemNo} 璇风‘璁わ紒"); + + if (stockBarcode.Quantity > quantity) + { + // 鑾峰彇寰呭彂鏂欐槑缁嗗垪琛� + var pendingList = Db.Queryable<MesItemBl, MesItemBlDetail>((a, b) => + new JoinQueryInfos(JoinType.Left, a.Id == b.Mid)) + .Where((a, b) => a.BlNo == query.blNo + && (b.Bld007 ?? 0) - (b.Bld008 ?? 0) > 0) + .Select((a, b) => new PendingMaterialDto + { + SectionCode = b.Bld012.ToString(), + ItemNo = b.Bld002, + ItemName = b.Bld003, + ItemSpec = b.Bld004, + PendingQty = (b.Bld007 ?? 0) - (b.Bld008 ?? 0) + }) + .ToList(); + + return (false, pendingList); + } + + // 寮�鍚簨鍔″鐞� + var success = UseTransaction(db => + { + // 鑾峰彇鎴栧垱寤哄嚭搴撳崟 + var outId = Guid.NewGuid(); + var outNo = BillNo.GetBillNo("SCBL"); + + var existingOut = db.Queryable<MesInvItemOuts>() + .Where(a => a.BbillNo == query.blNo + && a.DepotCode == womdab.Dab017 + && a.OutDate.Value.Date.ToString("yyyy-MM-dd") == + DateTime.Now.Date.ToString("yyyy-MM-dd") + && a.BillTypeId == 200 + && a.TransactionNo == 209 + && a.Status == 0) + .First(); + + if (existingOut != null) + { + outId = existingOut.Guid; + outNo = existingOut.ItemOutNo; + } + else + { + // 鎻掑叆鍑哄簱鍗曚富琛� + db.Insertable(new MesInvItemOuts + { + Guid = outId, + ItemOutNo = outNo, + TaskNo = query.blNo, + CreateBy = query.userName, + CreateDate = DateTime.Now, + LastupdateBy = query.userName, + LastupdateDate = DateTime.Now, + BillTypeId = 200, + TransactionNo = 209, + Remark = mesItemBl.Bl007, + DepotCode = womdab.Dab017, + OutPart = womdaa.Daa013, + FType = 0, + Factory = stockBarcode.Factory, + Company = stockBarcode.Company, + WorkNo = womdaa.Daa021, + BoardItem = womdaa.Daa002, + PbillNo = womdaa.Daa001, + OutDate = DateTime.Now, + Status = 0, + BbillNo = query.blNo + }).IgnoreColumns(true).ExecuteCommand(); + } + + // 妫�鏌ュ苟鏇存柊鍑哄簱鍗曠墿鏂欐槑缁� + var itemCount = db.Queryable<MesInvItemOutItems>() + .Where(i => + i.ItemOutId == outId && i.ItemId == stockBarcode.ItemId) + .Count(); + + if (itemCount > 0) + { + // 鏇存柊宸插瓨鍦ㄧ殑鐗╂枡鏄庣粏鏁伴噺 + db.Updateable<MesInvItemOutItems>() + .SetColumns(i => + i.Quantity == i.Quantity + stockBarcode.Quantity) + .Where(i => + i.ItemOutId == outId && i.ItemId == stockBarcode.ItemId) + .ExecuteCommand(); + } + else + { + // 鎻掑叆鏂扮殑鐗╂枡鏄庣粏璁板綍 + db.Insertable(new MesInvItemOutItems + { + Guid = Guid.NewGuid(), + ItemOutId = outId, + ItemNo = blDetail.Bld002, + Quantity = stockBarcode.Quantity, + CreateBy = query.userName, + CreateDate = DateTime.Now, + LastupdateBy = query.userName, + LastupdateDate = DateTime.Now, + Factory = stockBarcode.Factory, + Company = stockBarcode.Company, + DepotCode = womdab.Dab017, + TaskNo = query.blNo, + WorkNo = womdaa.Daa021, + WorkLine = blDetail.Bld013, + ErpItemNo = womdab.Dab003, + ErpId = womdab.Eid, + ErpAutoid = womdab.Erpid, + PbillNo = query.billNo, + ItemId = blDetail.Bld012, + // Unit = blDetail.Bld009, + // DepotId = (int)stockBarcode.DepotsId + }).IgnoreColumns(true).ExecuteCommand(); + } + + // 鎻掑叆鍑哄簱鍗曟潯鐮佹槑缁� + db.Insertable(new MesInvItemOutCDetails + { + Guid = Guid.NewGuid(), + ItemOutId = outId, + ItemBarcode = stockBarcode.ItemBarcode, + ItemNo = stockBarcode.ItemNo, + LotNo = stockBarcode.LotNo, + Quantity = stockBarcode.Quantity, + ForceOutFlag = 0, + CreateBy = query.userName, + CreateDate = DateTime.Now, + LastupdateBy = query.userName, + LastupdateDate = DateTime.Now, + DepotCode = stockBarcode.DepotsCode, + DepotSectionCode = stockBarcode.DepotSectionsCode, + Remark = blDetail.Bld010, + Factory = stockBarcode.Factory, + Company = stockBarcode.Company, + TaskNoy = mesItemBl.Bl013, + BoardStyle = mesItemBl.Bl002, + TaskNo = query.blNo, + WorkNo = blDetail.Bld001, + WorkLine = blDetail.Bld013, + SuppNo = stockBarcode.SuppNo, + PbillNo = query.billNo, + ItemId = blDetail.Bld012, + Unit = blDetail.Bld009, + DepotId = (int)stockBarcode.DepotsId, + EbelnK3id = womdab.Eid, + LineK3id = womdab.Erpid + }).IgnoreColumns(true).ExecuteCommand(); + + // 鎻掑叆涓氬姟浜ゆ槗璁板綍 + db.Insertable(new MesInvBusiness2 + { + Guid = Guid.NewGuid(), + Status = 1, + BillTypeId = 200, // p_bill_type_id + TransactionCode = "210", // p_transaction_no + BusinessType = -1, + ItemBarcode = stockBarcode.ItemBarcode, + ItemNo = stockBarcode.ItemNo, + LotNo = stockBarcode.LotNo, + EpFlag = true, + Quantity = stockBarcode.Quantity, + FromInvDepotsCode = stockBarcode.DepotsCode, + FromInvDepotSectionsCode = stockBarcode.DepotSectionsCode, + CreateBy = query.userName, + CreateDate = DateTime.Now, + LastupdateBy = query.userName, + LastupdateDate = DateTime.Now, + Factory = stockBarcode.Factory, + Company = stockBarcode.Company, + TaskNo = mesItemBl.Bl012, // Matches C_QTCK.Bl012 + BillNo = query.blNo, + WorkNo = blDetail.Bld001, // Matches C_QTCK_D.Bld001 + WorkLine = blDetail.Bld013, // Matches C_QTCK_D.Bld013 + SuppNo = stockBarcode.SuppNo, + ItemId = stockBarcode.ItemId, + // CkDepot = stockBarcode.DepotsId + }).IgnoreColumns(true).ExecuteCommand(); + + + // 鏇存柊宸ュ崟琛ㄦ暟閲� + db.Updateable<Womdab>() + .SetColumns(it => new Womdab + { + Dab007 = (it.Dab007 ?? 0) + stockBarcode.Quantity, + Dab020 = (it.Dab020 ?? 0) + stockBarcode.Quantity, + Dab021 = (it.Dab021 ?? 0) + stockBarcode.Quantity + }) + .Where(it => it.Id == womdab.Id && it.Dab003 == womdab.Dab003) + .ExecuteCommand(); + + // 鏇存柊琛ユ枡鍗曟槑缁嗗凡琛ユ暟閲� + db.Updateable<MesItemBlDetail>() + .SetColumns(it => new MesItemBlDetail + { + Bld008 = (it.Bld008 ?? 0) + (int)stockBarcode.Quantity + }) + .Where(it => it.Id == blDetail.Id) + .ExecuteCommand(); + + // 妫�鏌ヨˉ鏂欏崟鏄庣粏鏄惁瀹屾垚 + var blDetail1 = db.Queryable<MesItemBlDetail>() + .Where(it => it.Id == blDetail.Id) + .First(); + + if ((blDetail1.Bld007 ?? 0) <= (blDetail1.Bld008 ?? 0)) + { + // 鏇存柊鏄庣粏瀹屾垚鐘舵�� + db.Updateable<MesItemBlDetail>() + .SetColumns(it => it.Bld011 == 1) + .Where(it => it.Id == blDetail1.Id) + .ExecuteCommand(); + } + + // 鏇存柊搴撳瓨鏁伴噺涓�0 + db.Updateable<MesInvItemStocks>() + .SetColumns(it => it.Quantity == 0) + .Where(it => it.Guid == stockBarcode.Guid) + .ExecuteCommand(); + + + // 妫�鏌ユ槸鍚︽墍鏈夋槑缁嗛兘宸插畬鎴� + var unfinishedDetail = db.Queryable<MesItemBlDetail>() + .LeftJoin<MesItemBl>((b, a) => a.Id == b.Mid) + .Where((b, a) => a.BlNo == query.blNo && (b.Bld011 ?? 0) == 0) + .Select((b, a) => b) + .First(); + + if (unfinishedDetail == null) + { + // 濡傛灉娌℃湁鏈畬鎴愮殑鏄庣粏锛屾洿鏂拌ˉ鏂欏崟鐘舵�佷负宸插畬鎴� + db.Updateable<MesItemBl>() + .SetColumns(it => new MesItemBl + { + Bl019 = true, + WcUser = query.userName, + WcTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + }) + .Where(it => it.Id == mesItemBl.Id) + .ExecuteCommand(); + } + + return 1; + }); + + // 鑾峰彇鏈�缁堢殑寰呭彂鏂欐槑缁嗗垪琛� + var finalPendingList = Db.Queryable<MesItemBl, MesItemBlDetail>( + (a, b) => + new JoinQueryInfos(JoinType.Left, a.Id == b.Mid)) + .Where((a, b) => a.BlNo == query.blNo + && (b.Bld007 ?? 0) - (b.Bld008 ?? 0) > 0) + .Select((a, b) => new PendingMaterialDto + { + SectionCode = b.Bld012.ToString(), + ItemNo = b.Bld002, + ItemName = b.Bld003, + ItemSpec = b.Bld004, + PendingQty = (b.Bld007 ?? 0) - (b.Bld008 ?? 0) + }) + .ToList(); + + return (true, finalPendingList); + } + + /// <summary> + /// 鐢熶骇琛ユ枡鍗曟潯鐮佹媶鍒� prc_rf_pda_prnt_zout_barcode2 + /// </summary> + /// <param name="query">鏌ヨ鍙傛暟</param> + /// <returns>(鎴愬姛鏍囧織, 寰呭鐞嗗垪琛�)</returns> + /// <remarks> + /// 鍓嶅彴闇�瑕佷紶鍏ョ殑鍙傛暟: + /// - userName: 鐢ㄦ埛鍚�(蹇呭~) + /// - billNo: 宸ュ崟鍙�(蹇呭~) + /// - barcode: 鐗╂枡鏉$爜(蹇呭~) + /// - Num: 鍙戞枡鏁伴噺(蹇呭~,蹇呴』澶т簬0) + /// - blNo: 琛ユ枡鍗曞彿(蹇呭~) + /// </remarks> + public (bool success, List<PendingMaterialDto> pendingList) SplitBarcode( + WarehouseQuery query) + { + #region 鍙傛暟鏍¢獙 + + if (string.IsNullOrEmpty(query.userName)) + throw new Exception("鐢ㄦ埛鍚嶄笉鑳戒负绌猴紒"); + + if (string.IsNullOrEmpty(query.billNo)) + throw new Exception("璇烽�夊彇鍗曟嵁鍙凤紒"); + + if (string.IsNullOrEmpty(query.barcode)) + throw new Exception("璇锋壂鎻忔潯鐮侊紒"); + + if (query.Num <= 0) + throw new Exception("璇疯緭鍏ユ纭殑鍙戞枡鏁伴噺锛�"); + + if (string.IsNullOrEmpty(query.blNo)) + throw new Exception("琛ユ枡鍗曞彿涓嶈兘涓虹┖锛�"); + + #endregion + + // 妫�楠屾槸鍚﹂噸澶嶆壂鎻� + var exists = Db.Queryable<MesInvItemOutCDetails>() + .Where(b => b.ItemBarcode == query.barcode) + .Any(); + + if (exists) + throw new Exception("姝ゆ潯鐮佸凡鎵弿,鍕块噸澶嶆壂鐮侊紒"); + + // 鏌ヨ鏉$爜搴撳瓨淇℃伅 + var stockBarcode = Db.Queryable<MesInvItemStocks>() + .Where(t => t.ItemBarcode == query.barcode && t.Quantity > 0) + .First(); + + if (stockBarcode == null) + throw new Exception($"搴撳瓨涓棤姝ゆ潯鐮�,璇锋牳瀵癸紒{query.barcode}"); + + var totalQty = stockBarcode.Quantity; + string newBarcode = null; + + // 寮�鍚簨鍔″鐞� + var success = UseTransaction(db => + { + var executeCommand = 0; + + // 鎷嗗垎鏉$爜 + if (totalQty > query.Num) + { + var mesItems = db.Queryable<MesItems>() + .Where(s => s.Id == stockBarcode.ItemId).First(); + + // 鐢熸垚鏂版潯鐮佸彿 + newBarcode = BillNo.GetBillNo("TMBH(鏉$爜缂栧彿)", mesItems.ItemNo); + + // 鍐欏叆鏂版潯鐮� + executeCommand += db.Insertable(new MesInvItemBarcodes + { + Guid = Guid.NewGuid(), + ItemBarcode = newBarcode, + CustNo = stockBarcode.CustomerNo, + // ProductCode = stockBarcode.ProductCode, + // ItemBarcode2 = stockBarcode.ItemBarcode2, + // ItemCode = stockBarcode.ItemCode, + ItemNo = stockBarcode.ItemNo, + LotNo = stockBarcode.LotNo, + Quantity = query.Num, + EpFlag = true, + TaskNo = stockBarcode.TaskNo, + CreateBy = query.userName, + CreateDate = DateTime.Now, + LastupdateBy = query.userName, + LastupdateDate = DateTime.Now, + OldItemBarcode = query.barcode, + // Mblnr = stockBarcode.Mblnr, + // Zeile = stockBarcode.Zeile, + // RohInId = stockBarcode.RohInId, + // BarcodeStatus = 0, + // OldQty = query.Num, + // Unit = stockBarcode.Unit, + // WeightUnit = stockBarcode.WeightUnit, + Factory = stockBarcode.Factory, + Company = stockBarcode.Company, + BillNo = stockBarcode.BillNo, + BoardStyle = stockBarcode.BoardStyle, + // ColorName = stockBarcode.ColorName, + WorkNo = stockBarcode.WorkNo, + WorkLine = stockBarcode.WorkLine, + // MemoBad = stockBarcode.MemoBad, + ComeFlg = 5, + // Memo = stockBarcode.Memo, + SuppNo = stockBarcode.SuppNo, + // InsDate = stockBarcode.InsDate, // Added InsDate + ItemId = stockBarcode.ItemId, + // ItemUnit = stockBarcode.ItemUnit // Added ItemUnit + }).IgnoreColumns(true).ExecuteCommand(); + + // 鏇存柊鍘熸潯鐮佹暟閲� + executeCommand += db.Updateable<MesInvItemBarcodes>() + .SetColumns(it => it.Quantity == totalQty - query.Num) + .Where(it => it.ItemBarcode == query.barcode) + .ExecuteCommand(); + + // 鍒犻櫎鍘熸潯鐮佸簱瀛樿褰� + executeCommand += db.Deleteable<MesInvItemStocks>() + .Where(it => it.ItemBarcode == query.barcode) + .ExecuteCommand(); + + // 鎻掑叆鍓╀綑鏉$爜鏁伴噺鐨勬柊搴撳瓨璁板綍 + executeCommand += db.Insertable(new MesInvItemStocks + { + Guid = Guid.NewGuid(), + TaskNo = stockBarcode.TaskNo, + ItemBarcode = stockBarcode.ItemBarcode, + ItemNo = stockBarcode.ItemNo, + LotNo = stockBarcode.LotNo, + Quantity = totalQty - query.Num, + EpFlag = stockBarcode.EpFlag, + CustomerNo = stockBarcode.CustomerNo, + ItemWt = stockBarcode.ItemWt, + DepotsCode = stockBarcode.DepotsCode, + DepotsId = stockBarcode.DepotsId, + DepotSectionsCode = stockBarcode.DepotSectionsCode, + CheckDate = stockBarcode.CheckDate, + ItemType = stockBarcode.ItemType, + IndepDate = stockBarcode.IndepDate, + Factory = stockBarcode.Factory, + Company = stockBarcode.Company, + IqcStatus = stockBarcode.IqcStatus, + BoardStyle = stockBarcode.BoardStyle, + WorkNo = stockBarcode.WorkNo, + WorkLine = stockBarcode.WorkLine, + SuppNo = stockBarcode.SuppNo, + ItemId = stockBarcode.ItemId, + // UnitId = stockBarcode.ItemUnit + }).IgnoreColumns(true).ExecuteCommand(); + + // 鍐欏叆鏂版潯鐮佺殑浜ゆ槗璁板綍 + executeCommand += db.Insertable(new MesInvBusiness2 + { + Guid = Guid.NewGuid(), + Status = 1, + BillTypeId = 200, // p_bill_type_id + TransactionCode = "209", // p_transaction_no + BusinessType = -1, + ItemBarcode = newBarcode, + ItemNo = stockBarcode.ItemNo, + LotNo = stockBarcode.LotNo, + EpFlag = true, + Quantity = query.Num, + FromInvDepotsCode = null, + FromInvDepotSectionsCode = null, + ToInvDepotsCode = stockBarcode.DepotsCode, + ToInvDepotSectionsCode = stockBarcode.DepotSectionsCode, + Description = null, + CreateBy = query.userName, + CreateDate = DateTime.Now, + LastupdateBy = query.userName, + LastupdateDate = DateTime.Now, + Factory = stockBarcode.Factory, + Company = stockBarcode.Company, + TaskNo = stockBarcode.TaskNo, + BillNo = stockBarcode.BillNo, + WorkNo = stockBarcode.WorkNo, + WorkLine = stockBarcode.WorkLine, + SuppNo = stockBarcode.SuppNo, + SuppId = stockBarcode.SuppId, + ItemId = stockBarcode.ItemId, + // CkDepot = stockBarcode.DepotsId + }).IgnoreColumns(true).ExecuteCommand(); + } + else if (totalQty < query.Num) + { + throw new Exception("鍙戞枡鏁伴噺澶т簬鏉$爜鏁�,璇锋牳瀵癸紒"); + } + + if (string.IsNullOrEmpty(newBarcode)) newBarcode = query.barcode; + + // 妫�鏌ヨˉ鏂欏崟鐘舵�� + var mesItemBl = Db.Queryable<MesItemBl>() + .Where(a => a.BlNo == query.blNo && (a.Bl018 ?? false) == false) + .First(); + + if (mesItemBl == null) + throw new Exception($"鐢宠鍗� {query.blNo} 宸叉挙鍥烇紒"); + + if (mesItemBl.Bl018 != true) + throw new Exception($"鐢宠鍗� {query.blNo} 鏈鏍革紒"); + + if (mesItemBl.Bl019 == true) + throw new Exception($"鐢宠鍗� {query.blNo} 宸插畬缁擄紒"); + + // 鑾峰彇琛ユ枡鍗曟槑缁嗗苟鏍¢獙 + var blDetail = Db.Queryable<MesItemBlDetail>() + .Where(b => + b.Mid == mesItemBl.Id && b.Bld012 == stockBarcode.ItemId) + .First(); + + if (blDetail == null) + throw new Exception($"鐢宠鍗曚笉瀛樺湪姝ょ墿鏂� {stockBarcode.ItemNo} 璇风‘璁わ紒"); + + var remainingQty = (blDetail.Bld007 ?? 0) - (blDetail.Bld008 ?? 0); + if (remainingQty == 0) + throw new Exception("鐗╂枡宸叉壂鐮佸畬鎴愶紝璇锋牳瀵癸紒"); + + if (query.Num > remainingQty) + throw new Exception( + $"鎷嗗垎鏁伴噺锛歿query.Num} 澶т簬寰呭彂鏂欐暟閲忥細{remainingQty}锛岃鏍稿锛�"); + + // 妫�鏌ュ伐鍗曚俊鎭� + var womdaa = Db.Queryable<Womdaa>() + .Where(a => a.Daa001 == query.billNo) + .First(); + + if (womdaa == null) + throw new Exception($"宸ュ崟 {query.billNo} 涓嶅瓨鍦紝璇风‘璁わ紒"); + + var womdab = Db.Queryable<Womdab>() + .Where(b => b.Dab001 == query.billNo && b.Erpid == blDetail.Bld014) + .First(); + + if (womdab == null) + throw new Exception($"澶囨枡鏄庣粏涓嶅瓨鍦ㄦ鐗╂枡 {stockBarcode.ItemNo} 璇风‘璁わ紒"); + + // 妫�鏌ュ凡鍙戞枡鏁伴噺鏄惁瓒呰繃寰呭彂鏂欐暟閲� + var sumQty = db.Queryable<MesInvItemOutCDetails>() + .Where(it => it.TaskNo == query.blNo && it.ItemId == stockBarcode.ItemId) + .Sum(it => it.Quantity); + + if (sumQty > remainingQty) + { + throw new Exception($"鎷嗗垎鏁伴噺锛歿sumQty} 澶т簬寰呭彂鏂欐暟閲忥細{remainingQty}锛岃鏍稿锛�"); + } + + // 鑾峰彇鎴栧垱寤哄嚭搴撳崟 + var itemOut = db.Queryable<MesInvItemOuts>() + .Where(a => a.BbillNo == query.blNo + && a.DepotCode == womdab.Dab017 + && a.OutDate.Value.Date.ToString("yyyy-MM-dd") == + DateTime.Now.Date.ToString("yyyy-MM-dd") + && a.BillTypeId == 200 + && a.TransactionNo == 209 + && a.Status == 0) + .First(); + + if (itemOut == null) + { + // 鍒涘缓鏂扮殑鍑哄簱鍗� + var outId = Guid.NewGuid(); + var outNo = BillNo.GetBillNo("SCBL"); + + // 鎻掑叆鍑哄簱鍗曚富琛� + executeCommand += db.Insertable(new MesInvItemOuts + { + Guid = outId, + ItemOutNo = outNo, + TaskNo = query.blNo, + CreateBy = query.userName, + CreateDate = DateTime.Now, + LastupdateBy = query.userName, + LastupdateDate = DateTime.Now, + BillTypeId = 200, + TransactionNo = 209, + Remark = mesItemBl.Bl007, + DepotCode = womdab.Dab017, + OutPart = womdaa.Daa013, + FType = 0, + Factory = stockBarcode.Factory, + Company = stockBarcode.Company, + WorkNo = womdaa.Daa021, + BoardItem = womdaa.Daa002, + PbillNo = womdaa.Daa001, + OutDate = DateTime.Now, + Status = 0, + BbillNo = query.blNo + }).IgnoreColumns(true).ExecuteCommand(); + } + + // 妫�鏌ユ槸鍚﹀凡瀛樺湪鍑哄簱鍗曟槑缁� + var itemOutItemCount = db.Queryable<MesInvItemOutItems>() + .Where(it => + it.ItemOutId == itemOut.Guid && + it.ItemId == stockBarcode.ItemId) + .Count(); + + if (itemOutItemCount == 0) + { + // 鎻掑叆鏂扮殑鍑哄簱鍗曟槑缁� + executeCommand += db.Insertable(new MesInvItemOutItems + { + Guid = Guid.NewGuid(), + ItemOutId = itemOut.Guid, + ItemNo = blDetail.Bld002, + Quantity = query.Num, + CreateBy = query.userName, + CreateDate = DateTime.Now, + LastupdateBy = query.userName, + LastupdateDate = DateTime.Now, + Factory = stockBarcode.Factory, + Company = stockBarcode.Company, + DepotCode = womdab.Dab017, + TaskNo = query.blNo, + WorkNo = womdaa.Daa021, + WorkLine = blDetail.Bld013, + ErpItemNo = womdab.Dab003, + ErpId = womdab.Eid, + ErpAutoid = womdab.Erpid, + PbillNo = query.billNo, + ItemId = blDetail.Bld012, + // Unit = blDetail.Bld009, + // DepotId = (int)stockBarcode.DepotsId + }).IgnoreColumns(true).ExecuteCommand(); + } + else + { + // 鏇存柊宸叉湁鍑哄簱鍗曟槑缁嗘暟閲� + executeCommand += db.Updateable<MesInvItemOutItems>() + .SetColumns(it => it.Quantity == it.Quantity + query.Num) + .Where(it => + it.ItemOutId == itemOut.Guid && + it.ItemId == stockBarcode.ItemId) + .ExecuteCommand(); + } + + // 鎻掑叆鍑哄簱鏉$爜鏄庣粏 + executeCommand += db.Insertable(new MesInvItemOutCDetails + { + Guid = Guid.NewGuid(), + ItemOutId = itemOut.Guid, + ItemBarcode = newBarcode ?? query.barcode, + ItemNo = stockBarcode.ItemNo, + LotNo = stockBarcode.LotNo, + Quantity = query.Num, + ForceOutFlag = 0, + CreateBy = query.userName, + CreateDate = DateTime.Now, + LastupdateBy = query.userName, + LastupdateDate = DateTime.Now, + DepotCode = stockBarcode.DepotsCode, + DepotSectionCode = stockBarcode.DepotSectionsCode, + Remark = blDetail.Bld010, + Factory = stockBarcode.Factory, + Company = stockBarcode.Company, + TaskNoy = mesItemBl.Bl013, + BoardStyle = mesItemBl.Bl002, + TaskNo = query.blNo, + WorkNo = blDetail.Bld001, + WorkLine = blDetail.Bld013, + SuppNo = stockBarcode.SuppNo, + PbillNo = query.billNo, + ItemId = blDetail.Bld012, + Unit = blDetail.Bld009, + DepotId = (int)stockBarcode.DepotsId + }).IgnoreColumns(true).ExecuteCommand(); + + // 鎻掑叆涓氬姟娴佹按 + executeCommand += db.Insertable(new MesInvBusiness2 + { + Guid = Guid.NewGuid(), + Status = 1, + BillTypeId = 200, // p_bill_type_id + TransactionCode = "210", // p_transaction_no + BusinessType = 1, + ItemBarcode = newBarcode ?? query.barcode, + ItemNo = stockBarcode.ItemNo, + LotNo = stockBarcode.LotNo, + EpFlag = true, + Quantity = query.Num, + FromInvDepotsCode = stockBarcode.DepotsCode, + FromInvDepotSectionsCode = stockBarcode.DepotSectionsCode, + Description = null, + CreateBy = query.userName, + CreateDate = DateTime.Now, + LastupdateBy = query.userName, + LastupdateDate = DateTime.Now, + Factory = stockBarcode.Factory, + Company = stockBarcode.Company, + TaskNo = mesItemBl.Bl012, + BillNo = query.blNo, + WorkNo = blDetail.Bld001, + WorkLine = blDetail.Bld013, + SuppNo = stockBarcode.SuppNo, + ItemId = stockBarcode.ItemId, + // CkDepot = stockBarcode.DepotsId + }).IgnoreColumns(true).ExecuteCommand(); + + // 鏇存柊宸ュ崟琛ㄦ暟閲� + executeCommand += db.Updateable<Womdab>() + .SetColumns(it => new Womdab + { + Dab007 = (it.Dab007 ?? 0) + query.Num, // 宸ュ崟鏁伴噺 + Dab020 = (it.Dab020 ?? 0) + query.Num, // 宸插彂鏂欐暟閲� + Dab021 = (it.Dab021 ?? 0) + query.Num // 宸插彂鏂欐暟閲� + }) + .Where(it => it.Id == womdab.Id && it.Dab003 == womdab.Dab003) + .IgnoreColumns(true) + .ExecuteCommand(); + + // 鏇存柊琛ユ枡鍗曟槑缁嗗凡琛ユ暟閲� + executeCommand += db.Updateable<MesItemBlDetail>() + .SetColumns(it => new MesItemBlDetail + { + Bld008 = (it.Bld008 ?? 0) + (int)query.Num + }) + .Where(it => it.Id == blDetail.Id) + .ExecuteCommand(); + + // 鑾峰彇鏇存柊鍚庣殑琛ユ枡鍗曟槑缁嗘暟閲� + var updatedDetail = db.Queryable<MesItemBlDetail>() + .Where(it => it.Id == blDetail.Id) + .Select(it => new { it.Bld007, it.Bld008 }) + .First(); + + if ((updatedDetail.Bld007 ?? 0) <= (updatedDetail.Bld008 ?? 0)) + { + // 鏇存柊鏄庣粏瀹屾垚鐘舵�� + executeCommand += db.Updateable<MesItemBlDetail>() + .SetColumns(it => new MesItemBlDetail { Bld011 = 1 }) + .Where(it => it.Id == blDetail.Id) + .ExecuteCommand(); + } + + // 妫�鏌ユ槸鍚﹁繕鏈夋湭瀹屾垚鐨勬槑缁� + + var unfinishedDetail = db.Queryable<MesItemBlDetail>() + .Where(it => it.Mid == mesItemBl.Id && (it.Bld011 ?? 0) == 0) + .First(); + + if (unfinishedDetail == null) + { + // 濡傛灉娌℃湁鎵惧埌鏈畬鎴愭槑缁嗭紝鍒欐洿鏂拌ˉ鏂欏崟鐘舵�佷负宸插畬鎴� + executeCommand += db.Updateable<MesItemBl>() + .SetColumns(it => new MesItemBl + { + Bl019 = true, + WcUser = query.userName, + WcTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + }) + .Where(it => it.Id == mesItemBl.Id) + .ExecuteCommand(); + } + + if (executeCommand <= 1) throw new Exception("鏇存柊澶辫触"); + + return executeCommand; + }) > 0; + + // 鑾峰彇鏈�缁堢殑寰呭彂鏂欐槑缁嗗垪琛� + var pendingList = Db.Queryable<MesItemBl, MesItemBlDetail>((a, b) => + new JoinQueryInfos(JoinType.Left, a.Id == b.Mid)) + .Where((a, b) => a.BlNo == query.blNo + && (b.Bld007 ?? 0) - (b.Bld008 ?? 0) > 0) + .Select((a, b) => new PendingMaterialDto + { + SectionCode = b.Bld012.ToString(), + ItemNo = b.Bld002, + ItemName = b.Bld003, + ItemSpec = b.Bld004, + PendingQty = (b.Bld007 ?? 0) - (b.Bld008 ?? 0) + }) + .ToList(); + + return (success, pendingList); + } + + #endregion + + #region 鐢熶骇瓒呴 + + public List<string> GetSccList() + { + var list = Db.Queryable<MesItemBl>() + .Where(s => (s.Bl018 ?? false) == true + && (s.Bl019 ?? false) == false + && s.Bl008 == "鐢熶骇瓒呴") + .Select(s => s.BlNo) + .ToList(); + return list; + } + + /// <summary> + /// 鑾峰彇鐢熶骇瓒呴鍗曟槑缁� + /// </summary> + /// <param name="query">鏌ヨ鍙傛暟</param> + /// <returns>鐢熶骇瓒呴鍗曟槑缁嗗垪琛�</returns> + public List<MesItemBlDetail> GetMesItemBlDetailBySccBillNo( + WarehouseQuery query) + { + if (string.IsNullOrEmpty(query.billNo)) + throw new Exception("璇烽�夊崟鎹彿锛�"); + + // 妫�鏌ヨ秴棰嗗崟鏄惁瀛樺湪涓斾负鐢熶骇瓒呴绫诲瀷 + var mesItemBl = Db.Queryable<MesItemBl>() + .Where(a => a.BlNo == query.billNo && a.Bl008 == "鐢熶骇瓒呴") + .First(); + + if (mesItemBl == null) + throw new Exception("鍗曟嵁鍙蜂笉姝g‘锛�"); + + // 妫�鏌ュ伐鍗曟槑缁嗙姸鎬� + var blDetails = Db.Queryable<MesItemBlDetail>() + .Where(it => it.Mid == mesItemBl.Id) + .ToList(); + + foreach (var womdab in blDetails.Select(detail => Db.Queryable<Womdab>() + .Where(it => it.Erpid == detail.Bld014) + .First())) + { + if (womdab == null) + throw new Exception("鏈壘鍒板伐鍗曟槑缁嗭紒"); + + if ((womdab.Dab006 ?? 0) != (womdab.Dab007 ?? 0) || + (womdab.Dab021 ?? 0) != (womdab.Dab022 ?? 0)) + throw new Exception("鐗╂枡鏈瀹屾枡鎴栧瓨鍦ㄥ緟琛ョ墿鏂欙紒"); + } + + // 鑾峰彇鏈畬鎴愮殑瓒呴鍗曟槑缁� + var pendingDetails = Db.Queryable<MesItemBl, MesItemBlDetail>((a, b) => + new JoinQueryInfos(JoinType.Left, a.Id == b.Mid)) + .Where((a, b) => a.BlNo == query.billNo + && (b.Bld007 ?? 0) - (b.Bld008 ?? 0) > 0) + .OrderBy((a, b) => b.Bld002) + .Select((a, b) => new MesItemBlDetail + { + Bld012 = b.Bld012, + Bld002 = b.Bld002, + Bld003 = b.Bld003, + Bld004 = b.Bld004, + Bld007 = b.Bld007, + Bld008 = b.Bld008 + }) + .ToList(); + + return pendingDetails; + } + + /// <summary> + /// 鐢熶骇瓒呴鎵弿鏉$爜 prc_rf_pda_scan_zout_barcodeCL + /// </summary> + /// <param name="query">鏌ヨ鍙傛暟</param> + /// <returns>鎵弿缁撴灉</returns> + /// <remarks> + /// 鍙傛暟璇存槑: + /// - billNo: 宸ュ崟鍙�(蹇呭~) + /// - barcode: 鏉$爜(蹇呭~) + /// - userName: 鐢ㄦ埛鍚�(蹇呭~) + /// - blNo: 瓒呴鍗曞彿(蹇呭~) + /// </remarks> + public (bool success, List<PendingMaterialDto> pendingList) + ScanBarcodeForOverPicking( + WarehouseQuery query) + { + #region 鍙傛暟鏍¢獙 + + if (string.IsNullOrEmpty(query.billNo)) + throw new Exception("璇烽�夊彇鍗曟嵁鍙凤紒"); + + if (string.IsNullOrEmpty(query.barcode)) + throw new Exception("璇锋壂鎻忔潯鐮侊紒"); + + if (string.IsNullOrEmpty(query.userName)) + throw new Exception("鐢ㄦ埛鍚嶄笉鑳戒负绌猴紒"); + + if (string.IsNullOrEmpty(query.blNo)) + throw new Exception("瓒呴鍗曞彿涓嶈兘涓虹┖锛�"); + + #endregion + + // 妫�楠屾槸鍚﹂噸澶嶆壂鎻� + var exists = Db.Queryable<MesInvItemOutCDetails>() + .Where(b => b.ItemBarcode == query.barcode) + .Any(); + + if (exists) + throw new Exception("姝ゆ潯鐮佸凡鎵弿,鍕块噸澶嶆壂鐮侊紒"); + + // 鏌ヨ鏉$爜搴撳瓨淇℃伅 + var stockBarcode = Db.Queryable<MesInvItemStocks>() + .Where(t => t.ItemBarcode == query.barcode && t.Quantity > 0) + .First(); + + if (stockBarcode == null) + throw new Exception($"搴撳瓨涓棤姝ゆ潯鐮�,璇锋牳瀵癸紒{query.barcode}"); + + // 妫�鏌ヨ秴棰嗗崟鐘舵�� + var mesItemBl = Db.Queryable<MesItemBl>() + .Where(a => a.BlNo == query.blNo && a.Bl008 == "鐢熶骇瓒呴") + .First(); + + if (mesItemBl == null) + throw new Exception($"鐢宠鍗� {query.blNo} 宸叉挙鍥烇紒"); + + if (mesItemBl.Bl018 != true) + throw new Exception($"鐢宠鍗� {query.blNo} 鏈鏍革紒"); + + if (mesItemBl.Bl019 == true) + throw new Exception($"鐢宠鍗� {query.blNo} 宸插畬缁擄紒"); + + // 妫�鏌ュ伐鍗曟槑缁嗙姸鎬� + var blDetails = Db.Queryable<MesItemBlDetail>() + .Where(it => it.Mid == mesItemBl.Id) + .ToList(); + + foreach (var womdab1 in blDetails.Select(detail => Db + .Queryable<Womdab>() + .Where(it => it.Erpid == detail.Bld014) + .First())) + { + if (womdab1 == null) + throw new Exception("鏈壘鍒板伐鍗曟槑缁嗭紒"); + + if ((womdab1.Dab006 ?? 0) != (womdab1.Dab007 ?? 0) || + (womdab1.Dab021 ?? 0) != (womdab1.Dab022 ?? 0)) + throw new Exception("鐗╂枡鏈瀹屾枡鎴栧瓨鍦ㄥ緟琛ョ墿鏂欙紒"); + } + + // 鑾峰彇瓒呴鍗曟槑缁嗗苟鏍¢獙 + var blDetail = Db.Queryable<MesItemBlDetail>() + .Where(b => + b.Mid == mesItemBl.Id && b.Bld012 == stockBarcode.ItemId) + .First(); + + if (blDetail == null) + throw new Exception($"鐢宠鍗曚笉瀛樺湪姝ょ墿鏂� {stockBarcode.ItemNo} 璇风‘璁わ紒"); + + // 妫�鏌ュ緟瓒呴鏁伴噺 + var quantity = (blDetail.Bld007 ?? 0) - (blDetail.Bld008 ?? 0); + if (quantity == 0) + throw new Exception("鐗╂枡宸叉壂鐮佸畬鎴愶紝璇锋牳瀵癸紒"); + + // 妫�鏌ュ伐鍗曚俊鎭� + var womdaa = Db.Queryable<Womdaa>() + .Where(a => a.Daa001 == query.billNo) + .First(); + + if (womdaa == null) + throw new Exception($"宸ュ崟 {query.billNo} 涓嶅瓨鍦紝璇风‘璁わ紒"); + + var womdab = Db.Queryable<Womdab>() + .Where(b => b.Dab001 == query.billNo && b.Erpid == blDetail.Bld014) + .First(); + + if (womdab == null) + throw new Exception($"澶囨枡鏄庣粏涓嶅瓨鍦ㄦ鐗╂枡 {stockBarcode.ItemNo} 璇风‘璁わ紒"); + + // 濡傛灉鏉$爜鏁伴噺澶т簬寰呰秴棰嗘暟閲�,杩斿洖寰呭鐞嗗垪琛ㄤ緵纭 + if (stockBarcode.Quantity > quantity) + { + var pendingList = Db.Queryable<MesItemBl, MesItemBlDetail>((a, b) => + new JoinQueryInfos(JoinType.Left, a.Id == b.Mid)) + .Where((a, b) => a.BlNo == query.blNo + && (b.Bld007 ?? 0) - (b.Bld008 ?? 0) > 0) + .Select((a, b) => new PendingMaterialDto + { + SectionCode = b.Bld012.ToString(), + ItemNo = b.Bld002, + ItemName = b.Bld003, + ItemSpec = b.Bld004, + PendingQty = (b.Bld007 ?? 0) - (b.Bld008 ?? 0) + }) + .ToList(); + + return (false, pendingList); + } + + // 鎵ц鏁版嵁搴撲簨鍔� + UseTransaction(db => + { + // 鐢熸垚鎴栬幏鍙栧嚭搴撳崟 + Guid outId = Guid.Empty; + var outNo = ""; + var outRecord = db.Queryable<MesInvItemOuts>() + .Where(a => a.BbillNo == query.blNo + && a.DepotCode == womdab.Dab017 + && a.OutDate.Value.Date == DateTime.Now.Date + && a.BillTypeId == 200 + && a.TransactionNo == 210 + && a.Status == 0) + .First(); + + if (outRecord == null) + { + outId = Guid.NewGuid(); + outNo = BillNo.GetBillNo("SCBL"); // 闇�瑕佸疄鐜扮敓鎴愬崟鍙风殑鏂规硶 + + // 鎻掑叆鍑哄簱鍗曚富琛� + db.Insertable(new MesInvItemOuts + { + Guid = outId, + ItemOutNo = outNo, + TaskNo = query.blNo, + CreateBy = query.userName, + CreateDate = DateTime.Now, + LastupdateBy = query.userName, + LastupdateDate = DateTime.Now, + BillTypeId = 200, + TransactionNo = 210, + Remark = mesItemBl.Bl007, + DepotCode = womdab.Dab017, + OutPart = womdaa.Daa013, + FType = 0, + WorkNo = womdaa.Daa021, + OutType = "鐢熶骇瓒呴鍗�", + BoardItem = womdaa.Daa002, + PbillNo = womdaa.Daa001, + OutDate = DateTime.Now, + Status = 0, + BbillNo = query.blNo + }).IgnoreColumns(true).ExecuteCommand(); + } + else + { + outId = outRecord.Guid; + outNo = outRecord.ItemOutNo; + } + + // 鏇存柊鎴栨彃鍏ュ嚭搴撳崟鏄庣粏 + var outItem = db.Queryable<MesInvItemOutItems>() + .Where(it => + it.ItemOutId == outId && it.ItemId == stockBarcode.ItemId) + .First(); + + if (outItem == null) + { + // 鎻掑叆鍑哄簱鍗曟槑缁� + db.Insertable(new MesInvItemOutItems + { + Guid = Guid.NewGuid(), + ItemOutId = outId, + ItemNo = blDetail.Bld002, + Quantity = stockBarcode.Quantity, + CreateBy = query.userName, + CreateDate = DateTime.Now, + LastupdateBy = query.userName, + LastupdateDate = DateTime.Now, + DepotCode = womdab.Dab017, + TaskNo = query.blNo, + WorkNo = womdaa.Daa021, + WorkLine = blDetail.Bld013, + ErpItemNo = womdab.Dab003, + ErpId = womdab.Eid, + ErpAutoid = womdab.Erpid, + PbillNo = query.billNo, + ItemId = blDetail.Bld012, + // Unit = blDetail.Bld009, + // DepotId = stockBarcode.DepotsId + }).IgnoreColumns(true).ExecuteCommand(); + } + else + { + // 鏇存柊鍑哄簱鍗曟槑缁嗘暟閲� + db.Updateable<MesInvItemOutItems>() + .SetColumns(it => new MesInvItemOutItems + { + Quantity = it.Quantity + stockBarcode.Quantity + }) + .Where(it => + it.ItemOutId == outId && + it.ItemId == stockBarcode.ItemId) + .ExecuteCommand(); + } + + // 鎻掑叆鍑哄簱鏉$爜鏄庣粏 + db.Insertable(new MesInvItemOutCDetails + { + Guid = Guid.NewGuid(), + ItemOutId = outId, + ItemBarcode = stockBarcode.ItemBarcode, + ItemNo = stockBarcode.ItemNo, + LotNo = stockBarcode.LotNo, + Quantity = stockBarcode.Quantity, + CreateBy = query.userName, + CreateDate = DateTime.Now, + LastupdateBy = query.userName, + LastupdateDate = DateTime.Now, + DepotCode = stockBarcode.DepotsCode, + DepotSectionCode = stockBarcode.DepotSectionsCode, + Remark = blDetail.Bld010, + TaskNo = query.blNo, + WorkNo = blDetail.Bld001, + WorkLine = blDetail.Bld013, + SuppNo = stockBarcode.SuppNo, + PbillNo = query.billNo, + ItemId = blDetail.Bld012, + Unit = blDetail.Bld009, + DepotId = (int)stockBarcode.DepotsId + }).IgnoreColumns(true).ExecuteCommand(); + + // 鎻掑叆涓氬姟娴佹按 + db.Insertable(new MesInvBusiness2 + { + Guid = Guid.NewGuid(), + Status = 1, + BillTypeId = 200, + TransactionCode = "210", + BusinessType = -1, + ItemBarcode = query.barcode, + ItemNo = stockBarcode.ItemNo, + LotNo = stockBarcode.LotNo, + EpFlag = true, + Quantity = stockBarcode.Quantity, + FromInvDepotsCode = stockBarcode.DepotsCode, + FromInvDepotSectionsCode = stockBarcode.DepotSectionsCode, + CreateBy = query.userName, + CreateDate = DateTime.Now, + LastupdateBy = query.userName, + LastupdateDate = DateTime.Now, + TaskNo = mesItemBl.Bl012, + BillNo = query.blNo, + WorkNo = blDetail.Bld001, + WorkLine = blDetail.Bld013, + SuppNo = stockBarcode.SuppNo, + SuppId = stockBarcode.SuppId, + ItemId = stockBarcode.ItemId, + // CkDepot = stockBarcode.DepotsId + }).IgnoreColumns(true).ExecuteCommand(); + + // 鏇存柊宸ュ崟澶囨枡鏄庣粏 + db.Updateable<Womdab>() + .SetColumns(it => new Womdab + { + Dab020 = (it.Dab020 ?? 0) + stockBarcode.Quantity, + Dab023 = (it.Dab023 ?? 0) + stockBarcode.Quantity + }) + .Where(it => it.Id == womdab.Id) + .ExecuteCommand(); + + // 鏇存柊瓒呴鍗曟槑缁� + db.Updateable<MesItemBlDetail>() + .SetColumns(it => new MesItemBlDetail + { + Bld008 = (it.Bld008 ?? 0) + (int)stockBarcode.Quantity, + Bld011 = (it.Bld007 ?? 0) <= + (it.Bld008 ?? 0) + stockBarcode.Quantity + ? 1 + : 0 + }) + .Where(it => it.Id == blDetail.Id) + .ExecuteCommand(); + + // 鏇存柊搴撳瓨鏁伴噺涓�0 + db.Updateable<MesInvItemStocks>() + .SetColumns(it => it.Quantity == 0) + .Where(it => it.Guid == stockBarcode.Guid) + .ExecuteCommand(); + + // 妫�鏌ユ槸鍚︽墍鏈夋槑缁嗛兘宸插畬鎴� + var hasUnfinished = db.Queryable<MesItemBlDetail>() + .Where(it => it.Mid == mesItemBl.Id && (it.Bld011 ?? 0) == 0) + .Any(); + + // 濡傛灉鎵�鏈夋槑缁嗗畬鎴�,鏇存柊瓒呴鍗曠姸鎬佷负宸插畬鎴� + if (!hasUnfinished) + { + db.Updateable<MesItemBl>() + .SetColumns(it => it.Bl019 == true) + .Where(it => it.Id == mesItemBl.Id) + .ExecuteCommand(); + } + + return 1; + }); + + // 鑾峰彇鏈�缁堢殑寰呭鐞嗗垪琛� + var finalPendingList = Db.Queryable<MesItemBl, MesItemBlDetail>( + (a, b) => + new JoinQueryInfos(JoinType.Left, a.Id == b.Mid)) + .Where((a, b) => a.BlNo == query.blNo + && (b.Bld007 ?? 0) - (b.Bld008 ?? 0) > 0) + .Select((a, b) => new PendingMaterialDto + { + SectionCode = b.Bld012.ToString(), + ItemNo = b.Bld002, + ItemName = b.Bld003, + ItemSpec = b.Bld004, + PendingQty = (b.Bld007 ?? 0) - (b.Bld008 ?? 0) + }) + .ToList(); + + return (true, finalPendingList); + } + + /// <summary> + /// 鐢熶骇瓒呴鎵撳嵃鏉$爜 + /// </summary> + /// <param name="query">鏌ヨ鍙傛暟</param> + /// <returns>澶勭悊缁撴灉</returns> + public (bool success, List<PendingMaterialDto> pendingList) + PrintBarcodeForOverPicking(WarehouseQuery query) + { + UseTransaction(db => + { + #region 鍙傛暟鏍¢獙 + + if (string.IsNullOrEmpty(query.billNo)) + throw new Exception("璇烽�夊彇鍗曟嵁鍙凤紒"); + + if (string.IsNullOrEmpty(query.barcode)) + throw new Exception("璇锋壂鎻忔潯鐮侊紒"); + + if (string.IsNullOrEmpty(query.userName)) + throw new Exception("鐢ㄦ埛鍚嶄笉鑳戒负绌猴紒"); + + if (string.IsNullOrEmpty(query.blNo)) + throw new Exception("瓒呴鍗曞彿涓嶈兘涓虹┖锛�"); + + if (query.Num <= 0) + throw new Exception("璇疯緭鍏ユ纭殑鍙戞枡鏁伴噺锛�"); + + #endregion + + // 鏌ヨ搴撳瓨鏉$爜淇℃伅 + var stockBarcode = db.Queryable<MesInvItemStocks>() + .Where(t => t.ItemBarcode == query.barcode && t.Quantity > 0) + .First(); + + if (stockBarcode == null) + throw new Exception($"搴撳瓨涓棤姝ゆ潯鐮侊紝璇锋牳瀵癸紒{query.barcode}"); + + var totalQty = stockBarcode.Quantity; + string newBarcode = null; + + // 鎷嗗垎鏉$爜 + if (totalQty > query.Num) + { + var mesItems = db.Queryable<MesItems>() + .Where(s => s.Id == stockBarcode.ItemId).First(); + // 鐢熸垚鏂版潯鐮佸彿 + newBarcode = BillNo.GetBillNo("TMBH(鏉$爜缂栧彿)", mesItems.ItemNo); + + // 鍐欏叆鏂版潯鐮佽褰� + db.Insertable(new MesInvItemBarcodes + { + Guid = Guid.NewGuid(), + ItemBarcode = newBarcode, + ItemNo = stockBarcode.ItemNo, + LotNo = stockBarcode.LotNo, + Quantity = query.Num, + EpFlag = true, + CreateBy = query.userName, + CreateDate = DateTime.Now, + LastupdateBy = query.userName, + LastupdateDate = DateTime.Now, + OldItemBarcode = query.barcode, + Factory = stockBarcode.Factory, + Company = stockBarcode.Company, + WorkNo = stockBarcode.WorkNo, + WorkLine = stockBarcode.WorkLine, + SuppId = stockBarcode.SuppId, + SuppNo = stockBarcode.SuppNo, + ItemId = stockBarcode.ItemId + }).IgnoreColumns(true).ExecuteCommand(); + + // 鏇存柊鍘熸潯鐮佹暟閲� + db.Updateable<MesInvItemBarcodes>() + .SetColumns(it => new MesInvItemBarcodes + { Quantity = totalQty - query.Num }) + .Where(it => it.ItemBarcode == query.barcode) + .ExecuteCommand(); + + // 鍒犻櫎鍘熸潯鐮佸簱瀛樿褰� + db.Deleteable<MesInvItemStocks>() + .Where(it => it.ItemBarcode == query.barcode) + .ExecuteCommand(); + + // 鎻掑叆鍓╀綑鏉$爜鏁伴噺鐨勬柊搴撳瓨璁板綍 + db.Insertable(new MesInvItemStocks + { + Guid = Guid.NewGuid(), + ItemBarcode = stockBarcode.ItemBarcode, + ItemNo = stockBarcode.ItemNo, + LotNo = stockBarcode.LotNo, + Quantity = totalQty - query.Num, + EpFlag = stockBarcode.EpFlag, + CustomerNo = stockBarcode.CustomerNo, + DepotsCode = stockBarcode.DepotsCode, + DepotsId = stockBarcode.DepotsId, + DepotSectionsCode = stockBarcode.DepotSectionsCode, + CheckDate = stockBarcode.CheckDate, + ItemType = stockBarcode.ItemType, + IndepDate = stockBarcode.IndepDate, + Factory = stockBarcode.Factory, + Company = stockBarcode.Company, + IqcStatus = stockBarcode.IqcStatus, + BoardStyle = stockBarcode.BoardStyle, + WorkNo = stockBarcode.WorkNo, + WorkLine = stockBarcode.WorkLine, + SuppNo = stockBarcode.SuppNo, + SuppId = stockBarcode.SuppId, + ItemId = stockBarcode.ItemId + }).IgnoreColumns(true).ExecuteCommand(); + + // 鍐欐柊鏉$爜鐨勪氦鏄撹〃锛屾柊鏉$爜涓嶅叆搴撶洿鎺ュ嚭 + db.Insertable(new MesInvBusiness2 + { + Guid = Guid.NewGuid(), + Status = 1, + BillTypeId = 200, + TransactionCode = "210", + BusinessType = -1, + ItemBarcode = newBarcode, + ItemNo = stockBarcode.ItemNo, + LotNo = stockBarcode.LotNo, + EpFlag = true, + Quantity = query.Num, + ToInvDepotsCode = stockBarcode.DepotsCode, + ToInvDepotSectionsCode = stockBarcode.DepotSectionsCode, + Description = "鐢熶骇瓒呴", + CreateBy = query.userName, + CreateDate = DateTime.Now, + LastupdateBy = query.userName, + LastupdateDate = DateTime.Now, + TaskNo = stockBarcode.TaskNo, + WorkNo = stockBarcode.WorkNo, + WorkLine = stockBarcode.WorkLine, + SuppNo = stockBarcode.SuppNo, + SuppId = stockBarcode.SuppId, + ItemId = stockBarcode.ItemId + }).IgnoreColumns(true).ExecuteCommand(); + } + else if (totalQty < query.Num) + { + throw new Exception("鍙戞枡鏁伴噺澶т簬鏉$爜鏁�,璇锋牳瀵癸紒"); + } + + if (string.IsNullOrEmpty(newBarcode)) + newBarcode = query.barcode; + + // 妫�鏌ヨ秴棰嗗崟鐘舵�� + var mesItemBl = db.Queryable<MesItemBl>() + .Where(a => a.BlNo == query.blNo && a.Bl008 == "鐢熶骇瓒呴") + .First(); + + if (mesItemBl == null) + throw new Exception("鐢宠鍗曚笉瀛樺湪锛�"); + + if (!(mesItemBl.Bl018 ?? false)) + throw new Exception($"鐢宠鍗� {query.blNo} 鏈鏍革紒"); + + if (mesItemBl.Bl019 ?? false) + throw new Exception($"鐢宠鍗� {query.blNo} 宸插畬缁擄紒"); + + // 妫�鏌ヨ秴棰嗗崟鏄庣粏 + var blDetail = db.Queryable<MesItemBlDetail>() + .Where(b => + b.Mid == mesItemBl.Id && b.Bld012 == stockBarcode.ItemId) + .First(); + + if (blDetail == null) + throw new Exception($"鐢宠鍗曚笉瀛樺湪姝ょ墿鏂� {stockBarcode.ItemNo} 璇风‘璁わ紒"); + + var pendingQty = (blDetail.Bld007 ?? 0) - (blDetail.Bld008 ?? 0); + if (pendingQty == 0) + throw new Exception("鐗╂枡宸叉壂鐮佸畬鎴愶紝璇锋牳瀵癸紒"); + + // 妫�鏌ュ伐鍗� + var workOrder = db.Queryable<Womdaa>() + .Where(a => a.Daa001 == query.billNo) + .First(); + + if (workOrder == null) + throw new Exception($"宸ュ崟 {query.billNo} 涓嶅瓨鍦紝璇风‘璁わ紒"); + + var workOrderDetail = db.Queryable<Womdab>() + .Where(b => + b.Dab001 == query.billNo && b.Erpid == blDetail.Bld014) + .First(); + + if (workOrderDetail == null) + throw new Exception($"澶囨枡鏄庣粏涓嶅瓨鍦ㄦ鐗╂枡 {stockBarcode.ItemNo} 璇风‘璁わ紒"); + + if (query.Num > pendingQty) + throw new Exception( + $"鎷嗗垎鏁伴噺锛歿query.Num} 澶т簬寰呭彂鏂欐暟閲忥細{pendingQty}锛岃鏍稿锛�"); + + // 鑾峰彇鎴栧垱寤哄嚭搴撳崟 + var itemOut = db.Queryable<MesInvItemOuts>() + .Where(a => a.BbillNo == query.blNo + && a.DepotCode == workOrderDetail.Dab017 + && a.OutDate.Value.Date.ToString("yyyy-MM-dd") == + DateTime.Now.Date.ToString("yyyy-MM-dd") + && a.BillTypeId == 200 + && a.TransactionNo == 210 + && a.Status == 0) + .First(); + + if (itemOut == null) + { + // 鍒涘缓鏂扮殑鍑哄簱鍗� + itemOut = new MesInvItemOuts + { + Guid = Guid.NewGuid(), + ItemOutNo = BillNo.GetBillNo("SCBL"), // 闇�瑕佸疄鐜扮敓鎴愬崟鍙风殑鏂规硶 + TaskNo = query.blNo, + CreateBy = query.userName, + CreateDate = DateTime.Now, + LastupdateBy = query.userName, + LastupdateDate = DateTime.Now, + BillTypeId = 200, + TransactionNo = 210, + Remark = mesItemBl.Bl007, + DepotCode = workOrderDetail.Dab017, + OutPart = workOrder.Daa013, + FType = 0, + Factory = stockBarcode.Factory, + Company = stockBarcode.Company, + WorkNo = workOrder.Daa021, + OutType = "鐢熶骇瓒呴鍗�", + BoardItem = workOrder.Daa002, + PbillNo = workOrder.Daa001, + OutDate = DateTime.Now, + Status = 0, + BbillNo = query.blNo + }; + + db.Insertable(itemOut).IgnoreColumns(true).ExecuteCommand(); + } + + // 妫�鏌ユ槸鍚﹀凡瀛樺湪鍑哄簱鍗曟槑缁� + var itemOutItemCount = db.Queryable<MesInvItemOutItems>() + .Where(it => + it.ItemOutId == itemOut.Guid && + it.ItemId == stockBarcode.ItemId) + .Count(); + + if (itemOutItemCount == 0) + { + // 鎻掑叆鏂扮殑鍑哄簱鍗曟槑缁� + db.Insertable(new MesInvItemOutItems + { + Guid = Guid.NewGuid(), + ItemOutId = itemOut.Guid, + ItemNo = blDetail.Bld002, + Quantity = query.Num, + CreateBy = query.userName, + CreateDate = DateTime.Now, + LastupdateBy = query.userName, + LastupdateDate = DateTime.Now, + Factory = stockBarcode.Factory, + Company = stockBarcode.Company, + DepotCode = workOrderDetail.Dab017, + TaskNo = query.blNo, + WorkNo = workOrder.Daa021, + WorkLine = blDetail.Bld013, + ErpItemNo = workOrderDetail.Dab003, + ErpId = workOrderDetail.Eid, + ErpAutoid = workOrderDetail.Erpid, + PbillNo = query.billNo, + ItemId = blDetail.Bld012, + // Unit = blDetail.Bld009, + // DepotId = stockBarcode.DepotsId + }).IgnoreColumns(true).ExecuteCommand(); + } + else + { + // 鏇存柊宸叉湁鍑哄簱鍗曟槑缁嗘暟閲� + db.Updateable<MesInvItemOutItems>() + .SetColumns(it => it.Quantity == it.Quantity + query.Num) + .Where(it => + it.ItemOutId == itemOut.Guid && + it.ItemId == stockBarcode.ItemId) + .ExecuteCommand(); + } + + // 鎻掑叆鍑哄簱鏄庣粏璁板綍 + db.Insertable(new MesInvItemOutCDetails + { + Guid = Guid.NewGuid(), + ItemOutId = itemOut.Guid, + ItemBarcode = newBarcode, + ItemNo = stockBarcode.ItemNo, + LotNo = stockBarcode.LotNo, + Quantity = query.Num, + ForceOutFlag = 0, + CreateBy = query.userName, + CreateDate = DateTime.Now, + LastupdateBy = query.userName, + LastupdateDate = DateTime.Now, + DepotCode = stockBarcode.DepotsCode, + DepotSectionCode = stockBarcode.DepotSectionsCode, + Remark = blDetail.Bld010, + Factory = stockBarcode.Factory, + Company = stockBarcode.Company, + TaskNoy = mesItemBl.Bl013, + BoardStyle = mesItemBl.Bl002, + TaskNo = query.blNo, + WorkNo = blDetail.Bld001, + WorkLine = blDetail.Bld013, + SuppNo = stockBarcode.SuppNo, + PbillNo = query.billNo, + ItemId = blDetail.Bld012, + Unit = blDetail.Bld009, + DepotId = (int)stockBarcode.DepotsId, + LineK3id = workOrderDetail.Erpid, + EbelnK3id = workOrderDetail.Eid + }).IgnoreColumns(true).ExecuteCommand(); + + // 鎻掑叆涓氬姟浜ゆ槗璁板綍 + db.Insertable(new MesInvBusiness2 + { + Guid = Guid.NewGuid(), + Status = 1, + BillTypeId = 200, // p_bill_type_id + TransactionCode = "210", // p_transaction_no + BusinessType = 1, + ItemBarcode = newBarcode, + ItemNo = stockBarcode.ItemNo, + LotNo = stockBarcode.LotNo, + EpFlag = true, + Quantity = query.Num, + FromInvDepotsCode = stockBarcode.DepotsCode, + FromInvDepotSectionsCode = stockBarcode.DepotSectionsCode, + CreateBy = query.userName, + CreateDate = DateTime.Now, + LastupdateBy = query.userName, + LastupdateDate = DateTime.Now, + Factory = stockBarcode.Factory, + Company = stockBarcode.Company, + TaskNo = mesItemBl.Bl012, // Matches C_QTCK.Bl012 + BillNo = query.blNo, + WorkNo = blDetail.Bld001, // Matches C_QTCK_D.Bld001 + WorkLine = blDetail.Bld013, // Matches C_QTCK_D.Bld013 + SuppNo = stockBarcode.SuppNo, + ItemId = stockBarcode.ItemId + }).IgnoreColumns(true).ExecuteCommand(); + + // 鏇存柊宸ュ崟琛ㄦ暟閲� + db.Updateable<Womdab>() + .SetColumns(it => new Womdab + { + Dab020 = (it.Dab020 ?? 0) + stockBarcode.Quantity, + Dab023 = (it.Dab023 ?? 0) + stockBarcode.Quantity + }) + .Where(it => it.Id == workOrderDetail.Id) + .ExecuteCommand(); + + // 鏇存柊琛ユ枡鍗曟槑缁嗗凡琛ユ暟閲� + db.Updateable<MesItemBlDetail>() + .SetColumns(it => new MesItemBlDetail + { + Bld008 = (it.Bld008 ?? 0) + (int)stockBarcode.Quantity + }) + .Where(it => it.Id == blDetail.Id) + .ExecuteCommand(); + + // 妫�鏌ヨˉ鏂欏崟鏄庣粏鏄惁瀹屾垚 + var blDetail1 = db.Queryable<MesItemBlDetail>() + .Where(it => it.Id == blDetail.Id) + .First(); + + if ((blDetail1.Bld007 ?? 0) <= (blDetail1.Bld008 ?? 0)) + { + // 鏇存柊鏄庣粏瀹屾垚鐘舵�� + db.Updateable<MesItemBlDetail>() + .SetColumns(it => it.Bld011 == 1) + .Where(it => it.Id == blDetail1.Id) + .ExecuteCommand(); + } + + // 妫�鏌ユ槸鍚︽墍鏈夋槑缁嗛兘宸插畬鎴� + var hasUnfinished = db.Queryable<MesItemBlDetail>() + .Where(it => it.Mid == mesItemBl.Id && (it.Bld011 ?? 0) == 0) + .Any(); + + // 濡傛灉鎵�鏈夋槑缁嗗畬鎴�,鏇存柊琛ユ枡鍗曠姸鎬佷负宸插畬鎴� + if (!hasUnfinished) + { + db.Updateable<MesItemBl>() + .SetColumns(it => it.Bl019 == true) + .Where(it => it.Id == mesItemBl.Id) + .ExecuteCommand(); + } + + return 1; + }); + + + // 鑾峰彇鏈�缁堢殑寰呭鐞嗗垪琛� + var pendingList = Db.Queryable<MesItemBl, MesItemBlDetail>((a, b) => + new JoinQueryInfos(JoinType.Left, a.Id == b.Mid)) + .Where((a, b) => a.BlNo == query.blNo + && (b.Bld007 ?? 0) - (b.Bld008 ?? 0) > 0) + .Select((a, b) => new PendingMaterialDto + { + SectionCode = b.Bld012.ToString(), + ItemNo = b.Bld002, + ItemName = b.Bld003, + ItemSpec = b.Bld004, + PendingQty = (b.Bld007 ?? 0) - (b.Bld008 ?? 0) + }) + .ToList(); + + return (true, pendingList); + } + + #endregion +} \ No newline at end of file diff --git a/service/Warehouse/MesItemTblManager.cs b/service/Warehouse/MesItemTblManager.cs index f5c63c2..9560243 100644 --- a/service/Warehouse/MesItemTblManager.cs +++ b/service/Warehouse/MesItemTblManager.cs @@ -52,9 +52,7 @@ public WarehouseQuery SctlScanDepots(WarehouseQuery query) { if (query.DepotCode.IsNullOrEmpty()) - { throw new NullReferenceException("璇锋壂搴撲綅鏉$爜"); - } var warehouseQuery = Db.Queryable<MesDepotSections, MesDepots>((a, b) => new JoinQueryInfos(JoinType.Inner, a.DepotGuid == b.Guid)) @@ -63,13 +61,11 @@ { DepotSectionName = a.DepotSectionName, DepotName = b.DepotName, - DepotCode = b.DepotCode, + DepotCode = b.DepotCode }).First(); if (warehouseQuery == null) - { throw new Exception("搴撲綅缂栫爜" + query.DepotCode + " 涓嶅瓨鍦紝璇风‘璁わ紒"); - } return warehouseQuery; } @@ -84,10 +80,7 @@ var p_bill_type_id = 100; var p_transction_no = 104; - if (p_section_code.IsNullOrEmpty()) - { - throw new Exception("璇锋壂搴撲綅鏉$爜锛�"); - } + if (p_section_code.IsNullOrEmpty()) throw new Exception("璇锋壂搴撲綅鏉$爜锛�"); var c_depot_code = Db.Queryable<MesDepotSections, MesDepots>((a, b) => new JoinQueryInfos(JoinType.Inner, a.DepotGuid == b.Guid)) @@ -95,25 +88,19 @@ .Select((a, b) => b.DepotId).First(); if (!c_depot_code.HasValue) - { throw new Exception("搴撲綅缂栫爜" + p_section_code + " 涓嶅瓨鍦紝璇风‘璁わ紒"); - } var mesDepotSections = Db.Queryable<MesDepotSections>() .Where(a => a.DepotSectionCode == p_section_code).First(); if (mesDepotSections == null) - { throw new Exception("搴撲綅缂栫爜" + p_section_code + " 涓嶅瓨鍦紝璇风‘璁わ紒"); - } var c_mes_depots = Db.Queryable<MesDepots>() .Where(b => b.Guid == mesDepotSections.DepotGuid).First(); if (c_mes_depots == null) - { throw new Exception("搴撲綅缂栫爜" + p_section_code + " 涓嶅瓨鍦紝璇风‘璁わ紒"); - } var c_num = Db.Queryable<MesInvItemIns, MesInvItemInCDetails>((a, b) => new JoinQueryInfos(JoinType.Inner, a.Guid == b.ItemInId)) @@ -122,45 +109,29 @@ a.TransctionNo == p_transction_no.ToString()) .Count(); - if (c_num > 0) - { - throw new Exception("姝ゆ潯鐮佸凡鎵叆搴擄紝鍕块噸澶嶆壂鎻忥紒"); - } + if (c_num > 0) throw new Exception("姝ゆ潯鐮佸凡鎵叆搴擄紝鍕块噸澶嶆壂鎻忥紒"); c_num = Db.Queryable<MesInvItemStocks>() .Where(t => t.ItemBarcode == p_item_barcode).Count(); - if (c_num > 0) - { - throw new Exception("姝ゆ潯鐮佸凡鎵叆搴擄紝鍕块噸澶嶆壂鎻忥紒"); - } + if (c_num > 0) throw new Exception("姝ゆ潯鐮佸凡鎵叆搴擄紝鍕块噸澶嶆壂鎻忥紒"); var c_mes_inv_item_barcodes = Db.Queryable<MesInvItemBarcodes>() .Where(t => t.ItemBarcode == p_item_barcode).First(); if (c_mes_inv_item_barcodes == null) - { throw new Exception("姝ゆ潯鐮佷笉灞炰簬璇ラ��鏂欏崟锛岃鏍稿锛�"); - } if (c_mes_inv_item_barcodes.Memo != "鐢熶骇閫�鏂�") - { throw new Exception("姝ゆ潯鐮佷笉鏄敓浜ч��鏂欐潯鐮侊紝涓嶅彲浣跨敤鐢熶骇閫�鏂欐ā鍧楋紒"); - } var C_MES_ITEM_TBL = Db.Queryable<MesItemTbl>() .Where(a => a.BillNo == c_mes_inv_item_barcodes.BillNo && (a.Tbl013 ?? 0) == 1).First(); - if (C_MES_ITEM_TBL == null) - { - throw new Exception("鐢宠鍗曞凡鎾ゅ洖,鏃犳硶鎵爜!"); - } + if (C_MES_ITEM_TBL == null) throw new Exception("鐢宠鍗曞凡鎾ゅ洖,鏃犳硶鎵爜!"); - if (C_MES_ITEM_TBL.Tbl020 == 1) - { - throw new Exception("鎵爜瀹屾垚,鐢宠鍗曞凡瀹岀粨!"); - } + if (C_MES_ITEM_TBL.Tbl020 == 1) throw new Exception("鎵爜瀹屾垚,鐢宠鍗曞凡瀹岀粨!"); var C_MES_ITEM_TBL_DETAIL = Db.Queryable<MesItemTblDetail>() .Where(a => a.Tlmid == C_MES_ITEM_TBL.Id @@ -168,9 +139,7 @@ .First(); if (C_MES_ITEM_TBL_DETAIL == null) - { throw new Exception("鏉$爜涓嶅睘浜庤鐢宠鍗曟槑缁�,鏃犳硶鎵爜!"); - } var c_quantity = c_mes_inv_item_barcodes.Quantity; @@ -223,10 +192,7 @@ } var hbdy = c_mes_inv_item_barcodes.Hbdy ?? 0; - if (hbdy == 1) - { - throw new Exception("涓嶆敮鎸佸悎骞舵墦鍗扮殑鏉$爜:" + p_item_barcode); - } + if (hbdy == 1) throw new Exception("涓嶆敮鎸佸悎骞舵墦鍗扮殑鏉$爜:" + p_item_barcode); totalResult += db.Insertable(new MesInvItemInCDetails { @@ -321,46 +287,58 @@ { // 鑹搧閫�鏂� - 鏇存柊宸ュ崟琛�(WOMDAB)鐩稿叧鏁伴噺 if (C_MES_ITEM_TBL.Tbl005 == "鑹搧閫�鏂�") - { - totalResult += Db.Updateable<Womdab>() - .SetColumns(it => new Womdab - { - Dab007 = it.Dab007 - c_mes_inv_item_barcodes.Quantity, // 鍑忓皯宸ュ崟鏁伴噺 - Dab022 = (it.Dab022 ?? 0) + c_mes_inv_item_barcodes.Quantity, // 澧炲姞閫�鏂欐暟閲� - LpTl = (it.LpTl ?? 0) + (int)c_mes_inv_item_barcodes.Quantity, // 澧炲姞鑹搧閫�鏂欐暟閲� - Dab020 = (it.Dab020 ?? 0) - c_mes_inv_item_barcodes.Quantity // 鍑忓皯宸插彂鏂欐暟閲� - }) - .Where(it => it.Dab001 == c_mes_inv_item_barcodes.WorkNo - && it.Dab002 == c_mes_inv_item_barcodes.WorkLine - && it.Dab003 == c_mes_inv_item_barcodes.ItemId.ToString()) - .ExecuteCommand(); - } - // 鏉ユ枡涓嶈壇閫�鏂� - 鏇存柊宸ュ崟琛�(WOMDAB)鐩稿叧鏁伴噺 - else if (C_MES_ITEM_TBL.Tbl005 == "鏉ユ枡涓嶈壇閫�鏂�") - { totalResult += Db.Updateable<Womdab>() .SetColumns(it => new Womdab { - Dab007 = it.Dab007 - c_mes_inv_item_barcodes.Quantity, // 鍑忓皯宸ュ崟鏁伴噺 - Dab022 = (it.Dab022 ?? 0) + c_mes_inv_item_barcodes.Quantity, // 澧炲姞閫�鏂欐暟閲� - LlBl = (it.LlBl ?? 0) + (int)c_mes_inv_item_barcodes.Quantity, // 澧炲姞鏉ユ枡涓嶈壇鏁伴噺 - Dab020 = (it.Dab020 ?? 0) - c_mes_inv_item_barcodes.Quantity // 鍑忓皯宸插彂鏂欐暟閲� + Dab007 = it.Dab007 - + c_mes_inv_item_barcodes.Quantity, // 鍑忓皯宸ュ崟鏁伴噺 + Dab022 = (it.Dab022 ?? 0) + + c_mes_inv_item_barcodes.Quantity, // 澧炲姞閫�鏂欐暟閲� + LpTl = (it.LpTl ?? 0) + + (int)c_mes_inv_item_barcodes + .Quantity, // 澧炲姞鑹搧閫�鏂欐暟閲� + Dab020 = (it.Dab020 ?? 0) - + c_mes_inv_item_barcodes.Quantity // 鍑忓皯宸插彂鏂欐暟閲� }) .Where(it => it.Dab001 == c_mes_inv_item_barcodes.WorkNo - && it.Dab002 == c_mes_inv_item_barcodes.WorkLine - && it.Dab003 == c_mes_inv_item_barcodes.ItemId.ToString()) + && it.Dab002 == c_mes_inv_item_barcodes + .WorkLine + && it.Dab003 == c_mes_inv_item_barcodes + .ItemId.ToString()) .ExecuteCommand(); - } + // 鏉ユ枡涓嶈壇閫�鏂� - 鏇存柊宸ュ崟琛�(WOMDAB)鐩稿叧鏁伴噺 + else if (C_MES_ITEM_TBL.Tbl005 == "鏉ユ枡涓嶈壇閫�鏂�") + totalResult += Db.Updateable<Womdab>() + .SetColumns(it => new Womdab + { + Dab007 = it.Dab007 - + c_mes_inv_item_barcodes.Quantity, // 鍑忓皯宸ュ崟鏁伴噺 + Dab022 = (it.Dab022 ?? 0) + + c_mes_inv_item_barcodes.Quantity, // 澧炲姞閫�鏂欐暟閲� + LlBl = (it.LlBl ?? 0) + + (int)c_mes_inv_item_barcodes + .Quantity, // 澧炲姞鏉ユ枡涓嶈壇鏁伴噺 + Dab020 = (it.Dab020 ?? 0) - + c_mes_inv_item_barcodes.Quantity // 鍑忓皯宸插彂鏂欐暟閲� + }) + .Where(it => it.Dab001 == c_mes_inv_item_barcodes.WorkNo + && it.Dab002 == c_mes_inv_item_barcodes + .WorkLine + && it.Dab003 == c_mes_inv_item_barcodes + .ItemId.ToString()) + .ExecuteCommand(); // 鏇存柊閫�鏂欏崟鏄庣粏琛ㄥ凡閫�鏁伴噺 totalResult += Db.Updateable<MesItemTblDetail>() .SetColumns(it => new MesItemTblDetail { - Tld006 = (it.Tld006 ?? 0) + (int)c_mes_inv_item_barcodes.Quantity // 澧炲姞宸查��鏁伴噺 + Tld006 = (it.Tld006 ?? 0) + + (int)c_mes_inv_item_barcodes.Quantity // 澧炲姞宸查��鏁伴噺 }) .Where(it => it.Tlmid == C_MES_ITEM_TBL.Id - && it.Tld009 == c_mes_inv_item_barcodes.ItemId - && it.Tld010 == c_mes_inv_item_barcodes.WorkLine) + && it.Tld009 == c_mes_inv_item_barcodes.ItemId + && it.Tld010 == + c_mes_inv_item_barcodes.WorkLine) .ExecuteCommand(); } // 浣滀笟涓嶈壇閫�鏂� - 鏇存柊宸ュ崟琛ㄥ拰閫�鏂欏崟鏄庣粏琛� @@ -369,59 +347,66 @@ totalResult += Db.Updateable<Womdab>() .SetColumns(it => new Womdab { - Dab022 = (it.Dab022 ?? 0) + c_mes_inv_item_barcodes.Quantity, // 澧炲姞閫�鏂欐暟閲� - ZyBl = (it.ZyBl ?? 0) + (int)c_mes_inv_item_barcodes.Quantity, // 澧炲姞浣滀笟涓嶈壇鏁伴噺 - Dab020 = (it.Dab020 ?? 0) - c_mes_inv_item_barcodes.Quantity // 鍑忓皯宸插彂鏂欐暟閲� + Dab022 = (it.Dab022 ?? 0) + + c_mes_inv_item_barcodes.Quantity, // 澧炲姞閫�鏂欐暟閲� + ZyBl = (it.ZyBl ?? 0) + + (int)c_mes_inv_item_barcodes + .Quantity, // 澧炲姞浣滀笟涓嶈壇鏁伴噺 + Dab020 = (it.Dab020 ?? 0) - + c_mes_inv_item_barcodes.Quantity // 鍑忓皯宸插彂鏂欐暟閲� }) .Where(it => it.Dab001 == c_mes_inv_item_barcodes.WorkNo - && it.Dab002 == c_mes_inv_item_barcodes.WorkLine - && it.Dab003 == c_mes_inv_item_barcodes.ItemId.ToString()) + && it.Dab002 == + c_mes_inv_item_barcodes.WorkLine + && it.Dab003 == c_mes_inv_item_barcodes.ItemId + .ToString()) .ExecuteCommand(); // 鏇存柊閫�鏂欏崟鏄庣粏琛ㄥ凡閫�鏁伴噺 totalResult += Db.Updateable<MesItemTblDetail>() .SetColumns(it => new MesItemTblDetail { - Tld006 = (it.Tld006 ?? 0) + (int)c_mes_inv_item_barcodes.Quantity // 澧炲姞宸查��鏁伴噺 + Tld006 = (it.Tld006 ?? 0) + + (int)c_mes_inv_item_barcodes.Quantity // 澧炲姞宸查��鏁伴噺 }) .Where(it => it.Tlmid == C_MES_ITEM_TBL.Id - && it.Tld009 == c_mes_inv_item_barcodes.ItemId - && it.Tld010 == c_mes_inv_item_barcodes.WorkLine) + && it.Tld009 == c_mes_inv_item_barcodes.ItemId + && it.Tld010 == + c_mes_inv_item_barcodes.WorkLine) .ExecuteCommand(); } // 濡傛灉寰呴��鏁伴噺绛変簬鏈閫�鏂欐暟閲忥紝鍒欐洿鏂版槑缁嗗畬鎴愮姸鎬� - if ((C_MES_ITEM_TBL_DETAIL.Tld005 ?? 0) - (C_MES_ITEM_TBL_DETAIL.Tld006 ?? 0) == c_mes_inv_item_barcodes.Quantity) - { + if ((C_MES_ITEM_TBL_DETAIL.Tld005 ?? 0) - + (C_MES_ITEM_TBL_DETAIL.Tld006 ?? 0) == + c_mes_inv_item_barcodes.Quantity) totalResult += Db.Updateable<MesItemTblDetail>() - .SetColumns(it => new MesItemTblDetail { Tld008 = 1 }) // 璁剧疆瀹屾垚鏍囧織 + .SetColumns(it => new MesItemTblDetail + { Tld008 = 1 }) // 璁剧疆瀹屾垚鏍囧織 .Where(it => it.Tlid == C_MES_ITEM_TBL_DETAIL.Tlid) .ExecuteCommand(); - } // 妫�鏌ラ��鏂欏崟鏄惁鎵�鏈夋槑缁嗛兘宸插畬鎴� - var remainingCount = Db.Queryable<MesItemTbl, MesItemTblDetail>((a, b) => - new JoinQueryInfos(JoinType.Left, a.Id == b.Tlmid)) - .Where((a, b) => a.BillNo == p_bill_no && (b.Tld005 ?? 0) - (b.Tld006 ?? 0) > 0) + var remainingCount = Db.Queryable<MesItemTbl, MesItemTblDetail>( + (a, b) => + new JoinQueryInfos(JoinType.Left, a.Id == b.Tlmid)) + .Where((a, b) => + a.BillNo == p_bill_no && + (b.Tld005 ?? 0) - (b.Tld006 ?? 0) > 0) .Count(); // 濡傛灉鎵�鏈夋槑缁嗛兘宸插畬鎴愶紝鍒欐洿鏂伴��鏂欏崟鐘舵�佷负宸插畬鎴� if (remainingCount < 1) - { totalResult += Db.Updateable<MesItemTbl>() - .SetColumns(it => it.Tbl020 == 1 ) // 璁剧疆瀹屾垚鏍囧織 + .SetColumns(it => it.Tbl020 == 1) // 璁剧疆瀹屾垚鏍囧織 .Where(it => it.BillNo == p_bill_no) .ExecuteCommand(); - } - - if (totalResult < 3) - { - throw new Exception("鎻掑叆澶辫触"); - } + + if (totalResult < 3) throw new Exception("鎻掑叆澶辫触"); return totalResult; }); - + // 璁剧疆杩斿洖缁撴灉 // c_result = $"001[,{c_mes_inv_item_barcodes.ItemNo},{c_quantity},鎵爜鎴愬姛锛�,鍙傝�冨簱浣岪鐗╂枡@寰呴��鏁伴噺{c_in_field_valT}"; diff --git a/util/BillNo.cs b/util/BillNo.cs index 3065ded..aa7c5ef 100644 --- a/util/BillNo.cs +++ b/util/BillNo.cs @@ -6,15 +6,16 @@ public static class BillNo { /// <summary> - /// TL(閲囪喘閫�鏂欏崟),DH(鍒拌揣鍗�),JY(妫�楠屽崟),IN(鍏ュ簱鍗�) + /// TL(閲囪喘閫�鏂欏崟),DH(鍒拌揣鍗�),JY(妫�楠屽崟),IN(鍏ュ簱鍗�),TMBH(鏉$爜缂栧彿) /// </summary> /// <param name="billType"></param> /// <returns></returns> - public static string GetBillNo(string billType) + public static string GetBillNo(string billType, string itemNo = "") { var sbSql = new StringBuilder(); sbSql.Append(" DECLARE @hNo nvarchar(50) "); - sbSql.Append(" EXEC [getOrderNo] '" + billType + "',@hNo output"); + sbSql.Append(" EXEC [getOrderNo] '" + billType + "',@hNo output,'" + + itemNo + "'"); sbSql.Append(" select @hNo as t1"); var str = ""; try -- Gitblit v1.9.3