Controllers/Warehouse/MesItemQtController.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Controllers/Warehouse/MesItemQtrkController.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
entity/MesInvItemOutCDetails.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
entity/MesInvItemOutItems.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
entity/MesItemQt.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
entity/MesItemQtDatall.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
service/Warehouse/MesItemBlManager.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
service/Warehouse/MesItemQtManager.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
service/Warehouse/MesItemQtrkManager.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Controllers/Warehouse/MesItemQtController.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,207 @@ using 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 } 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">æ¥è¯¢åæ°ï¼å¿ é¡»å å«billNo(å ¥åºåå·)</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> 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 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; } entity/MesItemQt.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,149 @@ using 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; } } entity/MesItemQtDatall.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,104 @@ using 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; } } 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(); service/Warehouse/MesItemQtManager.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,922 @@ using 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); } } 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; });