From 614d32ed2d62ab55f3a3b78bb6769df931a85bcd Mon Sep 17 00:00:00 2001 From: 啊鑫 <t2856754968@163.com> Date: 星期六, 28 十二月 2024 13:38:11 +0800 Subject: [PATCH] 其他出库和其他入库的后台 --- entity/MesInvItemOutItems.cs | 6 service/Warehouse/MesItemBlManager.cs | 15 service/Warehouse/MesItemQtManager.cs | 922 ++++++++++++++++++++++++++++++++++ entity/MesItemQtDatall.cs | 104 +++ Controllers/Warehouse/MesItemQtController.cs | 207 +++++++ Controllers/Warehouse/MesItemQtrkController.cs | 54 - service/Warehouse/MesItemQtrkManager.cs | 66 -- entity/MesInvItemOutCDetails.cs | 50 entity/MesItemQt.cs | 149 +++++ 9 files changed, 1,457 insertions(+), 116 deletions(-) diff --git a/Controllers/Warehouse/MesItemQtController.cs b/Controllers/Warehouse/MesItemQtController.cs new file mode 100644 index 0000000..a3ab253 --- /dev/null +++ b/Controllers/Warehouse/MesItemQtController.cs @@ -0,0 +1,207 @@ +锘縰sing System.Dynamic; +using Microsoft.AspNetCore.Mvc; +using NewPdaSqlServer.Dto.service; +using NewPdaSqlServer.service.Warehouse; +using NewPdaSqlServer.util; + +namespace NewPdaSqlServer.Controllers.Warehouse; + +/// <summary> +/// 鍏朵粬鍑哄簱鐩稿叧鎺ュ彛 +/// </summary> +[Route("api/[controller]")] +[ApiController] +public class MesItemQtController : ControllerBase +{ + private readonly MesItemQtManager _manager = new(); + + #region 鍩虹CRUD + + /// <summary> + /// 鑾峰彇鎵�鏈� + /// </summary> + /// <returns>鍏朵粬鍑哄簱鍗曞垪琛�</returns> + [HttpPost("GetList")] + public ResponseResult GetList() + { + try + { + dynamic resultInfos = new ExpandoObject(); + resultInfos.tbBillList = _manager.GetList(); + return new ResponseResult + { + status = 0, + message = "OK", + data = resultInfos + }; + } + catch (Exception ex) + { + return ResponseResult.ResponseError(ex); + } + } + + #endregion + + #region 鍏朵粬鍑哄簱涓氬姟 + + /// <summary> + /// 鑾峰彇鏈畬鎴愮殑閫�鏂欏崟鍙峰垪琛� + /// </summary> + /// <returns>閫�鏂欏崟鍙峰垪琛�</returns> + /// <remarks> + /// 鑾峰彇鐘舵�佷负宸插鏍�(Qt015=true)涓旀湭瀹岀粨(Qt014=false)鐨勯��鏂欏崟鍙峰垪琛� + /// </remarks> + /// <response code="200">鎴愬姛鑾峰彇閫�鏂欏崟鍙峰垪琛�</response> + /// <response code="400">鑾峰彇澶辫触</response> + [HttpPost("GetPendingQtList")] + public ResponseResult GetPendingQtList() + { + try + { + dynamic resultInfos = new ExpandoObject(); + resultInfos.tbBillList = _manager.GetPendingQtList(); + 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/MesItemQt/GetPendingQtList + /// { + /// "userName": "admin", // 鐢ㄦ埛鍚�(蹇呭~) + /// "billNo": "QT20240101001" // 閫�鏂欏崟鍙�(蹇呭~) + /// } + /// + /// 杩斿洖鏈畬鎴愮殑鏄庣粏璁板綍(Qd007-Qd008>0) + /// </remarks> + /// <response code="200">鎴愬姛鑾峰彇閫�鏂欏崟鏄庣粏</response> + /// <response code="400">鑾峰彇澶辫触锛岃繑鍥炲叿浣撻敊璇俊鎭�</response> + [HttpPost("GetPendingQtDetailList")] + public ResponseResult GetPendingQtDetailList([FromBody] WarehouseQuery query) + { + try + { + dynamic resultInfos = new ExpandoObject(); + resultInfos.tbBillList = _manager.GetPendingQtList(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/MesItemQt/OutScanBarcode + /// { + /// "billNo": "QT20240101001", // 閫�鏂欏崟鍙�(蹇呭~) + /// "barcode": "BC001", // 鏉$爜鍙�(蹇呭~) + /// "userName": "admin" // 鐢ㄦ埛鍚�(蹇呭~) + /// } + /// + /// 杩斿洖鏁版嵁鍖呭惈: + /// - form: 澶勭悊缁撴灉琛ㄥ崟 + /// - item: 寰呭鐞嗘槑缁嗗垪琛� + /// - message: 澶勭悊缁撴灉娑堟伅 + /// </remarks> + /// <response code="200">鎵弿鎴愬姛</response> + /// <response code="400">鎵弿澶辫触锛岃繑鍥炲叿浣撻敊璇俊鎭�</response> + [HttpPost("OutScanBarcode")] + public ResponseResult OutScanBarcode([FromBody] WarehouseQuery query) + { + try + { + dynamic resultInfos = new ExpandoObject(); + var (form, items, message) = _manager.OutScanBarcode(query); + resultInfos.form = form; + resultInfos.items = items; + resultInfos.message = message; + 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/MesItemQt/PrintQtckBarcode + /// { + /// "userName": "admin", // 鐢ㄦ埛鍚�(蹇呭~) + /// "billNo": "QT20240101001", // 閫�鏂欏崟鍙�(蹇呭~) + /// "barcode": "BC001", // 鏉$爜鍙�(蹇呭~) + /// "Fum": 10 // 鍙戞枡鏁伴噺(蹇呭~,蹇呴』澶т簬0) + /// } + /// + /// 杩斿洖鏁版嵁鍖呭惈: + /// - form: 澶勭悊缁撴灉琛ㄥ崟 + /// - item: 寰呭鐞嗘槑缁嗗垪琛� + /// - message: 澶勭悊缁撴灉娑堟伅 + /// </remarks> + /// <response code="200">鎵撳嵃鎴愬姛</response> + /// <response code="400">鎵撳嵃澶辫触锛岃繑鍥炲叿浣撻敊璇俊鎭�</response> + [HttpPost("PrintQtckBarcode")] + public ResponseResult PrintQtckBarcode([FromBody] WarehouseQuery query) + { + try + { + dynamic resultInfos = new ExpandoObject(); + var (form, items, message) = _manager.PrintQtckBarcode(query); + resultInfos.form = form; + resultInfos.items = items; + resultInfos.message = message; + 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/MesItemQtrkController.cs b/Controllers/Warehouse/MesItemQtrkController.cs index d60c3bb..7c773f3 100644 --- a/Controllers/Warehouse/MesItemQtrkController.cs +++ b/Controllers/Warehouse/MesItemQtrkController.cs @@ -7,7 +7,7 @@ namespace NewPdaSqlServer.Controllers.Warehouse; /// <summary> -/// 鍏朵粬鍏ュ簱鐩稿叧鎺ュ彛 +/// 鍏朵粬鍏ュ簱鐩稿叧鎺ュ彛 /// </summary> [Route("api/[controller]")] [ApiController] @@ -18,7 +18,7 @@ #region 鍩虹CRUD /// <summary> - /// 鑾峰彇鎵�鏈� + /// 鑾峰彇鎵�鏈� /// </summary> /// <returns>鍏朵粬鍏ュ簱鍗曞垪琛�</returns> [HttpPost("GetList")] @@ -42,7 +42,7 @@ } /// <summary> - /// 鏍规嵁涓婚敭鑾峰彇 + /// 鏍规嵁涓婚敭鑾峰彇 /// </summary> /// <returns>鍏朵粬鍏ュ簱鍗曚俊鎭�</returns> [HttpPost("GetById")] @@ -70,11 +70,11 @@ #region 鍏朵粬鍏ュ簱涓氬姟 /// <summary> - /// 鑾峰彇鍏朵粬鍏ュ簱鍗曞彿鍒楄〃 + /// 鑾峰彇鍏朵粬鍏ュ簱鍗曞彿鍒楄〃 /// </summary> /// <returns>鍏朵粬鍏ュ簱鍗曞彿鍒楄〃</returns> /// <remarks> - /// 鑾峰彇鐘舵�佷负宸插鏍�(Qt015=1)涓旀湭瀹岀粨(Qt014=0)鐨勫叾浠栧叆搴撳崟鍙峰垪琛� + /// 鑾峰彇鐘舵�佷负宸插鏍�(Qt015=1)涓旀湭瀹岀粨(Qt014=0)鐨勫叾浠栧叆搴撳崟鍙峰垪琛� /// </remarks> /// <response code="200">鎴愬姛鑾峰彇鍏ュ簱鍗曞彿鍒楄〃</response> /// <response code="400">鑾峰彇澶辫触</response> @@ -99,19 +99,17 @@ } /// <summary> - /// 鑾峰彇鍏朵粬鍏ュ簱鍗曟槑缁嗗垪琛� + /// 鑾峰彇鍏朵粬鍏ュ簱鍗曟槑缁嗗垪琛� /// </summary> /// <param name="query">鏌ヨ鍙傛暟锛屽繀椤诲寘鍚玝illNo(鍏ュ簱鍗曞彿)</param> /// <returns>鍏ュ簱鍗曟槑缁嗗垪琛�</returns> /// <remarks> - /// 璇锋眰绀轰緥: - /// + /// 璇锋眰绀轰緥: /// POST /api/MesItemQtrk/GetQtckDetailList /// { - /// "billNo": "QT202401010001" + /// "billNo": "QT202401010001" /// } - /// - /// 杩斿洖鏈畬鎴愬叆搴撶殑鏄庣粏璁板綍(Qd007-Qd008>0) + /// 杩斿洖鏈畬鎴愬叆搴撶殑鏄庣粏璁板綍(Qd007-Qd008>0) /// </remarks> /// <response code="200">鎴愬姛鑾峰彇鍏ュ簱鍗曟槑缁�</response> /// <response code="400">鑾峰彇澶辫触锛岃繑鍥炲叿浣撻敊璇俊鎭�</response> @@ -136,20 +134,18 @@ } /// <summary> - /// 鎵弿搴撲綅 + /// 鎵弿搴撲綅 /// </summary> /// <param name="query">鏌ヨ鍙傛暟</param> /// <returns>搴撲綅淇℃伅</returns> /// <remarks> - /// 璇锋眰绀轰緥: - /// + /// 璇锋眰绀轰緥: /// POST /api/MesItemQtrk/ScanInDepotsQT /// { - /// "sectionCode": "A01-01-01", - /// "billNo": "QT202401010001" + /// "sectionCode": "A01-01-01", + /// "billNo": "QT202401010001" /// } - /// - /// 楠岃瘉搴撲綅鏄惁灞炰簬鐢宠鍗曟寚瀹氱殑浠撳簱 + /// 楠岃瘉搴撲綅鏄惁灞炰簬鐢宠鍗曟寚瀹氱殑浠撳簱 /// </remarks> /// <response code="200">鎵弿鎴愬姛</response> /// <response code="400">鎵弿澶辫触锛岃繑鍥炲叿浣撻敊璇俊鎭�</response> @@ -174,25 +170,23 @@ } /// <summary> - /// 鎵弿鏉$爜鍏ュ簱 + /// 鎵弿鏉$爜鍏ュ簱 /// </summary> /// <param name="query">鏌ヨ鍙傛暟</param> /// <returns>鍏ュ簱缁撴灉鍜屽緟澶勭悊鏄庣粏</returns> /// <remarks> - /// 璇锋眰绀轰緥: - /// + /// 璇锋眰绀轰緥: /// POST /api/MesItemQtrk/ScanInBcodeQtrk /// { - /// "userName": "admin", - /// "sectionCode": "A01-01-01", - /// "barcode": "BC001", - /// "billNo": "QT202401010001" + /// "userName": "admin", + /// "sectionCode": "A01-01-01", + /// "barcode": "BC001", + /// "billNo": "QT202401010001" /// } - /// - /// - 楠岃瘉鏉$爜鏄惁宸插叆搴� - /// - 楠岃瘉鏉$爜鏄惁涓哄叾浠栧叆搴撴潯鐮� - /// - 楠岃瘉鍏ュ簱鏁伴噺鏄惁瓒呰繃鐢宠鏁伴噺 - /// - 鎵ц鍏ュ簱浜嬪姟澶勭悊 + /// - 楠岃瘉鏉$爜鏄惁宸插叆搴� + /// - 楠岃瘉鏉$爜鏄惁涓哄叾浠栧叆搴撴潯鐮� + /// - 楠岃瘉鍏ュ簱鏁伴噺鏄惁瓒呰繃鐢宠鏁伴噺 + /// - 鎵ц鍏ュ簱浜嬪姟澶勭悊 /// </remarks> /// <response code="200">鎵弿鎴愬姛</response> /// <response code="400">鎵弿澶辫触锛岃繑鍥炲叿浣撻敊璇俊鎭�</response> diff --git a/entity/MesInvItemOutCDetails.cs b/entity/MesInvItemOutCDetails.cs index e3e4e4d..12c801d 100644 --- a/entity/MesInvItemOutCDetails.cs +++ b/entity/MesInvItemOutCDetails.cs @@ -24,25 +24,25 @@ /// 鐗╂枡鏉$爜 /// </summary> [SugarColumn(ColumnName = "ITEM_BARCODE")] - public string ItemBarcode { get; set; } + public string? ItemBarcode { get; set; } /// <summary> /// 瀹㈡埛鐗╂枡缂栫爜锛堟棤鏉$爜鎵嬪伐褰曞叆锛屾湁鏉$爜涓哄啑浣欏瓧娈碉級 /// </summary> [SugarColumn(ColumnName = "C_ITEM_CODE")] - public string CItemCode { get; set; } + public string? CItemCode { get; set; } /// <summary> /// 鏈徃鐗╂枡缂栫爜锛堟棤鏉$爜鎵嬪伐褰曞叆锛屾湁鏉$爜涓哄啑浣欏瓧娈碉級 /// </summary> [SugarColumn(ColumnName = "ITEM_NO")] - public string ItemNo { get; set; } + public string? ItemNo { get; set; } /// <summary> /// 鍘傚鎵规 /// </summary> [SugarColumn(ColumnName = "LOT_NO")] - public string LotNo { get; set; } + public string? LotNo { get; set; } /// <summary> /// 鏁伴噺锛堟棤鏉$爜鎵嬪伐褰曞叆锛屾湁鏉$爜涓哄啑浣欏瓧娈碉級 @@ -61,7 +61,7 @@ /// 鍒涘缓浜� /// </summary> [SugarColumn(ColumnName = "CREATE_BY")] - public string CreateBy { get; set; } + public string? CreateBy { get; set; } /// <summary> /// 鍒涘缓鏃堕棿 @@ -73,7 +73,7 @@ /// 鏈�鍚庢洿鏂颁汉 /// </summary> [SugarColumn(ColumnName = "LASTUPDATE_BY")] - public string LastupdateBy { get; set; } + public string? LastupdateBy { get; set; } /// <summary> /// 鏈�鍚庢洿鏂版椂闂� @@ -85,25 +85,25 @@ /// 瀹㈡埛缂栫爜 /// </summary> [SugarColumn(ColumnName = "CUST_NO")] - public string CustNo { get; set; } + public string? CustNo { get; set; } /// <summary> /// 浠撳簱缂栫爜 /// </summary> [SugarColumn(ColumnName = "DEPOT_CODE")] - public string DepotCode { get; set; } + public string? DepotCode { get; set; } /// <summary> /// 璐т綅缂栫爜 /// </summary> [SugarColumn(ColumnName = "DEPOT_SECTION_CODE")] - public string DepotSectionCode { get; set; } + public string? DepotSectionCode { get; set; } /// <summary> /// 澶囨敞 /// </summary> [SugarColumn(ColumnName = "REMARK")] - public string Remark { get; set; } + public string? Remark { get; set; } /// <summary> /// 鍏嶆鏍囪瘑(0-鍚︼紝1-鏄�) @@ -115,7 +115,7 @@ /// 鎶曟枡鎵规 /// </summary> [SugarColumn(ColumnName = "PRD_LOT_NO")] - public string PrdLotNo { get; set; } + public string? PrdLotNo { get; set; } /// <summary> /// 鏄惁鍋氭帴鏀舵鏌� @@ -128,55 +128,55 @@ /// 宸ュ巶缂栧彿 /// </summary> [SugarColumn(ColumnName = "FACTORY")] - public string Factory { get; set; } + public string? Factory { get; set; } /// <summary> /// 鍏徃缂栧彿 /// </summary> [SugarColumn(ColumnName = "COMPANY")] - public string Company { get; set; } + public string? Company { get; set; } /// <summary> /// 鍘熺敓浜у伐鍗� /// </summary> [SugarColumn(ColumnName = "TASK_NOY")] - public string TaskNoy { get; set; } + public string? TaskNoy { get; set; } /// <summary> /// 绠卞彿 /// </summary> [SugarColumn(ColumnName = "BOX_NO")] - public string BoxNo { get; set; } + public string? BoxNo { get; set; } /// <summary> /// 鍖呰鎵规 /// </summary> [SugarColumn(ColumnName = "TASK_PACK")] - public string TaskPack { get; set; } + public string? TaskPack { get; set; } /// <summary> /// 鍗℃澘 /// </summary> [SugarColumn(ColumnName = "KB_NO")] - public string KbNo { get; set; } + public string? KbNo { get; set; } /// <summary> /// 鏉垮瀷 /// </summary> [SugarColumn(ColumnName = "BOARD_STYLE")] - public string BoardStyle { get; set; } + public string? BoardStyle { get; set; } /// <summary> /// 鐢熶骇宸ュ崟 /// </summary> [SugarColumn(ColumnName = "TASK_NO")] - public string TaskNo { get; set; } + public string? TaskNo { get; set; } /// <summary> /// 宸ュ崟鍙� /// </summary> [SugarColumn(ColumnName = "WORK_NO")] - public string WorkNo { get; set; } + public string? WorkNo { get; set; } /// <summary> /// 宸ヤ綔绾� @@ -188,13 +188,13 @@ /// 渚涘簲鍟嗙紪鍙� /// </summary> [SugarColumn(ColumnName = "SUPP_NO")] - public string SuppNo { get; set; } + public string? SuppNo { get; set; } /// <summary> /// 閲囪喘鍗曞彿 /// </summary> [SugarColumn(ColumnName = "PBILL_NO")] - public string PbillNo { get; set; } + public string? PbillNo { get; set; } /// <summary> /// 鏀跺埌鏁伴噺 @@ -213,19 +213,19 @@ /// 鏀惰揣浜� /// </summary> [SugarColumn(ColumnName = "RCV_BY")] - public string RcvBy { get; set; } + public string? RcvBy { get; set; } /// <summary> /// 鏀惰揣閮ㄥ垎 /// </summary> [SugarColumn(ColumnName = "RCV_PART")] - public string RcvPart { get; set; } + public string? RcvPart { get; set; } /// <summary> /// 鍏ュ簱缂栧彿 /// </summary> [SugarColumn(ColumnName = "RK_NO")] - public string RkNo { get; set; } + public string? RkNo { get; set; } /// <summary> /// 閲囪喘璁㈠崟ID diff --git a/entity/MesInvItemOutItems.cs b/entity/MesInvItemOutItems.cs index 0756b27..db2bd0a 100644 --- a/entity/MesInvItemOutItems.cs +++ b/entity/MesInvItemOutItems.cs @@ -229,6 +229,12 @@ [SugarColumn(ColumnName = "about_Guid")] public Guid? AboutGuid { get; set; } + /// <summary> + /// 鍑哄簱鏄庣粏ID + /// </summary> + [SugarColumn(ColumnName = "qt_out_id")] + public Guid? QtOutId { get; set; } + [SugarColumn(IsIgnore = true)] public string? ItemName { get; set; } [SugarColumn(IsIgnore = true)] public string? ItemModel { get; set; } diff --git a/entity/MesItemQt.cs b/entity/MesItemQt.cs new file mode 100644 index 0000000..2548f32 --- /dev/null +++ b/entity/MesItemQt.cs @@ -0,0 +1,149 @@ +锘縰sing SqlSugar; + +namespace NewPdaSqlServer.entity; + +/// <summary> +/// </summary> +[SugarTable("MES_ITEM_QT")] +public class MesItemQt +{ + /// <summary> + /// 榛樿鍊�: (newid()) + /// </summary> + [SugarColumn(ColumnName = "guid", IsPrimaryKey = true)] + public Guid Guid { get; set; } + + /// <summary> + /// 鐢宠鍗曞彿 + /// </summary> + [SugarColumn(ColumnName = "qtck")] + public string? Qtck { get; set; } + + /// <summary> + /// 鐢宠鏃ユ湡 + /// </summary> + [SugarColumn(ColumnName = "qt001")] + public DateTime? Qt001 { get; set; } + + /// <summary> + /// 瀹℃牳鏃ユ湡 + /// </summary> + [SugarColumn(ColumnName = "qt002")] + public DateTime? Qt002 { get; set; } + + /// <summary> + /// 鍑哄簱绫诲埆 + /// </summary> + [SugarColumn(ColumnName = "qt003")] + public string? Qt003 { get; set; } + + /// <summary> + /// 涓氬姟绫诲瀷 + /// </summary> + [SugarColumn(ColumnName = "qt004")] + public string? Qt004 { get; set; } + + /// <summary> + /// 鍒跺崟浜� + /// </summary> + [SugarColumn(ColumnName = "qt005")] + public string? Qt005 { get; set; } + + /// <summary> + /// 鐢熶骇宸ュ崟 + /// </summary> + [SugarColumn(ColumnName = "qt006")] + public string? Qt006 { get; set; } + + /// <summary> + /// 鍙戞枡浠撳簱id + /// </summary> + [SugarColumn(ColumnName = "qt008")] + public string? Qt008 { get; set; } + + /// <summary> + /// 鐢宠閮ㄩ棬id + /// </summary> + [SugarColumn(ColumnName = "qt009")] + public string? Qt009 { get; set; } + + /// <summary> + /// 鍑哄簱鍘熷洜 + /// </summary> + [SugarColumn(ColumnName = "qt010")] + public string? Qt010 { get; set; } + + /// <summary> + /// 浠撳簱缂栫爜 + /// </summary> + [SugarColumn(ColumnName = "qt011")] + public string? Qt011 { get; set; } + + /// <summary> + /// 閮ㄩ棬缂栫爜 + /// </summary> + [SugarColumn(ColumnName = "qt012")] + public string? Qt012 { get; set; } + + /// <summary> + /// 鏁伴噺 + /// </summary> + [SugarColumn(ColumnName = "qt013")] + public int? Qt013 { get; set; } + + /// <summary> + /// 瀹岀粨鏍囪瘑 + /// 榛樿鍊�: ((0)) + /// </summary> + [SugarColumn(ColumnName = "qt014")] + public bool? Qt014 { get; set; } + + /// <summary> + /// 瀹℃牳鐘舵�� + /// 榛樿鍊�: ((0)) + /// </summary> + [SugarColumn(ColumnName = "qt015")] + public bool? Qt015 { get; set; } + + /// <summary> + /// 瀹℃牳浜� + /// </summary> + [SugarColumn(ColumnName = "qt016")] + public string? Qt016 { get; set; } + + /// <summary> + /// 浠诲姟鍗曞彿 + /// </summary> + [SugarColumn(ColumnName = "qt017")] + public string? Qt017 { get; set; } + + /// <summary> + /// 瀹㈡埛 + /// </summary> + [SugarColumn(ColumnName = "qt018")] + public string? Qt018 { get; set; } + + /// <summary> + /// 鍑哄簱绫诲瀷 1鐩樹簭 2鍖呮潗棰嗙敤 3鐮斿彂棰嗙敤 4鍔炲叕鐢ㄥ搧棰嗙敤 5妯″叿鏉愭枡棰嗙敤 6浣庡�兼槗鑰楀搧棰嗙敤 7鐢熶骇閰嶄欢 8閲囪喘閫�鏂� 9娉ㄥ浠朵笉鑹��鏂� + /// </summary> + [SugarColumn(ColumnName = "qt019")] + public string? Qt019 { get; set; } + + /// <summary> + /// 鍑哄簱鏂瑰悜锛堟櫘閫氾紝閫�璐э級 + /// </summary> + [SugarColumn(ColumnName = "qt020")] + public string? Qt020 { get; set; } + + /// <summary> + /// 閿�鍞鍗曞彿 + /// </summary> + [SugarColumn(ColumnName = "qt021")] + public string? Qt021 { get; set; } + + /// <summary> + /// 棰嗘枡浜� + /// </summary> + [SugarColumn(ColumnName = "qt022")] + public string? Qt022 { get; set; } +} \ No newline at end of file diff --git a/entity/MesItemQtDatall.cs b/entity/MesItemQtDatall.cs new file mode 100644 index 0000000..f69e23d --- /dev/null +++ b/entity/MesItemQtDatall.cs @@ -0,0 +1,104 @@ +锘縰sing SqlSugar; + +namespace NewPdaSqlServer.entity; + +/// <summary> +/// </summary> +[SugarTable("MES_ITEM_QT_DATALL")] +public class MesItemQtDatall +{ + /// <summary> + /// 榛樿鍊�: (newid()) + /// </summary> + [SugarColumn(ColumnName = "guid", IsPrimaryKey = true)] + public Guid Guid { get; set; } + + /// <summary> + /// 涓昏〃guid + /// </summary> + [SugarColumn(ColumnName = "qtGuid")] + public Guid? QtGuid { get; set; } + + /// <summary> + /// 宸ュ崟鍙� + /// </summary> + [SugarColumn(ColumnName = "qd001")] + public string? Qd001 { get; set; } + + /// <summary> + /// 鐗╂枡缂栧彿 + /// </summary> + [SugarColumn(ColumnName = "qd002")] + public string? Qd002 { get; set; } + + /// <summary> + /// 鐗╂枡鍚嶇О + /// </summary> + [SugarColumn(ColumnName = "qd003")] + public string? Qd003 { get; set; } + + /// <summary> + /// 瑙勬牸鍨嬪彿 + /// </summary> + [SugarColumn(ColumnName = "qd004")] + public string? Qd004 { get; set; } + + /// <summary> + /// 棰滆壊 + /// </summary> + [SugarColumn(ColumnName = "qd005")] + public string? Qd005 { get; set; } + + /// <summary> + /// 璁″垝鏁伴噺 + /// </summary> + [SugarColumn(ColumnName = "qd006")] + public int? Qd006 { get; set; } + + /// <summary> + /// 鐢宠鏁伴噺 + /// </summary> + [SugarColumn(ColumnName = "qd007")] + public int? Qd007 { get; set; } + + /// <summary> + /// 宸查鏁伴噺 + /// </summary> + [SugarColumn(ColumnName = "qd008")] + public int? Qd008 { get; set; } + + /// <summary> + /// 鍗曚綅 + /// </summary> + [SugarColumn(ColumnName = "qd009")] + public string? Qd009 { get; set; } + + /// <summary> + /// 澶囨敞 + /// </summary> + [SugarColumn(ColumnName = "qd010")] + public string? Qd010 { get; set; } + + /// <summary> + /// 瀹岀粨鏍囪瘑 + /// </summary> + [SugarColumn(ColumnName = "qd011")] + public int? Qd011 { get; set; } + + /// <summary> + /// </summary> + [SugarColumn(ColumnName = "itemId")] + public string? ItemId { get; set; } + + /// <summary> + /// 鐗╂枡缂栫爜 = ERP鐗╂枡缂栧彿||棰滆壊缂栧彿 + /// </summary> + [SugarColumn(IsIgnore = true)] + public string? ItemNo { get; set; } + + /// <summary> + /// 浠撳簱缂栫爜 + /// </summary> + [SugarColumn(IsIgnore = true)] + public string? Qt011 { get; set; } +} \ No newline at end of file diff --git a/service/Warehouse/MesItemBlManager.cs b/service/Warehouse/MesItemBlManager.cs index 2d70ca7..7181715 100644 --- a/service/Warehouse/MesItemBlManager.cs +++ b/service/Warehouse/MesItemBlManager.cs @@ -1692,18 +1692,21 @@ // 鑾峰彇鏈�缁堢殑寰呭鐞嗗垪琛� + // 鑾峰彇琛ユ枡鍗曟槑缁嗕腑鏈畬鎴愮殑璁板綍 + // 閫氳繃宸﹁繛鎺ユ煡璇㈣ˉ鏂欏崟(MesItemBl)鍜岃ˉ鏂欏崟鏄庣粏(MesItemBlDetail)琛� + // 鏉′欢: 1.琛ユ枡鍗曞彿鍖归厤 2.璁″垝鏁伴噺(Bld007)鍑忓幓宸茶ˉ鏁伴噺(Bld008)澶т簬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 MesItemBlDetail { - Bld012 = b.Bld012, - Bld002 = b.Bld002, - Bld003 = b.Bld003, - Bld004 = b.Bld004, - Bld007 = b.Bld007, - Bld008 = b.Bld008 + Bld012 = b.Bld012, // 鐗╂枡ID + Bld002 = b.Bld002, // 鐗╂枡缂栧彿 + Bld003 = b.Bld003, // 鐗╂枡鍚嶇О + Bld004 = b.Bld004, // 鐗╂枡瑙勬牸 + Bld007 = b.Bld007, // 璁″垝鏁伴噺 + Bld008 = b.Bld008 // 宸茶ˉ鏁伴噺 }) .ToList(); diff --git a/service/Warehouse/MesItemQtManager.cs b/service/Warehouse/MesItemQtManager.cs new file mode 100644 index 0000000..01ce4e1 --- /dev/null +++ b/service/Warehouse/MesItemQtManager.cs @@ -0,0 +1,922 @@ +锘縰sing NewPdaSqlServer.DB; +using NewPdaSqlServer.Dto.service; +using NewPdaSqlServer.entity; +using NewPdaSqlServer.util; +using SqlSugar; + +namespace NewPdaSqlServer.service.Warehouse; + +public class MesItemQtManager : Repository<MesItemQt> +{ + //褰撳墠绫诲凡缁忕户鎵夸簡 Repository 澧炪�佸垹銆佹煡銆佹敼鐨勬柟娉� + /// <summary> + /// 鑾峰彇鏈畬鎴愮殑閫�鏂欏崟鍙峰垪琛� + /// </summary> + /// <returns>閫�鏂欏崟鍙峰垪琛�</returns> + public List<string> GetPendingQtList() + { + return Db.Queryable<MesItemQt>() + .Where(it => + (it.Qt015 ?? false) == true && (it.Qt014 ?? false) == false) + .OrderByDescending(it => it.Qtck) + .Select(it => it.Qtck) + .ToList(); + } + + /// <summary> + /// 鑾峰彇寰呭鐞嗙殑閫�鏂欏崟鏄庣粏鍒楄〃 + /// </summary> + /// <param name="query">浠撳簱鏌ヨ鍙傛暟锛屽寘鍚敤鎴峰悕鍜屽崟鎹彿</param> + /// <returns>寰呭鐞嗙殑閫�鏂欏崟鏄庣粏鍒楄〃</returns> + public List<MesItemQtDatall> GetPendingQtList(WarehouseQuery query) + { + // 浠庢煡璇㈠弬鏁颁腑鑾峰彇鐢ㄦ埛鍚嶅拰鍗曟嵁鍙� + var c_User = query.userName; + var p_bill_no = query.billNo; + + // 鏍规嵁鍗曟嵁鍙锋煡璇㈤��鏂欏崟涓昏〃淇℃伅 + var mesItemQt = Db.Queryable<MesItemQt>() + .Where(it => it.Qtck == p_bill_no) + .First(); + + // 濡傛灉鏈壘鍒伴��鏂欏崟锛屾姏鍑哄紓甯� + if (mesItemQt == null) + { + throw new Exception($"鏈煡璇㈠埌姝ゅ叾浠栧叆搴撶敵璇峰崟 {p_bill_no}"); + } + + // 妫�鏌ラ��鏂欏崟鐨勫鏍哥姸鎬�(Qt015)锛屾湭瀹℃牳鍒欐姏鍑哄紓甯� + if (mesItemQt.Qt015 == false) + { + throw new Exception($"鍏朵粬鍑哄簱鐢宠鍗� {p_bill_no} 鏈鏍革紝璇风‘璁わ紒"); + } + + // 妫�鏌ラ��鏂欏崟鐨勫畬缁撶姸鎬�(Qt014)锛屽凡瀹岀粨鍒欐姏鍑哄紓甯� + if (mesItemQt.Qt014 == true) + { + throw new Exception($"鍏朵粬鍑哄簱鐢宠鍗� {p_bill_no} 宸插畬缁擄紝璇风‘璁わ紒"); + } + + // 鑱旇〃鏌ヨ鑾峰彇鏈畬鎴愮殑鏄庣粏鍒楄〃 + // 鍏宠仈琛細 + // - MesItemQt: 閫�鏂欏崟涓昏〃(a) + // - MesItemQtDatall: 閫�鏂欏崟鏄庣粏琛�(b) + // - MesItems: 鐗╂枡鍩虹淇℃伅琛�(c) + var pendingList = Db.Queryable<MesItemQt, MesItemQtDatall, MesItems>( + (a, b, c) => + new JoinQueryInfos( + JoinType.Left, a.Guid == b.QtGuid, // 涓昏〃鍜屾槑缁嗚〃閫氳繃Guid鍏宠仈 + JoinType.Left, + b.ItemId == c.Id.ToString())) // 鏄庣粏琛ㄥ拰鐗╂枡琛ㄩ�氳繃ItemId鍏宠仈 + .Where((a, b, c) => + a.Qtck == p_bill_no && // 鍖归厤鍗曟嵁鍙� + (b.Qd007 ?? 0) - (b.Qd008 ?? 0) > + 0) // 璁″垝鏁伴噺鍑忓幓宸插畬鎴愭暟閲忓ぇ浜�0鐨勮褰�(鍗虫湭瀹屾垚鐨勮褰�) + .OrderBy((a, b, c) => c.ItemNo) // 鎸夌墿鏂欑紪鍙锋帓搴� + .Select((a, b, c) => new MesItemQtDatall + { + Qd002 = b.Qd002, // 鏄庣粏琛屽彿 + Qt011 = a.Qt011, // 閫�鏂欏師鍥� + ItemNo = c.ItemNo, // 鐗╂枡缂栧彿 + Qd007 = b.Qd007 ?? 0, // 璁″垝鏁伴噺 + Qd008 = b.Qd008 ?? 0 // 宸插畬鎴愭暟閲� + }) + .ToList(); + + return pendingList; + } + + public (WarehouseQuery form, List<MesItemQtDatall> item, string message) + OutScanBarcode( + WarehouseQuery query) + { + var p_bill_no = query.billNo; + var p_item_barcode = query.barcode; + var c_user = query.userName; + var p_bill_type_id = 200; + var p_transaction_no = 202; + + // 妫�鏌ュ崟鎹彿鏄惁涓虹┖ + if (string.IsNullOrEmpty(p_bill_no)) + { + throw new Exception("璇烽�夊彇鍗曟嵁鍙凤紒"); + } + + // 妫�鏌ユ槸鍚﹂噸澶嶆壂鎻� + var existingBarcode = Db.Queryable<MesInvItemOutCDetails>() + .Where(it => + it.ItemBarcode == p_item_barcode && it.PbillNo == p_bill_no) + .Any(); + + if (existingBarcode) + { + throw new Exception("姝ゆ潯鐮佸凡缁忔壂鐮佸嚭搴�,鍕块噸澶嶆壂鎻忥紒"); + } + + // 鑾峰彇鏉$爜淇℃伅 + var barcode = Db.Queryable<MesInvItemBarcodes>() + .Where(it => it.ItemBarcode == p_item_barcode) + .First(); + + if (barcode == null) + { + throw new Exception($"mes涓笉瀛樺湪姝ゆ潯鐮�,璇锋牳瀵癸紒{p_item_barcode}"); + } + + // 鑾峰彇搴撳瓨淇℃伅 + var stock = Db.Queryable<MesInvItemStocks>() + .Where(it => it.ItemBarcode == p_item_barcode && it.Quantity > 0) + .First(); + + if (stock == null) + { + throw new Exception($"搴撳瓨涓棤姝ゆ潯鐮侊紝璇锋鏌ユ潯鐮佹槸鍚︽湭鍏ュ簱鎴栧凡鍑哄簱锛亄p_item_barcode}"); + } + + + if (string.IsNullOrEmpty(stock.DepotsCode)) + { + throw new Exception($"璋冩嫧涓殑鏉$爜涓嶅彲鍙戞枡,璇峰厛瀹屾垚璋冩嫧鍗曟嵁{p_item_barcode}"); + } + + if (stock.DepotsCode is "S006" or "S005") + { + throw new Exception($"鏉$爜鍦ㄤ笉鑹搧浠撲笅 涓嶅彲鍙戞枡{p_item_barcode}"); + } + + // 妫�鏌ユ槸鍚﹀湪瀵勫瓨浠撲綅 + // var isDepotSection = Db.Queryable<MesJcDepot>() + // .Where(it => it.DepotSectionsCode == stock.DepotSectionsCode) + // .Any(); + // + // if (isDepotSection) + // { + // throw new Exception($"鍦ㄥ瘎瀛樹粨浣嶄笅鐨勬潯鐮佷笉鍙洿鎺ユ壂鐮佸彂鏂檣p_item_barcode}"); + // } + + // 鑾峰彇鍏朵粬鍑哄簱鍗曚俊鎭� + var mesItemQt = Db.Queryable<MesItemQt>() + .Where(it => it.Qtck == p_bill_no) + .First(); + + if (mesItemQt == null) + { + throw new Exception($"鍏朵粬鍑哄簱鐢宠鍗� {p_bill_no} 涓嶅瓨鍦紝璇风‘璁わ紒"); + } + + // 妫�鏌ヤ粨搴撴槸鍚︿竴鑷� + if (mesItemQt.Qt011 != stock.DepotsCode) + { + throw new Exception( + $"鎵爜鍑鸿揣浠撳簱{stock.DepotsCode}涓庡叾浠栧嚭搴撶敵璇蜂粨搴搟mesItemQt.Qt011}涓嶄竴鑷达紝璇锋牳瀵癸紒"); + } + + // 鑾峰彇鍑哄簱鍗曟槑缁� + var qtDetail = Db.Queryable<MesItemQtDatall>() + .Where(it => + it.QtGuid == mesItemQt.Guid && + it.ItemId == stock.ItemId.ToString()) + .First(); + + if (qtDetail == null) + { + throw new Exception("鎵爜鐗╂枡闈炴湰娆″嚭搴撶敵璇风墿鏂欙紝璇锋牳瀵癸紒"); + } + + // 妫�鏌ュ墿浣欐暟閲� + var remainingQty = (qtDetail.Qd007 ?? 0) - (qtDetail.Qd008 ?? 0); + if (remainingQty <= 0) + { + throw new Exception($"鐢宠鐗╂枡 {barcode.ItemNo} 宸插嚭搴撳畬鎴愶紒"); + } + + // 妫�鏌ユ暟閲忔槸鍚﹁秴鍑� + if (stock.Quantity > remainingQty) + { + var pendingList = Db + .Queryable<MesItemQt, MesItemQtDatall, MesItems>( + (a, b, c) => new JoinQueryInfos( + JoinType.Left, a.Guid == b.QtGuid, + JoinType.Left, b.ItemId == c.Id.ToString())) + .Where((a, b, c) => a.Qtck == p_bill_no && + (b.Qd007 ?? 0) - (b.Qd008 ?? 0) > 0) + .OrderBy((a, b, c) => c.ItemNo) + .Select((a, b, c) => new MesItemQtDatall + { + Qd002 = b.Qd002, // 鏄庣粏琛屽彿 + Qt011 = a.Qt011, // 閫�鏂欏師鍥� + ItemNo = c.ItemNo, // 鐗╂枡缂栧彿 + Qd007 = b.Qd007 ?? 0, // 璁″垝鏁伴噺 + Qd008 = b.Qd008 ?? 0 // 宸插畬鎴愭暟閲� + }) + .ToList(); + + var message = + $"璇风‘璁ゅ彂鏂欐暟閲忥紒锛佸凡甯﹀嚭婊¤冻鍏朵粬鍑哄簱鍗曠殑鍙戞枡鏁伴噺 {remainingQty} 纭鍚庤鐐瑰嚮鏉$爜鎷嗗垎"; + + query.itemNo = stock.ItemNo; + query.Num = stock.Quantity; + query.Fum = remainingQty; + + return (query, pendingList, message); + } + + var mesItemQtDatalls = new List<MesItemQtDatall>(); + var mess = ""; + UseTransaction(db => + { + var commit = 0; + + // 鏌ユ壘褰撳ぉ鏄惁宸插瓨鍦ㄥ嚭搴撳崟 + var existingOut = Db.Queryable<MesInvItemOuts>() + .Where(it => it.PbillNo == p_bill_no + // && it.DepotCode == stock.DepotsCode + && it.DepotId == stock.DepotId + && it.OutDate.Value.Date.ToString("yyyy-MM-dd") == + DateTime.Now.Date.ToString("yyyy-MM-dd") + && it.BillTypeId == p_bill_type_id + && it.TransactionNo == p_transaction_no + && it.Status == 0) + .First(); + + Guid outId; + string outNo; + + if (existingOut == null) + { + // 鍒涘缓鏂扮殑鍑哄簱鍗� + outId = Guid.NewGuid(); + outNo = BillNo.GetBillNo("INV_OUT_OTHER"); + + var mesItemQt = Db.Queryable<MesItemQt>() + .Where(it => it.Qtck == p_bill_no) + .First(); + + var newOut = new MesInvItemOuts + { + Guid = outId, + ItemOutNo = outNo, + TaskNo = p_bill_no, + Status = 0, + CreateBy = c_user, + CreateDate = DateTime.Now, + LastupdateBy = c_user, + LastupdateDate = DateTime.Now, + BillTypeId = p_bill_type_id, + TransactionNo = p_transaction_no, + DepotCode = stock.DepotsCode, + DepotId = stock.DepotsId.HasValue + ? (int)stock.DepotsId + : null, + OutPart = mesItemQt.Qt012, + FType = 0, + WorkNo = p_bill_no, + OutType = "鍏朵粬鍑哄簱", + PbillNo = p_bill_no, + OutDate = DateTime.Now, + Nflag = 0, + Reason = mesItemQt.Qt010, + Remark = mesItemQt.Qt010 + }; + + commit += db.Insertable(newOut).IgnoreColumns(true) + .ExecuteCommand(); + } + else + { + outId = existingOut.Guid; + outNo = existingOut.ItemOutNo; + } + + // 鑾峰彇閫�鏂欏崟鏄庣粏淇℃伅 + qtDetail = Db.Queryable<MesItemQtDatall>() + .Where(it => + it.QtGuid == mesItemQt.Guid && + it.ItemId == stock.ItemId.ToString()) + .First(); + + if (qtDetail == null) + { + throw new Exception($"鏈壘鍒板搴旂殑閫�鏂欏崟鏄庣粏淇℃伅"); + } + + // 妫�鏌ユ槸鍚﹀凡瀛樺湪鍑哄簱鐗╂枡璁板綍 + var existingOutItem = Db.Queryable<MesInvItemOutItems>() + .Where(it => + it.ItemOutId == outId && it.ItemId == barcode.ItemId) + .First(); + + if (existingOutItem == null) + { + // 鍒涘缓鏂扮殑鍑哄簱鐗╂枡璁板綍 + var newOutItem = new MesInvItemOutItems + { + Guid = Guid.NewGuid(), + ItemOutId = outId, + ItemNo = qtDetail.Qd002, + Quantity = stock.Quantity, + CreateBy = c_user, + CreateDate = DateTime.Now, + LastupdateBy = c_user, + LastupdateDate = DateTime.Now, + DepotCode = stock.DepotsCode, + TaskNo = p_bill_no, + WorkNo = p_bill_no, + QtOutId = qtDetail.Guid, + // WorkLine = qtDetail.Id, + // ErpItemNo = qtDetail.Qd012, + PbillNo = p_bill_no, + ItemId = !string.IsNullOrEmpty(qtDetail.ItemId) + ? long.Parse(qtDetail.ItemId) + : null, + FType = 0, + // Unit = qtDetail.Qd009 + }; + + commit += db.Insertable(newOutItem).IgnoreColumns(true) + .ExecuteCommand(); + } + else + { + // 鏇存柊宸插瓨鍦ㄧ殑鍑哄簱鐗╂枡璁板綍鏁伴噺 + commit += db.Updateable<MesInvItemOutItems>() + .SetColumns(it => + it.Quantity == (it.Quantity ?? 0) + stock.Quantity) + .Where(it => it.ItemOutId == outId && + it.ItemId == barcode.ItemId && + it.QtOutId == qtDetail.Guid) + .ExecuteCommand(); + } + + // 鍒涘缓鍑哄簱鏉$爜鏄庣粏璁板綍 + var outCDetail = new MesInvItemOutCDetails + { + ItemOutId = outId, + ItemBarcode = stock.ItemBarcode, + ItemNo = stock.ItemNo, + LotNo = stock.LotNo, + Quantity = stock.Quantity, + ForceOutFlag = 0, + CreateBy = c_user, + CreateDate = DateTime.Now, + LastupdateBy = c_user, + LastupdateDate = DateTime.Now, + DepotCode = stock.DepotsCode, + DepotId = stock.DepotsId.HasValue + ? (int)stock.DepotsId + : null, + // DepotsCode = stock.DepotsCode, + // DepotSectionsCode = stock.DepotSectionsCode, + DepotSectionCode = stock.DepotSectionsCode, + BoardStyle = stock.BoardStyle, + TaskNo = p_bill_no, + WorkNo = p_bill_no, + // WorkLine = qtDetail.Id, + SuppNo = stock.SuppNo, + PbillNo = p_bill_no, + ItemId = !string.IsNullOrEmpty(qtDetail.ItemId) + ? long.Parse(qtDetail.ItemId) + : null + }; + + commit += db.Insertable(outCDetail).IgnoreColumns(true) + .ExecuteCommand(); + + + // 鎻掑叆涓氬姟娴佹按璁板綍 + var business = new MesInvBusiness2 + { + Status = 1, + BillTypeId = p_bill_type_id, + TransactionCode = p_transaction_no.ToString(), + BusinessType = 1, + ItemBarcode = stock.ItemBarcode, + ItemNo = stock.ItemNo, + LotNo = stock.LotNo, + EpFlag = true, + Quantity = stock.Quantity, + FromInvDepotsCode = stock.DepotsCode, + FromInvDepotSectionsCode = stock.DepotSectionsCode, + Description = "鍏朵粬鍑哄簱", + CreateBy = c_user, + CreateDate = DateTime.Now, + LastupdateBy = c_user, + LastupdateDate = DateTime.Now, + TaskNo = p_bill_no, + BillNo = outNo, + WorkNo = p_bill_no, + // WorkLine = qtDetail.Id, + SuppId = stock.SuppId, + SuppNo = stock.SuppNo, + ItemId = !string.IsNullOrEmpty(qtDetail.ItemId) + ? long.Parse(qtDetail.ItemId) + : null + }; + + commit += db.Insertable(business).IgnoreColumns(true) + .ExecuteCommand(); + + // 鍒犻櫎搴撳瓨璁板綍 + commit += db.Deleteable<MesInvItemStocks>() + .Where(it => it.ItemBarcode == stock.ItemBarcode) + .ExecuteCommand(); + + // 鏇存柊閫�鏂欏崟鏄庣粏宸插畬鎴愭暟閲� + commit += db.Updateable<MesItemQtDatall>() + .SetColumns(it => it.Qd008 == (it.Qd008 ?? 0) + stock.Quantity) + .Where(it => it.Guid == qtDetail.Guid) + .ExecuteCommand(); + + // 妫�鏌ユ槑缁嗘槸鍚﹀畬鎴�,濡傛灉瀹屾垚鍒欐洿鏂扮姸鎬� + if ((qtDetail.Qd007 ?? 0) - (qtDetail.Qd008 ?? 0) == stock.Quantity) + { + commit += db.Updateable<MesItemQtDatall>() + .SetColumns(it => it.Qd011 == 1) + .Where(it => it.Guid == qtDetail.Guid) + .ExecuteCommand(); + } + + mesItemQtDatalls = Db + .Queryable<MesItemQt, MesItemQtDatall, MesItems>( + (a, b, c) => new JoinQueryInfos( + JoinType.Left, a.Guid == b.QtGuid, + JoinType.Left, b.ItemId == c.Id.ToString())) + .Where((a, b, c) => a.Qtck == p_bill_no && + (b.Qd007 ?? 0) - (b.Qd008 ?? 0) > 0) + .OrderBy((a, b, c) => c.ItemNo) + .Select((a, b, c) => new MesItemQtDatall + { + Qd002 = b.Qd002, // 鏄庣粏琛屽彿 + Qt011 = a.Qt011, // 閫�鏂欏師鍥� + ItemNo = c.ItemNo, // 鐗╂枡缂栧彿 + Qd007 = b.Qd007 ?? 0, // 璁″垝鏁伴噺 + Qd008 = b.Qd008 ?? 0 // 宸插畬鎴愭暟閲� + }) + .ToList(); + + // 濡傛灉娌℃湁寰呭鐞嗘槑缁嗭紝鏇存柊閫�鏂欏崟鐘舵�佷负宸插畬鎴� + if (CollectionUtil.IsNullOrEmpty(mesItemQtDatalls)) + { + db.Updateable<MesItemQt>() + .SetColumns(it => it.Qt014 == true) + .Where(it => it.Qtck == p_bill_no) + .ExecuteCommand(); + } + + // 鏋勫缓杩斿洖娑堟伅 + mess = $"鎵爜鎴愬姛锛佹潯鐮� {p_item_barcode} 鏁伴噺 {stock.Quantity} 宸插嚭搴�"; + + query.barcode = null; + query.itemNo = stock.ItemNo; + query.Num = stock.Quantity; + query.Fum = null; + + if (commit < 5) + { + throw new Exception("鏇存柊澶辫触"); + } + + return commit; + }); + + return (query, mesItemQtDatalls, mess); + } + + public (WarehouseQuery form, List<MesItemQtDatall> item, string message) + PrintQtckBarcode( + WarehouseQuery query) + { + var p_bill_no = query.billNo; + var p_old_barcode = query.barcode; + var c_user = query.userName; + var p_qty = query.Fum; + var p_bill_type_id = 200; + var p_transaction_no = 202; + + // 妫�鏌ュ崟鎹彿鏄惁涓虹┖ + if (string.IsNullOrEmpty(p_bill_no)) + { + throw new Exception("璇烽�夊彇鍗曟嵁鍙凤紒"); + } + + // 妫�鏌ユ暟閲忔槸鍚︽湁鏁� + if (p_qty <= 0) + { + throw new Exception("璇疯緭鍏ユ纭殑鍙戞枡鏁伴噺锛�"); + } + + // 鑾峰彇搴撳瓨鏉$爜淇℃伅 + var stock = Db.Queryable<MesInvItemStocks>() + .Where(it => it.ItemBarcode == p_old_barcode && it.Quantity > 0) + .First(); + + if (stock == null) + { + throw new Exception($"搴撳瓨涓棤姝ゆ潯鐮侊紝璇锋鏌ユ潯鐮佹槸鍚︽湭鍏ュ簱鎴栧凡鍑哄簱锛亄p_old_barcode}"); + } + + if (string.IsNullOrEmpty(stock.DepotsCode)) + { + throw new Exception($"璋冩嫧涓殑鏉$爜涓嶅彲鍙戞枡,璇峰厛瀹屾垚璋冩嫧鍗曟嵁{p_old_barcode}"); + } + + if (stock.DepotsCode is "S006" or "S005") + { + throw new Exception($"鏉$爜鍦ㄤ笉鑹搧浠撲笅 涓嶅彲鍙戞枡{p_old_barcode}"); + } + + // 鑾峰彇鏉$爜淇℃伅 + var barcode = Db.Queryable<MesInvItemBarcodes>() + .Where(it => it.ItemBarcode == p_old_barcode) + .First(); + + if (barcode == null) + { + throw new Exception($"mes涓笉瀛樺湪姝ゆ潯鐮侊紝璇锋牳瀵癸紒{p_old_barcode}"); + } + + // 鑾峰彇閫�鏂欏崟淇℃伅 + var mesItemQt = Db.Queryable<MesItemQt>() + .Where(it => it.Qtck == p_bill_no) + .First(); + + if (mesItemQt == null) + { + throw new Exception($"鍏朵粬鍑哄簱鐢宠鍗� {p_bill_no} 涓嶅瓨鍦紝璇风‘璁わ紒"); + } + + if (mesItemQt.Qt011 != stock.DepotsCode) + { + throw new Exception( + $"鎵爜鍑鸿揣浠撳簱{stock.DepotsCode}涓庡叾浠栧嚭搴撶敵璇蜂粨搴搟mesItemQt.Qt011}涓嶄竴鑷达紝璇锋牳瀵癸紒"); + } + + // 鑾峰彇閫�鏂欏崟鏄庣粏 + var qtDetail = Db.Queryable<MesItemQtDatall>() + .Where(it => + it.QtGuid == mesItemQt.Guid && + it.ItemId == stock.ItemId.ToString()) + .First(); + + if (qtDetail == null) + { + throw new Exception("鎵爜鐗╂枡闈炴湰娆″嚭搴撶敵璇风墿鏂欙紝璇锋牳瀵癸紒"); + } + + var remainingQty = (qtDetail.Qd007 ?? 0) - (qtDetail.Qd008 ?? 0); + + if (remainingQty <= 0) + { + throw new Exception($"鐢宠鐗╂枡 {barcode.ItemNo} 宸插嚭搴撳畬鎴愶紒"); + } + + if (p_qty > remainingQty) + { + throw new Exception( + $"杈撳叆鐨勬媶鍒嗘暟閲� {p_qty} 涓嶅彲澶т簬鍓╀綑闇�鍙戞暟閲� {remainingQty} 璇蜂慨鏀�"); + } + + var totalQty = Db.Queryable<MesInvItemStocks>() + .Where(it => it.ItemBarcode == p_old_barcode && it.Quantity > 0) + .Sum(it => it.Quantity); + + if (totalQty < p_qty) + { + throw new Exception($"杈撳叆鐨勫彂鏂欐暟閲� {p_qty} 涓嶅彲澶т簬鏉$爜鏁伴噺 {totalQty} 璇蜂慨鏀�"); + } + + var message = string.Empty; + var mesItemQtDatalls = new List<MesItemQtDatall>(); + var newBarcode = string.Empty; + + UseTransaction(db => + { + var commit = 0; + + // 濡傛灉闇�瑕佹媶鍒嗘潯鐮� + if (totalQty > p_qty) + { + var mesItems = db.Queryable<MesItems>() + .Where(s => s.Id == stock.ItemId).First(); + // 鐢熸垚鏂版潯鐮佸彿 + newBarcode = BillNo.GetBillNo("TMBH(鏉$爜缂栧彿)", mesItems.ItemNo); + + // 鎻掑叆鏂版潯鐮佽褰� + commit += db.Insertable(new MesInvItemBarcodes + { + Guid = Guid.NewGuid(), + ItemBarcode = newBarcode, + ItemNo = barcode.ItemNo, + LotNo = barcode.LotNo, + Quantity = p_qty, + TaskNo = barcode.TaskNo, + CreateBy = c_user, + CreateDate = DateTime.Now, + LastupdateBy = c_user, + LastupdateDate = DateTime.Now, + OldItemBarcode = p_old_barcode, + Mblnr = barcode.Mblnr, + Zeile = barcode.Zeile, + Barcodestatus = false, + Oldqty = Convert.ToInt64(p_qty.Value), + Unit = barcode.Unit, + LotDate = barcode.LotDate, + Memo = "鍏朵粬鍑哄簱鎷嗗垎", + SuppNo = barcode.SuppNo, + ItemSname = barcode.ItemSname, + TrLotno = barcode.TrLotno, + BillNo = barcode.BillNo, + UrgentFlag = barcode.UrgentFlag, + InsDate = barcode.InsDate, + WorkNo = barcode.WorkNo, + WorkLine = barcode.WorkLine, + ComeFlg = 5, + EbelnK3id = barcode.EbelnK3id, + LineK3id = barcode.LineK3id, + ItemId = barcode.ItemId, + }).IgnoreColumns(true).ExecuteCommand(); + + // 鏇存柊鍘熸潯鐮佹暟閲� + commit += db.Updateable<MesInvItemBarcodes>() + .SetColumns(it => it.Quantity == it.Quantity - p_qty) + .Where(it => it.ItemBarcode == p_old_barcode) + .ExecuteCommand(); + + // 鏇存柊鍘熷簱瀛樻暟閲� + commit += db.Updateable<MesInvItemStocks>() + .SetColumns(it => it.Quantity == it.Quantity - p_qty) + .Where(it => it.ItemBarcode == p_old_barcode) + .ExecuteCommand(); + + // 鎻掑叆鏂板簱瀛樿褰� + commit += db.Insertable(new MesInvItemStocks + { + Guid = Guid.NewGuid(), + ItemBarcode = newBarcode, + ItemNo = stock.ItemNo, + LotNo = stock.LotNo, + Quantity = p_qty, + DepotsCode = stock.DepotsCode, + DepotSectionsCode = stock.DepotSectionsCode, + CheckDate = stock.CheckDate, + IndepDate = stock.IndepDate, + IqcStatus = stock.IqcStatus, + WorkNo = stock.WorkNo, + WorkLine = stock.WorkLine, + SuppNo = stock.SuppNo, + BillNo = stock.BillNo, + EbelnK3id = stock.EbelnK3id, + LineK3id = stock.LineK3id, + ItemId = stock.ItemId, + }).IgnoreColumns(true).ExecuteCommand(); + + + // 鎻掑叆涓氬姟娴佹按璁板綍 + commit += db.Insertable(new MesInvBusiness2 + { + Status = 1, + BillTypeId = p_bill_type_id, + TransactionCode = p_transaction_no.ToString(), + BusinessType = 1, + TaskNo = barcode.TaskNo, + BillNo = barcode.BillNo, + ItemBarcode = newBarcode, + ItemNo = barcode.ItemNo, + LotNo = barcode.LotNo, + EpFlag = true, + Quantity = p_qty, + FromInvDepotsCode = null, + FromInvDepotSectionsCode = null, + ToInvDepotsCode = stock.DepotsCode, + ToInvDepotSectionsCode = stock.DepotSectionsCode, + Description = "鍏朵粬鍑哄簱鏉$爜鎷嗗垎", + CreateBy = c_user, + CreateDate = DateTime.Now, + LastupdateBy = c_user, + LastupdateDate = DateTime.Now, + Factory = "1000", + Company = "1000", + WorkNo = stock.WorkNo, + WorkLine = stock.WorkLine, + EbelnK3id = stock.EbelnK3id, + LineK3id = stock.LineK3id, + SuppId = stock.SuppId, + SuppNo = stock.SuppNo, + ItemId = stock.ItemId, + }).IgnoreColumns(true).ExecuteCommand(); + } + else + { + newBarcode = p_old_barcode; + } + + + // 鑾峰彇鎴栧垱寤哄嚭搴撳崟 + var outRecord = db.Queryable<MesInvItemOuts>() + .Where(it => it.PbillNo == p_bill_no + && it.DepotCode == stock.DepotsCode + && it.OutDate.Value.Date.ToString("yyyy-MM-dd") == + DateTime.Now.Date.ToString("yyyy-MM-dd") + && it.BillTypeId == p_bill_type_id + && it.TransactionNo == p_transaction_no + && it.Status == 0) + .First(); + + var outId = Guid.Empty; + var outNo = string.Empty; + + if (outRecord == null) + { + outId = Guid.NewGuid(); + outNo = BillNo.GetBillNo("INV_OUT_OTHER"); + // 鍒涘缓鏂板嚭搴撳崟 + commit += db.Insertable(new MesInvItemOuts + { + Guid = outId, + ItemOutNo = $"OUT-{DateTime.Now:yyyyMMddHHmmss}", + TaskNo = p_bill_no, + Status = 0, + CreateBy = c_user, + CreateDate = DateTime.Now, + LastupdateBy = c_user, + LastupdateDate = DateTime.Now, + BillTypeId = p_bill_type_id, + TransactionNo = p_transaction_no, + DepotCode = stock.DepotsCode, + OutPart = mesItemQt.Qt012, + FType = 0, + WorkNo = p_bill_no, + OutType = "鍏朵粬鍑哄簱", + BusinessType = "", + PbillNo = p_bill_no, + OutDate = DateTime.Now, + Nflag = 0, + Reason = mesItemQt.Qt010, + }).ExecuteReturnIdentity(); + outNo = $"OUT-{DateTime.Now:yyyyMMddHHmmss}"; + } + else + { + outId = outRecord.Guid; + outNo = outRecord.ItemOutNo; + } + + // 妫�鏌ュ苟鏇存柊鍑哄簱鍗曟槑缁� + var outItem = db.Queryable<MesInvItemOutItems>() + .Where(it => + it.ItemOutId == outId && it.ItemId == barcode.ItemId) + .First(); + + if (outItem == null) + { + // 鎻掑叆鏂版槑缁� + db.Insertable(new MesInvItemOutItems + { + ItemOutId = outId, + ItemNo = qtDetail.Qd002, + Quantity = p_qty, + CreateBy = c_user, + CreateDate = DateTime.Now, + LastupdateBy = c_user, + LastupdateDate = DateTime.Now, + DepotCode = stock.DepotsCode, + TaskNo = p_bill_no, + WorkNo = p_bill_no, + QtOutId = qtDetail.Guid, + // WorkLine = qtDetail.Id.ToString(), + ErpItemNo = qtDetail.ItemNo, + PbillNo = p_bill_no, + ItemId = !string.IsNullOrEmpty(qtDetail.ItemId) + ? long.Parse(qtDetail.ItemId) + : null, + FType = 0, + // Unit = qtDetail.Qd009 + }).ExecuteCommand(); + } + else + { + // 鏇存柊鏄庣粏鏁伴噺 + db.Updateable<MesInvItemOutItems>() + .SetColumns(it => + it.Quantity == (it.Quantity ?? 0) + p_qty) + .Where(it => + it.ItemOutId == outId && + it.ItemId == stock.ItemId && + it.QtOutId == qtDetail.Guid) + .ExecuteCommand(); + } + + // 鎻掑叆鍑哄簱鏄庣粏 + db.Insertable(new MesInvItemOutCDetails + { + ItemOutId = outId, + ItemBarcode = newBarcode, + ItemNo = stock.ItemNo, + LotNo = stock.LotNo, + Quantity = p_qty, + ForceOutFlag = 0, + CreateBy = c_user, + CreateDate = DateTime.Now, + LastupdateBy = c_user, + LastupdateDate = DateTime.Now, + DepotCode = stock.DepotsCode, + DepotSectionCode = stock.DepotSectionsCode, + Factory = "1000", + Company = "1000", + BoardStyle = stock.BoardStyle, + TaskNo = p_bill_no, + WorkNo = p_bill_no, + // WorkLine = qtDetail.Id.ToString(), + SuppNo = stock.SuppNo, + PbillNo = p_bill_no, + ItemId = !string.IsNullOrEmpty(qtDetail.ItemId) + ? long.Parse(qtDetail.ItemId) + : null + }).IgnoreColumns(true).ExecuteCommand(); + + // 鎻掑叆涓氬姟璁板綍 + db.Insertable(new MesInvBusiness2 + { + Status = 1, + BillTypeId = p_bill_type_id, + TransactionCode = p_transaction_no.ToString(), + BusinessType = 1, + ItemBarcode = newBarcode, + ItemNo = stock.ItemNo, + LotNo = stock.LotNo, + EpFlag = true, + Quantity = p_qty, + FromInvDepotsCode = stock.DepotsCode, + FromInvDepotSectionsCode = stock.DepotSectionsCode, + Description = "鍏朵粬鍑哄簱", + CreateBy = c_user, + CreateDate = DateTime.Now, + LastupdateBy = c_user, + LastupdateDate = DateTime.Now, + Factory = "1000", + Company = "1000", + TaskNo = p_bill_no, + BillNo = outNo, + WorkNo = p_bill_no, + // WorkLine = qtDetail.Id.ToString(), + SuppId = stock.SuppId, + SuppNo = stock.SuppNo, + ItemId = !string.IsNullOrEmpty(qtDetail.ItemId) + ? long.Parse(qtDetail.ItemId) + : null + }).IgnoreColumns(true).ExecuteCommand(); + + // 鍒犻櫎搴撳瓨璁板綍 + db.Deleteable<MesInvItemStocks>() + .Where(it => it.ItemBarcode == newBarcode) + .ExecuteCommand(); + + // 鏇存柊閫�鏂欏崟鏄庣粏 + db.Updateable<MesItemQtDatall>() + .SetColumns(it => it.Qd008 == (it.Qd008 ?? 0) + (int)p_qty) + .SetColumnsIF( + (qtDetail.Qd007 ?? 0) - (qtDetail.Qd008 ?? 0) == p_qty, + it => it.Qd011 == 1) + .Where(it => it.Guid == qtDetail.Guid) + .ExecuteCommand(); + + // 妫�鏌ユ槸鍚︽墍鏈夋槑缁嗛兘宸插畬鎴� + var hasUnfinished = db.Queryable<MesItemQtDatall>() + .Where(it => it.Qd011 == 0) + .Any(); + + // 濡傛灉鎵�鏈夋槑缁嗗畬鎴愶紝鏇存柊閫�鏂欏崟鐘舵�� + if (!hasUnfinished) + { + db.Updateable<MesItemQt>() + .SetColumns(it => it.Qt014 == true) + .Where(it => it.Qtck == p_bill_no) + .ExecuteCommand(); + } + + // 鑾峰彇鍓╀綑寰呭鐞嗘槑缁� + mesItemQtDatalls = db + .Queryable<MesItemQt, MesItemQtDatall, MesItems>( + (a, b, c) => new JoinQueryInfos( + JoinType.Left, a.Guid == b.QtGuid, + JoinType.Left, b.ItemId == c.Id.ToString())) + .Where((a, b, c) => a.Qtck == p_bill_no && + (b.Qd007 ?? 0) - (b.Qd008 ?? 0) > 0) + .OrderBy((a, b, c) => c.ItemNo) + .Select((a, b, c) => new MesItemQtDatall + { + Qd002 = b.Qd002, + Qt011 = a.Qt011, + ItemNo = c.ItemNo, + Qd007 = b.Qd007 ?? 0, + Qd008 = b.Qd008 ?? 0 + }) + .ToList(); + + message = $"鎿嶄綔鎴愬姛锛佹媶鍒嗘潯鐮�:{newBarcode} 鏁伴噺:{p_qty}宸插嚭搴�"; + + return commit; + }); + return (query, mesItemQtDatalls, message); + } +} \ No newline at end of file diff --git a/service/Warehouse/MesItemQtrkManager.cs b/service/Warehouse/MesItemQtrkManager.cs index c6baffe..b5d74c2 100644 --- a/service/Warehouse/MesItemQtrkManager.cs +++ b/service/Warehouse/MesItemQtrkManager.cs @@ -54,16 +54,13 @@ return details; } - public String ScanInDepotsQT(WarehouseQuery query) + public string ScanInDepotsQT(WarehouseQuery query) { var sectionCode = query.sectionCode; var billNo = query.billNo; // 1. 楠岃瘉搴撲綅鏉$爜鏄惁涓虹┖ - if (string.IsNullOrEmpty(sectionCode)) - { - throw new Exception("璇锋壂搴撲綅鏉$爜锛�"); - } + if (string.IsNullOrEmpty(sectionCode)) throw new Exception("璇锋壂搴撲綅鏉$爜锛�"); // 2. 鏌ヨ搴撲綅瀵瑰簲鐨勪粨搴撶紪鐮� var depotCode = Db.Queryable<MesDepotSections, MesDepots>( @@ -74,9 +71,7 @@ .First(); if (depotCode == null) - { throw new Exception($"搴撲綅缂栫爜 {sectionCode} 涓嶅瓨鍦紝璇风‘璁わ紒"); - } // 3. 鏌ヨ鐢宠鍗曞搴旂殑浠撳簱 var qtrk = Db.Queryable<MesItemQtrk>() @@ -84,16 +79,11 @@ .Select(x => x.Qt011) .First(); - if (qtrk == null) - { - throw new Exception($"搴撲綅缂栫爜 {sectionCode} 涓嶅瓨鍦紝璇风‘璁わ紒"); - } + if (qtrk == null) throw new Exception($"搴撲綅缂栫爜 {sectionCode} 涓嶅瓨鍦紝璇风‘璁わ紒"); // 4. 楠岃瘉搴撲綅鏄惁灞炰簬鐢宠浠撳簱 if (depotCode != qtrk) - { throw new Exception($"鎵爜搴撲綅 {sectionCode} 涓嶅睘浜庣敵璇锋浠撳簱!"); - } // 5. 杩斿洖鎴愬姛淇℃伅 return $"浠撳簱锛歿qtrk} 搴撲綅锛歿sectionCode}"; @@ -112,9 +102,7 @@ // 1. 楠岃瘉搴撲綅鏉$爜鏄惁涓虹┖ if (string.IsNullOrEmpty(p_section_code)) - { throw new Exception("璇锋壂搴撲綅鏉$爜锛�"); - } // 2. 鏌ヨ搴撲綅瀵瑰簲鐨勪粨搴撶紪鐮佸拰浠撳簱ID var depotInfo = Db.Queryable<MesDepotSections, MesDepots>( @@ -125,9 +113,7 @@ .First(); if (depotInfo == null) - { throw new Exception($"搴撲綅缂栫爜 {p_section_code} 涓嶅瓨鍦紝璇风‘璁わ紒"); - } var c_depot_code = depotInfo.DepotCode; var c_depot_id = depotInfo.DepotId; @@ -136,45 +122,30 @@ var existsInStock = Db.Queryable<MesInvItemInCDetails>() .Any(x => x.ItemBarcode == p_item_barcode); - if (existsInStock) - { - throw new Exception("姝ゆ潯鐮佸凡鎵爜鍏ュ簱瀹屾垚,璇锋牳瀵癸紒"); - } + if (existsInStock) throw new Exception("姝ゆ潯鐮佸凡鎵爜鍏ュ簱瀹屾垚,璇锋牳瀵癸紒"); // 4. 鏌ヨ鏉$爜淇℃伅 var barcode = Db.Queryable<MesInvItemBarcodes>() .Where(x => x.ItemBarcode == p_item_barcode) .First(); - if (barcode == null) - { - throw new Exception("鏉$爜涓嶅瓨鍦�,璇锋牳瀵癸紒"); - } + if (barcode == null) throw new Exception("鏉$爜涓嶅瓨鍦�,璇锋牳瀵癸紒"); - if (barcode.ComeFlg != 3) - { - throw new Exception("鏉$爜涓嶆槸鍏朵粬鍏ュ簱鏉$爜,鏃犳硶鐢ㄥ叾浠栧叆搴擄紒"); - } + if (barcode.ComeFlg != 3) throw new Exception("鏉$爜涓嶆槸鍏朵粬鍏ュ簱鏉$爜,鏃犳硶鐢ㄥ叾浠栧叆搴擄紒"); // 楠岃瘉鏉$爜鏄惁宸插湪搴撳瓨涓� var stockCount = Db.Queryable<MesInvItemStocks>() .Where(x => x.ItemBarcode == p_item_barcode) .Count(); - if (stockCount > 0) - { - throw new Exception("姝ゆ潯鐮佸凡鎵爜鍏ュ簱瀹屾垚,璇锋牳瀵癸紒"); - } + if (stockCount > 0) throw new Exception("姝ゆ潯鐮佸凡鎵爜鍏ュ簱瀹屾垚,璇锋牳瀵癸紒"); // 5. 鏌ヨ鍏朵粬鍏ュ簱鐢宠鍗� var qtrk = Db.Queryable<MesItemQtrk>() .Where(x => x.Qtck == p_bill_no) .First(); - if (qtrk == null) - { - throw new Exception("鍏朵粬鍏ュ簱鐢宠鍗曚笉瀛樺湪锛�"); - } + if (qtrk == null) throw new Exception("鍏朵粬鍏ュ簱鐢宠鍗曚笉瀛樺湪锛�"); // 6. 鏌ヨ鐢宠鍗曟槑缁� var detail = Db.Queryable<MesItemQtrrDetail>() @@ -184,15 +155,11 @@ .First(); if (detail == null) - { throw new Exception($"鍏朵粬鍏ュ簱鐢宠鍗晎p_bill_no}鏃犳鐗╂枡{barcode.ItemNo} 璇锋牳瀵癸紒"); - } // 7. 楠岃瘉鏁伴噺 if (barcode.Quantity > (detail.Qd007 ?? 0) - (detail.Qd008 ?? 0)) - { throw new Exception("鏉$爜鏁伴噺瓒呰繃鐢宠鏁伴噺,璇锋牳瀵癸紒"); - } var details = new List<MesItemQtrrDetail>(); @@ -255,7 +222,6 @@ .First(); if (existingItem == null) - { // 涓嶅瓨鍦ㄥ垯鏂板鍏ュ簱鏄庣粏 res += db.Insertable(new MesInvItemInCItems { @@ -282,9 +248,7 @@ LineK3id = barcode.LineK3id, ItemId = barcode.ItemId }).IgnoreColumns(true).ExecuteCommand(); - } else - { // 瀛樺湪鍒欐洿鏂版暟閲� res += db.Updateable<MesInvItemInCItems>() .SetColumns( @@ -294,7 +258,6 @@ && x.WorkNo == barcode.WorkNo && x.WorkLine == barcode.WorkLine) .ExecuteCommand(); - } // 鎻掑叆鍏ュ簱鏄庣粏璁板綍 @@ -366,7 +329,7 @@ SuppNo = barcode.SuppNo, EbelnK3id = barcode.EbelnK3id, LineK3id = barcode.LineK3id, - ItemId = barcode.ItemId, + ItemId = barcode.ItemId // SalesOrder = barcode.SalesOrder, // IsZy = barcode.IsZy, // OuterBarcode = barcode.OuterBarcode @@ -398,7 +361,7 @@ EbelnK3id = barcode.EbelnK3id, LineK3id = barcode.LineK3id, ItemId = barcode.ItemId, - BillNo = barcode.BillNo, + BillNo = barcode.BillNo // SalesOrder = barcode.SalesOrder, // IsZy = barcode.IsZy, // Visable = 0, @@ -423,12 +386,10 @@ .First(); if ((detail1.Qd007 ?? 0) - (detail1.Qd008 ?? 0) == barcode.Quantity) - { res += db.Updateable<MesItemQtrrDetail>() .SetColumns(x => x.Qd011 == 1) .Where(x => x.Guid == detail1.Guid) .ExecuteCommand(); - } details = Db.Queryable<MesItemQtrk, MesItemQtrrDetail, MesItems>( (a, b, c) => new JoinQueryInfos( @@ -449,17 +410,12 @@ .ToList(); if (CollectionUtil.IsNullOrEmpty(details)) - { res += db.Updateable<MesItemQtrk>() .SetColumns(s => s.Qt014 == 1) .Where(x => x.Qtck == p_bill_no) .ExecuteCommand(); - } - if (res < 5) - { - throw new Exception("鎻掑叆鎴栨洿鏂板け璐�"); - } + if (res < 5) throw new Exception("鎻掑叆鎴栨洿鏂板け璐�"); return res; }); -- Gitblit v1.9.3