Controllers/Warehouse/MesItemQtController.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Controllers/Warehouse/TransferOutController.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
entity/MesInvItemMoves.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
entity/MesInvItemMovesCDetails.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
entity/TransferOut.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
entity/TransferOutEtail.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
service/Warehouse/MesItemQtManager.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
service/Warehouse/TransferOutManager.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Controllers/Warehouse/MesItemQtController.cs
@@ -7,7 +7,7 @@ namespace NewPdaSqlServer.Controllers.Warehouse; /// <summary> /// å ¶ä»åºåºç¸å ³æ¥å£ /// å ¶ä»åºåºç¸å ³æ¥å£ /// </summary> [Route("api/[controller]")] [ApiController] @@ -18,7 +18,7 @@ #region åºç¡CRUD /// <summary> /// è·åææ /// è·åææ /// </summary> /// <returns>å ¶ä»åºåºåå表</returns> [HttpPost("GetList")] @@ -46,11 +46,11 @@ #region å ¶ä»åºåºä¸å¡ /// <summary> /// è·åæªå®æçéæåå·å表 /// è·åæªå®æçéæåå·å表 /// </summary> /// <returns>éæåå·å表</returns> /// <remarks> /// è·åç¶æä¸ºå·²å®¡æ ¸(Qt015=true)䏿ªå®ç»(Qt014=false)çéæåå·å表 /// è·åç¶æä¸ºå·²å®¡æ ¸(Qt015=true)䏿ªå®ç»(Qt014=false)çéæåå·å表 /// </remarks> /// <response code="200">æåè·åéæåå·å表</response> /// <response code="400">è·å失败</response> @@ -75,25 +75,24 @@ } /// <summary> /// è·åå¾ å¤ççéæåæç»å表 /// è·åå¾ å¤ççéæåæç»å表 /// </summary> /// <param name="query">æ¥è¯¢åæ°</param> /// <returns>å¾ å¤ççéæåæç»å表</returns> /// <remarks> /// 请æ±ç¤ºä¾: /// /// 请æ±ç¤ºä¾: /// POST /api/MesItemQt/GetPendingQtList /// { /// "userName": "admin", // ç¨æ·å(å¿ å¡«) /// "billNo": "QT20240101001" // éæåå·(å¿ å¡«) /// "userName": "admin", // ç¨æ·å(å¿ å¡«) /// "billNo": "QT20240101001" // éæåå·(å¿ å¡«) /// } /// /// è¿åæªå®æçæç»è®°å½(Qd007-Qd008>0) /// è¿åæªå®æçæç»è®°å½(Qd007-Qd008>0) /// </remarks> /// <response code="200">æåè·åéæåæç»</response> /// <response code="400">è·å失败ï¼è¿åå ·ä½é误信æ¯</response> [HttpPost("GetPendingQtDetailList")] public ResponseResult GetPendingQtDetailList([FromBody] WarehouseQuery query) public ResponseResult GetPendingQtDetailList( [FromBody] WarehouseQuery query) { try { @@ -113,24 +112,22 @@ } /// <summary> /// æ«ææ¡ç åºåº /// æ«ææ¡ç åºåº /// </summary> /// <param name="query">æ¥è¯¢åæ°</param> /// <returns>åºåºç»æãå¾ å¤çæç»åæç¤ºæ¶æ¯</returns> /// <remarks> /// 请æ±ç¤ºä¾: /// /// 请æ±ç¤ºä¾: /// POST /api/MesItemQt/OutScanBarcode /// { /// "billNo": "QT20240101001", // éæåå·(å¿ å¡«) /// "barcode": "BC001", // æ¡ç å·(å¿ å¡«) /// "userName": "admin" // ç¨æ·å(å¿ å¡«) /// "billNo": "QT20240101001", // éæåå·(å¿ å¡«) /// "barcode": "BC001", // æ¡ç å·(å¿ å¡«) /// "userName": "admin" // ç¨æ·å(å¿ å¡«) /// } /// /// è¿åæ°æ®å å«: /// - form: å¤çç»æè¡¨å /// - item: å¾ å¤çæç»å表 /// - message: å¤çç»ææ¶æ¯ /// è¿åæ°æ®å å«: /// - form: å¤çç»æè¡¨å /// - item: å¾ å¤çæç»å表 /// - message: å¤çç»ææ¶æ¯ /// </remarks> /// <response code="200">æ«ææå</response> /// <response code="400">æ«æå¤±è´¥ï¼è¿åå ·ä½é误信æ¯</response> @@ -158,25 +155,23 @@ } /// <summary> /// æå°æ¡ç åºåº /// æå°æ¡ç åºåº /// </summary> /// <param name="query">æ¥è¯¢åæ°</param> /// <returns>åºåºç»æãå¾ å¤çæç»åæç¤ºæ¶æ¯</returns> /// <remarks> /// 请æ±ç¤ºä¾: /// /// 请æ±ç¤ºä¾: /// POST /api/MesItemQt/PrintQtckBarcode /// { /// "userName": "admin", // ç¨æ·å(å¿ å¡«) /// "billNo": "QT20240101001", // éæåå·(å¿ å¡«) /// "barcode": "BC001", // æ¡ç å·(å¿ å¡«) /// "Fum": 10 // åææ°é(å¿ å¡«,å¿ é¡»å¤§äº0) /// "userName": "admin", // ç¨æ·å(å¿ å¡«) /// "billNo": "QT20240101001", // éæåå·(å¿ å¡«) /// "barcode": "BC001", // æ¡ç å·(å¿ å¡«) /// "Fum": 10 // åææ°é(å¿ å¡«,å¿ é¡»å¤§äº0) /// } /// /// è¿åæ°æ®å å«: /// - form: å¤çç»æè¡¨å /// - item: å¾ å¤çæç»å表 /// - message: å¤çç»ææ¶æ¯ /// è¿åæ°æ®å å«: /// - form: å¤çç»æè¡¨å /// - item: å¾ å¤çæç»å表 /// - message: å¤çç»ææ¶æ¯ /// </remarks> /// <response code="200">æå°æå</response> /// <response code="400">æå°å¤±è´¥ï¼è¿åå ·ä½é误信æ¯</response> Controllers/Warehouse/TransferOutController.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,169 @@ 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 TransferOutController : ControllerBase { private readonly TransferOutManager _manager = new(); #region åºç¡CRUD /// <summary> /// è·åææè°æ¨åºåºå /// </summary> /// <returns>è°æ¨åºåºåå表</returns> [HttpPost("GetList")] public ResponseResult GetList() { try { dynamic resultInfos = new ExpandoObject(); resultInfos.tbBillList = _manager.GetList(); return new ResponseResult { status = 0, message = "OK", data = resultInfos }; } catch (Exception ex) { return ResponseResult.ResponseError(ex); } } #endregion #region è°æ¨åºåºä¸å¡ /// <summary> /// è·åæªå®æçè°æ¨åºåºåå·å表 /// </summary> /// <returns>æªå®æçè°æ¨åºåºåå·å表</returns> /// <remarks> /// è·åç³è¯·æ°é(sq)ä¸çäºå·²æ«æ°é(ys)çè°æ¨åºåºåå·å表 /// </remarks> /// <response code="200">æåè·åè°æ¨åºåºåå·å表</response> /// <response code="400">è·å失败</response> [HttpPost("GetTransferOutNoList")] public ResponseResult GetTransferOutNoList() { try { dynamic resultInfos = new ExpandoObject(); resultInfos.tbBillList = _manager.GetTransferOutNoList(); return new ResponseResult { status = 0, message = "OK", data = resultInfos }; } catch (Exception ex) { return ResponseResult.ResponseError(ex); } } /// <summary> /// æ ¹æ®åæ®å·è·åå¾ å¤ççè°æ¨åºåºæç»å表 /// </summary> /// <param name="query">æ¥è¯¢åæ°</param> /// <returns>å¾ å¤ççè°æ¨åºåºæç»å表</returns> /// <remarks> /// 请æ±ç¤ºä¾: /// /// POST /api/TransferOut/GetTransferOutDetailListByBillNo /// { /// "billNo": "DB202401010001" // è°æ¨åå·(å¿ å¡«) /// } /// /// è¿åæªå®æçæç»è®°å½(ShNum-YsNum>0)ï¼å å«ï¼ /// - ItemNo: ç©æç¼å· /// - ItemModel: ç©æè§æ ¼ /// - ShNum: ç³è¯·æ°é /// - YsNum: å·²æ«æ°é /// </remarks> /// <response code="200">æåè·åè°æ¨åºåºæç»</response> /// <response code="400">è·å失败ï¼è¿åå ·ä½é误信æ¯</response> [HttpPost("GetTransferOutDetailListByBillNo")] public ResponseResult GetTransferOutDetailListByBillNo([FromBody] WarehouseQuery query) { try { dynamic resultInfos = new ExpandoObject(); resultInfos.tbBillList = _manager.GetTransferOutDetailListByBillNo(query); return new ResponseResult { status = 0, message = "OK", data = resultInfos }; } catch (Exception ex) { return ResponseResult.ResponseError(ex); } } /// <summary> /// æ«ææ¡ç è¿è¡è°æ¨åºåºå¤ç /// </summary> /// <param name="query">æ¥è¯¢åæ°</param> /// <returns>å¤çç»æåå¾ å¤çæç»</returns> /// <remarks> /// 请æ±ç¤ºä¾: /// /// POST /api/TransferOut/ScanMoveBarcode /// { /// "billNo": "DB202401010001", // è°æ¨åå·(å¿ å¡«) /// "userName": "admin", // ç¨æ·å(å¿ å¡«) /// "barcode": "BC001" // æ¡ç å·(å¿ å¡«) /// } /// /// ä¸å¡å¤çï¼ /// - éªè¯è°æ¨åç¶æ /// - éªè¯æ¡ç åºåä¿¡æ¯ /// - éªè¯ä»åºä¸è´æ§ /// - éªè¯æ°éæ¯å¦è¶ åºæªæ«æ°é /// - æ§è¡è°æ¨åºåºäºå¡å¤ç /// /// è¿åæ°æ®å å«ï¼ /// - form: å¤çç»æè¡¨å /// - items: å¾ å¤çæç»å表 /// </remarks> /// <response code="200">æ«ææå</response> /// <response code="400">æ«æå¤±è´¥ï¼è¿åå ·ä½é误信æ¯</response> [HttpPost("ScanMoveBarcode")] public ResponseResult ScanMoveBarcode([FromBody] WarehouseQuery query) { try { dynamic resultInfos = new ExpandoObject(); var (form, items) = _manager.ScanMoveBarcode(query); resultInfos.form = form; resultInfos.items = items; return new ResponseResult { status = 0, message = "OK", data = resultInfos }; } catch (Exception ex) { return ResponseResult.ResponseError(ex); } } #endregion } entity/MesInvItemMoves.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,172 @@ using SqlSugar; namespace NewPdaSqlServer.entity; /// <summary> /// </summary> [SugarTable("MES_INV_ITEM_MOVES")] public class MesInvItemMoves { /// <summary> /// é»è®¤å¼: (newid()) /// </summary> [SugarColumn(ColumnName = "guid", IsPrimaryKey = true)] public Guid Guid { get; set; } /// <summary> /// ç§»åºåå· /// </summary> [SugarColumn(ColumnName = "bill_no")] public string? BillNo { get; set; } /// <summary> /// ç§»å ¥ååºid /// </summary> [SugarColumn(ColumnName = "inv_depots_id")] public int? InvDepotsId { get; set; } /// <summary> /// ç§»å ¥è´§ä½id /// </summary> [SugarColumn(ColumnName = "inv_depot_sections_id")] public int? InvDepotSectionsId { get; set; } /// <summary> /// å建人 /// </summary> [SugarColumn(ColumnName = "create_by")] public string? CreateBy { get; set; } /// <summary> /// å建æ¶é´ /// </summary> [SugarColumn(ColumnName = "create_date")] public DateTime? CreateDate { get; set; } /// <summary> /// æåæ´æ°äºº /// </summary> [SugarColumn(ColumnName = "lastupdate_by")] public string? LastupdateBy { get; set; } /// <summary> /// æåæ´æ°æ¶é´ /// </summary> [SugarColumn(ColumnName = "lastupdate_date")] public DateTime? LastupdateDate { get; set; } /// <summary> /// ç¶æ|0-å¶å1-è¿è´¦ /// </summary> [SugarColumn(ColumnName = "status")] public int? Status { get; set; } /// <summary> /// 夿³¨ /// </summary> [SugarColumn(ColumnName = "remark")] public string? Remark { get; set; } /// <summary> /// åæ®ç±»åID /// </summary> [SugarColumn(ColumnName = "bill_type_id")] public int? BillTypeId { get; set; } /// <summary> /// äºå¡ç±»åID /// </summary> [SugarColumn(ColumnName = "transaction_id")] public int? TransactionId { get; set; } /// <summary> /// å®¡æ ¸äºº /// </summary> [SugarColumn(ColumnName = "checkuser")] public string? Checkuser { get; set; } /// <summary> /// å®¡æ ¸æ¥æ /// </summary> [SugarColumn(ColumnName = "checkdate")] public DateTime? Checkdate { get; set; } /// <summary> /// äºå¡ç±»åç¼ç /// </summary> [SugarColumn(ColumnName = "transaction_no")] public int? TransactionNo { get; set; } /// <summary> /// ç§»åºååºid /// </summary> [SugarColumn(ColumnName = "from_depots_id")] public string? FromDepotsId { get; set; } /// <summary> /// å·¥åç¼ç /// </summary> [SugarColumn(ColumnName = "factory_code")] public string? FactoryCode { get; set; } /// <summary> /// SAPè¿ååæ® /// </summary> [SugarColumn(ColumnName = "sapno")] public string? Sapno { get; set; } /// <summary> /// å·²ååSAP /// é»è®¤å¼: ((0)) /// </summary> [SugarColumn(ColumnName = "sapstatus")] public int? Sapstatus { get; set; } /// <summary> /// SAPè¿å年份 /// </summary> [SugarColumn(ColumnName = "sapyear")] public int? Sapyear { get; set; } /// <summary> /// SAPè¿åä¿¡æ¯ /// </summary> [SugarColumn(ColumnName = "saptext")] public string? Saptext { get; set; } /// <summary> /// ååç¼ç /// </summary> [SugarColumn(ColumnName = "factory")] public string? Factory { get; set; } /// <summary> /// å ¬å¸ä»£ç /// </summary> [SugarColumn(ColumnName = "company")] public string? Company { get; set; } /// <summary> /// åå®¡æ ¸äºå¡ç±»åç¼ç /// </summary> [SugarColumn(ColumnName = "mtransaction_no")] public int? MtransactionNo { get; set; } /// <summary> /// èªå¨ä¿ååæ®µ /// </summary> [SugarColumn(ColumnName = "zd_num")] public int? ZdNum { get; set; } /// <summary> /// æ¯å¦æ¨éERP1-æ¯ï¼2-å¦ /// </summary> [SugarColumn(ColumnName = "ts")] public int? Ts { get; set; } /// <summary> /// è°æ¨åºåºç³è¯·å /// </summary> [SugarColumn(ColumnName = "TASK_NO")] public string? TaskNo { get; set; } } entity/MesInvItemMovesCDetails.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,250 @@ using SqlSugar; namespace NewPdaSqlServer.entity; /// <summary> /// </summary> [SugarTable("MES_INV_ITEM_MOVES_C_DETAILS")] public class MesInvItemMovesCDetails { /// <summary> /// </summary> [SugarColumn(ColumnName = "guid", IsPrimaryKey = true)] public Guid Guid { get; set; } /// <summary> /// </summary> [SugarColumn(ColumnName = "item_move_guid")] public Guid? ItemMoveGuid { get; set; } /// <summary> /// ç©ææ¡ç /// </summary> [SugarColumn(ColumnName = "item_barcode")] public string? ItemBarcode { get; set; } /// <summary> /// 客æ·ç©æç¼ç ï¼æ æ¡ç æå·¥å½å ¥ï¼ææ¡ç 为åä½åæ®µï¼ /// </summary> [SugarColumn(ColumnName = "c_item_code")] public string? CItemCode { get; set; } /// <summary> /// ä¿¡åç©æç¼ç ï¼æ æ¡ç æå·¥å½å ¥ï¼ææ¡ç 为åä½åæ®µï¼ /// </summary> [SugarColumn(ColumnName = "item_no")] public string? ItemNo { get; set; } /// <summary> /// åå®¶æ¹æ¬¡ /// </summary> [SugarColumn(ColumnName = "lot_no")] public string? LotNo { get; set; } /// <summary> /// æ°éï¼æ æ¡ç æå·¥å½å ¥ï¼ææ¡ç 为åä½åæ®µï¼ /// </summary> [SugarColumn(ColumnName = "quantity")] public decimal? Quantity { get; set; } /// <summary> /// åºåºæ¹å¼(1:ææ¡ç ,0:æ æ¡ç ) /// é»è®¤å¼: ((1)) /// </summary> [SugarColumn(ColumnName = "barcode_flag")] public int? BarcodeFlag { get; set; } /// <summary> /// ç¯ä¿æ å¿ï¼æ æ¡ç æå·¥å½å ¥ï¼ææ¡ç 为åä½åæ®µï¼ /// é»è®¤å¼: ((1)) /// </summary> [SugarColumn(ColumnName = "ep_flag")] public int? EpFlag { get; set; } /// <summary> /// å建人 /// </summary> [SugarColumn(ColumnName = "create_by")] public string? CreateBy { get; set; } /// <summary> /// å建æ¶é´ /// </summary> [SugarColumn(ColumnName = "create_date")] public DateTime? CreateDate { get; set; } /// <summary> /// æåæ´æ°äºº /// </summary> [SugarColumn(ColumnName = "lastupdate_by")] public string? LastupdateBy { get; set; } /// <summary> /// æåæ´æ°æ¶é´ /// </summary> [SugarColumn(ColumnName = "lastupdate_date")] public DateTime? LastupdateDate { get; set; } /// <summary> /// ååºid /// </summary> [SugarColumn(ColumnName = "inv_depots_id")] public int? InvDepotsId { get; set; } /// <summary> /// è´§ä½id /// </summary> [SugarColumn(ColumnName = "inv_depot_sections_id")] public int? InvDepotSectionsId { get; set; } /// <summary> /// 客æ·ç¼ç /// </summary> [SugarColumn(ColumnName = "cust_no")] public string? CustNo { get; set; } /// <summary> /// ä»»å¡ä»¤å· /// </summary> [SugarColumn(ColumnName = "task_no")] public string? TaskNo { get; set; } /// <summary> /// ç§»åºä»åºç¼å· /// </summary> [SugarColumn(ColumnName = "from_depots_code")] public string? FromDepotsCode { get; set; } /// <summary> /// ç§»åºåºä½ç¼å· /// </summary> [SugarColumn(ColumnName = "from_depot_sections_code")] public string? FromDepotSectionsCode { get; set; } /// <summary> /// æ¡ç 夿³¨ /// </summary> [SugarColumn(ColumnName = "remark")] public string? Remark { get; set; } /// <summary> /// ååç¼ç /// </summary> [SugarColumn(ColumnName = "factory")] public string? Factory { get; set; } /// <summary> /// å ¬å¸ä»£ç /// </summary> [SugarColumn(ColumnName = "company")] public string? Company { get; set; } /// <summary> /// ç®±å· /// </summary> [SugarColumn(ColumnName = "box_no")] public string? BoxNo { get; set; } /// <summary> /// 塿¿å· /// </summary> [SugarColumn(ColumnName = "ko_no")] public string? KoNo { get; set; } /// <summary> /// ç§»å ¥ä»åºç¼å· /// </summary> [SugarColumn(ColumnName = "inv_depots_code")] public string? InvDepotsCode { get; set; } /// <summary> /// ç§»å ¥åºä½ç¼å· /// </summary> [SugarColumn(ColumnName = "inv_depot_sections_code")] public string? InvDepotSectionsCode { get; set; } /// <summary> /// è´¨æ£ç»æ /// </summary> [SugarColumn(ColumnName = "iqc_status")] public string? IqcStatus { get; set; } /// <summary> /// å°è½¦ç¼å· /// </summary> [SugarColumn(ColumnName = "fcar")] public string? Fcar { get; set; } /// <summary> /// å ¥åºæ¥æ /// </summary> [SugarColumn(ColumnName = "indep_date")] public DateTime? IndepDate { get; set; } /// <summary> /// å»ç»æäº¤éæ£ï¼0ï¼å»ç»æªæäº¤éæ£ï¼1ï¼å»ç»å¹¶æäº¤éæ£ /// é»è®¤å¼: ((0)) /// </summary> [SugarColumn(ColumnName = "visable_submit")] public int? VisableSubmit { get; set; } /// <summary> /// æäº¤éæ£äºº /// </summary> [SugarColumn(ColumnName = "visable_submit_by")] public string? VisableSubmitBy { get; set; } /// <summary> /// æäº¤éæ£æ¶é´ /// </summary> [SugarColumn(ColumnName = "visable_submit_date")] public DateTime? VisableSubmitDate { get; set; } /// <summary> /// 产ååå· /// </summary> [SugarColumn(ColumnName = "board_style")] public string? BoardStyle { get; set; } /// <summary> /// ä»»å¡åå· /// </summary> [SugarColumn(ColumnName = "work_no")] public string? WorkNo { get; set; } /// <summary> /// ä»»å¡åè¡å· /// </summary> [SugarColumn(ColumnName = "work_line")] public int? WorkLine { get; set; } /// <summary> /// ä¾åºåç¼å· /// </summary> [SugarColumn(ColumnName = "supp_no")] public string? SuppNo { get; set; } /// <summary> /// è°å ¥ /// </summary> [SugarColumn(ColumnName = "move_ok")] public int? MoveOk { get; set; } /// <summary> /// ç©æID /// </summary> [SugarColumn(ColumnName = "item_id")] public int? ItemId { get; set; } /// <summary> /// K3ID /// </summary> [SugarColumn(ColumnName = "EBELN_K3ID")] public long? EbelnK3id { get; set; } /// <summary> /// è¡K3ID /// </summary> [SugarColumn(ColumnName = "LINE_K3ID")] public long? LineK3id { get; set; } } entity/TransferOut.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,199 @@ using SqlSugar; namespace NewPdaSqlServer.entity; /// <summary> /// è°æ¨åºåºä¸»è¡¨ /// </summary> [SugarTable("Transfer_Out")] public class TransferOut { /// <summary> /// ä¸»é® /// é»è®¤å¼: (newid()) /// </summary> [SugarColumn(ColumnName = "guid", IsPrimaryKey = true)] public Guid Guid { get; set; } /// <summary> /// åæ®ç±»å /// </summary> [SugarColumn(ColumnName = "bill_type_id")] public string BillTypeId { get; set; } /// <summary> /// è°æ¨æ¹å /// </summary> [SugarColumn(ColumnName = "transfer_direct")] public string TransferDirect { get; set; } /// <summary> /// è°æ¨ç±»å /// </summary> [SugarColumn(ColumnName = "transfer_biz_type")] public string TransferBizType { get; set; } /// <summary> /// è°åºåºåç»ç» /// </summary> [SugarColumn(ColumnName = "stockoutorg_id")] public string StockoutorgId { get; set; } /// <summary> /// è°å ¥åºåç»ç» /// </summary> [SugarColumn(ColumnName = "stockorg_id")] public string StockorgId { get; set; } /// <summary> /// è°åºè´§ä¸»ç±»å /// </summary> [SugarColumn(ColumnName = "owner_type_out_id_head")] public string OwnerTypeOutIdHead { get; set; } /// <summary> /// è°åºè´§ä¸» /// </summary> [SugarColumn(ColumnName = "owner_out_id_head")] public string OwnerOutIdHead { get; set; } /// <summary> /// è°å ¥è´§ä¸»ç±»å /// </summary> [SugarColumn(ColumnName = "owner_type_id_head")] public string OwnerTypeIdHead { get; set; } /// <summary> /// è°å ¥è´§ä¸» /// </summary> [SugarColumn(ColumnName = "owner_id_head")] public string OwnerIdHead { get; set; } /// <summary> /// éå®ç»ç» /// </summary> [SugarColumn(ColumnName = "saleorg_id")] public string SaleorgId { get; set; } /// <summary> /// å建人 /// </summary> [SugarColumn(ColumnName = "create_by")] public string CreateBy { get; set; } /// <summary> /// å建æ¶é´ /// </summary> [SugarColumn(ColumnName = "cteate_data")] public DateTime? CteateData { get; set; } /// <summary> /// æåæ´æ°äºº /// </summary> [SugarColumn(ColumnName = "lastupdate_by")] public string LastupdateBy { get; set; } /// <summary> /// æåæ´æ°æ¶é´ /// </summary> [SugarColumn(ColumnName = "lastupdate_date")] public DateTime? LastupdateDate { get; set; } /// <summary> /// å®¡æ ¸äºº /// </summary> [SugarColumn(ColumnName = "CHECK_USER")] public string CheckUser { get; set; } /// <summary> /// å®¡æ ¸æ¶é´ /// </summary> [SugarColumn(ColumnName = "CHECK_DATE")] public DateTime? CheckDate { get; set; } /// <summary> /// å®¡æ ¸ç¶æ /// é»è®¤å¼: ((0)) /// </summary> [SugarColumn(ColumnName = "STATUS")] public int? Status { get; set; } /// <summary> /// è°æ¨ç±»åç¼ç /// </summary> [SugarColumn(ColumnName = "transferbiztype_no")] public string TransferbiztypeNo { get; set; } /// <summary> /// è°æ¨æ¹åç¼ç /// </summary> [SugarColumn(ColumnName = "transferdirect_no")] public string TransferdirectNo { get; set; } /// <summary> /// è°åºä»åº /// </summary> [SugarColumn(ColumnName = "inv_code")] public string InvCode { get; set; } /// <summary> /// è°åºä»åºåç§° /// </summary> [SugarColumn(ColumnName = "inv_name")] public string InvName { get; set; } /// <summary> /// è°å ¥ä»åº /// </summary> [SugarColumn(ColumnName = "from_code")] public string FromCode { get; set; } /// <summary> /// è°å ¥ä»åºåç§° /// </summary> [SugarColumn(ColumnName = "from_name")] public string FromName { get; set; } /// <summary> /// è°åºåºåç»ç»ID /// </summary> [SugarColumn(ColumnName = "stockoutorgid_no")] public int? StockoutorgidNo { get; set; } /// <summary> /// è°å ¥åºåç»ç»ID /// </summary> [SugarColumn(ColumnName = "stockorgid_no")] public int? StockorgidNo { get; set; } /// <summary> /// è°æ¨ç³è¯·å /// </summary> [SugarColumn(ColumnName = "bill_no")] public string BillNo { get; set; } /// <summary> /// åæ®ç±»åç¼ç /// </summary> [SugarColumn(ColumnName = "billtypeid_no")] public string BilltypeidNo { get; set; } /// <summary> /// åºåºä»åº /// </summary> [SugarColumn(ColumnName = "ck_depot")] public int? CkDepot { get; set; } /// <summary> /// å ¥åºä»åº /// </summary> [SugarColumn(ColumnName = "rk_depot")] public int? RkDepot { get; set; } /// <summary> /// å®ç»æ è¯ /// é»è®¤å¼: ((0)) /// </summary> [SugarColumn(ColumnName = "is_wc")] public int? IsWc { get; set; } } entity/TransferOutEtail.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,67 @@ using SqlSugar; namespace NewPdaSqlServer.entity; /// <summary> /// è°æ¨åºåºç³è¯·æç» /// </summary> [SugarTable("Transfer_Out_DETAIL")] public class TransferOutDetail { /// <summary> /// é»è®¤å¼: (newid()) /// </summary> [SugarColumn(ColumnName = "guid", IsPrimaryKey = true)] public Guid Guid { get; set; } /// <summary> /// </summary> [SugarColumn(ColumnName = "pid")] public Guid? Pid { get; set; } /// <summary> /// </summary> [SugarColumn(ColumnName = "item_id")] public int? ItemId { get; set; } /// <summary> /// ç³è¯·æ°é /// </summary> [SugarColumn(ColumnName = "sh_num")] public int? ShNum { get; set; } /// <summary> /// å·²æ«æ°é /// </summary> [SugarColumn(ColumnName = "ys_num")] public int? YsNum { get; set; } /// <summary> /// </summary> [SugarColumn(ColumnName = "item_unit")] public string? ItemUnit { get; set; } /// <summary> /// ç©æåç§° /// </summary> [SugarColumn(ColumnName = "item_name")] public string? ItemName { get; set; } /// <summary> /// ç©æç¼ç /// </summary> [SugarColumn(ColumnName = "item_no")] public string? ItemNo { get; set; } /// <summary> /// è§æ ¼åå· /// </summary> [SugarColumn(ColumnName = "item_model")] public string? ItemModel { get; set; } /// <summary> /// å½ååºåæ° /// </summary> [SugarColumn(ColumnName = "kc")] public int? Kc { get; set; } } service/Warehouse/MesItemQtManager.cs
@@ -24,7 +24,7 @@ } /// <summary> /// è·åå¾ å¤ççéæåæç»å表 /// è·åå¾ å¤ççéæåæç»å表 /// </summary> /// <param name="query">ä»åºæ¥è¯¢åæ°ï¼å å«ç¨æ·åååæ®å·</param> /// <returns>å¾ å¤ççéæåæç»å表</returns> @@ -40,22 +40,15 @@ .First(); // å¦ææªæ¾å°éæåï¼æåºå¼å¸¸ if (mesItemQt == null) { throw new Exception($"æªæ¥è¯¢å°æ¤å ¶ä»å ¥åºç³è¯·å {p_bill_no}"); } if (mesItemQt == null) throw new Exception($"æªæ¥è¯¢å°æ¤å ¶ä»å ¥åºç³è¯·å {p_bill_no}"); // æ£æ¥éæåçå®¡æ ¸ç¶æ(Qt015)ï¼æªå®¡æ ¸åæåºå¼å¸¸ if (mesItemQt.Qt015 == false) { throw new Exception($"å ¶ä»åºåºç³è¯·å {p_bill_no} æªå®¡æ ¸ï¼è¯·ç¡®è®¤ï¼"); } // æ£æ¥éæåçå®ç»ç¶æ(Qt014)ï¼å·²å®ç»åæåºå¼å¸¸ if (mesItemQt.Qt014 == true) { throw new Exception($"å ¶ä»åºåºç³è¯·å {p_bill_no} å·²å®ç»ï¼è¯·ç¡®è®¤ï¼"); } // è表æ¥è¯¢è·åæªå®æçæç»å表 // å ³èè¡¨ï¼ @@ -97,10 +90,7 @@ var p_transaction_no = 202; // æ£æ¥åæ®å·æ¯å¦ä¸ºç©º if (string.IsNullOrEmpty(p_bill_no)) { throw new Exception("请éååæ®å·ï¼"); } if (string.IsNullOrEmpty(p_bill_no)) throw new Exception("请éååæ®å·ï¼"); // æ£æ¥æ¯å¦é夿«æ var existingBarcode = Db.Queryable<MesInvItemOutCDetails>() @@ -108,10 +98,7 @@ it.ItemBarcode == p_item_barcode && it.PbillNo == p_bill_no) .Any(); if (existingBarcode) { throw new Exception("æ¤æ¡ç å·²ç»æ«ç åºåº,å¿é夿«æï¼"); } if (existingBarcode) throw new Exception("æ¤æ¡ç å·²ç»æ«ç åºåº,å¿é夿«æï¼"); // è·åæ¡ç ä¿¡æ¯ var barcode = Db.Queryable<MesInvItemBarcodes>() @@ -119,9 +106,7 @@ .First(); if (barcode == null) { throw new Exception($"mesä¸ä¸å卿¤æ¡ç ,è¯·æ ¸å¯¹ï¼{p_item_barcode}"); } // è·ååºåä¿¡æ¯ var stock = Db.Queryable<MesInvItemStocks>() @@ -129,20 +114,14 @@ .First(); if (stock == null) { throw new Exception($"åºå䏿 æ¤æ¡ç ï¼è¯·æ£æ¥æ¡ç æ¯å¦æªå ¥åºæå·²åºåºï¼{p_item_barcode}"); } if (string.IsNullOrEmpty(stock.DepotsCode)) { throw new Exception($"è°æ¨ä¸çæ¡ç ä¸å¯åæ,请å å®æè°æ¨åæ®{p_item_barcode}"); } if (stock.DepotsCode is "S006" or "S005") { throw new Exception($"æ¡ç å¨ä¸è¯åä»ä¸ ä¸å¯åæ{p_item_barcode}"); } // æ£æ¥æ¯å¦å¨å¯åä»ä½ // var isDepotSection = Db.Queryable<MesJcDepot>() @@ -160,16 +139,12 @@ .First(); if (mesItemQt == null) { throw new Exception($"å ¶ä»åºåºç³è¯·å {p_bill_no} ä¸åå¨ï¼è¯·ç¡®è®¤ï¼"); } // æ£æ¥ä»åºæ¯å¦ä¸è´ if (mesItemQt.Qt011 != stock.DepotsCode) { throw new Exception( $"æ«ç åºè´§ä»åº{stock.DepotsCode}ä¸å ¶ä»åºåºç³è¯·ä»åº{mesItemQt.Qt011}ä¸ä¸è´ï¼è¯·æ ¸å¯¹ï¼"); } // è·ååºåºåæç» var qtDetail = Db.Queryable<MesItemQtDatall>() @@ -178,17 +153,12 @@ it.ItemId == stock.ItemId.ToString()) .First(); if (qtDetail == null) { throw new Exception("æ«ç ç©æéæ¬æ¬¡åºåºç³è¯·ç©æï¼è¯·æ ¸å¯¹ï¼"); } if (qtDetail == null) throw new Exception("æ«ç ç©æéæ¬æ¬¡åºåºç³è¯·ç©æï¼è¯·æ ¸å¯¹ï¼"); // æ£æ¥å©ä½æ°é var remainingQty = (qtDetail.Qd007 ?? 0) - (qtDetail.Qd008 ?? 0); if (remainingQty <= 0) { throw new Exception($"ç³è¯·ç©æ {barcode.ItemNo} å·²åºåºå®æï¼"); } // æ£æ¥æ°éæ¯å¦è¶ åº if (stock.Quantity > remainingQty) @@ -295,10 +265,7 @@ it.ItemId == stock.ItemId.ToString()) .First(); if (qtDetail == null) { throw new Exception($"æªæ¾å°å¯¹åºçéæåæç»ä¿¡æ¯"); } if (qtDetail == null) throw new Exception("æªæ¾å°å¯¹åºçéæåæç»ä¿¡æ¯"); // æ£æ¥æ¯å¦å·²åå¨åºåºç©æè®°å½ var existingOutItem = Db.Queryable<MesInvItemOutItems>() @@ -329,7 +296,7 @@ ItemId = !string.IsNullOrEmpty(qtDetail.ItemId) ? long.Parse(qtDetail.ItemId) : null, FType = 0, FType = 0 // Unit = qtDetail.Qd009 }; @@ -429,12 +396,10 @@ // æ£æ¥æç»æ¯å¦å®æ,妿宿忴æ°ç¶æ if ((qtDetail.Qd007 ?? 0) - (qtDetail.Qd008 ?? 0) == stock.Quantity) { commit += db.Updateable<MesItemQtDatall>() .SetColumns(it => it.Qd011 == 1) .Where(it => it.Guid == qtDetail.Guid) .ExecuteCommand(); } mesItemQtDatalls = Db .Queryable<MesItemQt, MesItemQtDatall, MesItems>( @@ -456,12 +421,10 @@ // å¦ææ²¡æå¾ å¤çæç»ï¼æ´æ°éæåç¶æä¸ºå·²å®æ if (CollectionUtil.IsNullOrEmpty(mesItemQtDatalls)) { db.Updateable<MesItemQt>() .SetColumns(it => it.Qt014 == true) .Where(it => it.Qtck == p_bill_no) .ExecuteCommand(); } // æå»ºè¿åæ¶æ¯ mess = $"æ«ç æåï¼æ¡ç {p_item_barcode} æ°é {stock.Quantity} å·²åºåº"; @@ -471,10 +434,7 @@ query.Num = stock.Quantity; query.Fum = null; if (commit < 5) { throw new Exception("æ´æ°å¤±è´¥"); } if (commit < 5) throw new Exception("æ´æ°å¤±è´¥"); return commit; }); @@ -494,16 +454,10 @@ var p_transaction_no = 202; // æ£æ¥åæ®å·æ¯å¦ä¸ºç©º if (string.IsNullOrEmpty(p_bill_no)) { throw new Exception("请éååæ®å·ï¼"); } if (string.IsNullOrEmpty(p_bill_no)) throw new Exception("请éååæ®å·ï¼"); // æ£æ¥æ°éæ¯å¦ææ if (p_qty <= 0) { throw new Exception("请è¾å ¥æ£ç¡®çåææ°éï¼"); } if (p_qty <= 0) throw new Exception("请è¾å ¥æ£ç¡®çåææ°éï¼"); // è·ååºåæ¡ç ä¿¡æ¯ var stock = Db.Queryable<MesInvItemStocks>() @@ -511,19 +465,13 @@ .First(); if (stock == null) { throw new Exception($"åºå䏿 æ¤æ¡ç ï¼è¯·æ£æ¥æ¡ç æ¯å¦æªå ¥åºæå·²åºåºï¼{p_old_barcode}"); } if (string.IsNullOrEmpty(stock.DepotsCode)) { throw new Exception($"è°æ¨ä¸çæ¡ç ä¸å¯åæ,请å å®æè°æ¨åæ®{p_old_barcode}"); } if (stock.DepotsCode is "S006" or "S005") { throw new Exception($"æ¡ç å¨ä¸è¯åä»ä¸ ä¸å¯åæ{p_old_barcode}"); } // è·åæ¡ç ä¿¡æ¯ var barcode = Db.Queryable<MesInvItemBarcodes>() @@ -531,9 +479,7 @@ .First(); if (barcode == null) { throw new Exception($"mesä¸ä¸å卿¤æ¡ç ï¼è¯·æ ¸å¯¹ï¼{p_old_barcode}"); } // è·åéæåä¿¡æ¯ var mesItemQt = Db.Queryable<MesItemQt>() @@ -541,15 +487,11 @@ .First(); if (mesItemQt == null) { throw new Exception($"å ¶ä»åºåºç³è¯·å {p_bill_no} ä¸åå¨ï¼è¯·ç¡®è®¤ï¼"); } if (mesItemQt.Qt011 != stock.DepotsCode) { throw new Exception( $"æ«ç åºè´§ä»åº{stock.DepotsCode}ä¸å ¶ä»åºåºç³è¯·ä»åº{mesItemQt.Qt011}ä¸ä¸è´ï¼è¯·æ ¸å¯¹ï¼"); } // è·åéæåæç» var qtDetail = Db.Queryable<MesItemQtDatall>() @@ -558,32 +500,23 @@ it.ItemId == stock.ItemId.ToString()) .First(); if (qtDetail == null) { throw new Exception("æ«ç ç©æéæ¬æ¬¡åºåºç³è¯·ç©æï¼è¯·æ ¸å¯¹ï¼"); } if (qtDetail == null) throw new Exception("æ«ç ç©æéæ¬æ¬¡åºåºç³è¯·ç©æï¼è¯·æ ¸å¯¹ï¼"); var remainingQty = (qtDetail.Qd007 ?? 0) - (qtDetail.Qd008 ?? 0); if (remainingQty <= 0) { throw new Exception($"ç³è¯·ç©æ {barcode.ItemNo} å·²åºåºå®æï¼"); } if (p_qty > remainingQty) { throw new Exception( $"è¾å ¥çæåæ°é {p_qty} ä¸å¯å¤§äºå©ä½éåæ°é {remainingQty} 请修æ¹"); } var totalQty = Db.Queryable<MesInvItemStocks>() .Where(it => it.ItemBarcode == p_old_barcode && it.Quantity > 0) .Sum(it => it.Quantity); if (totalQty < p_qty) { throw new Exception($"è¾å ¥çåææ°é {p_qty} ä¸å¯å¤§äºæ¡ç æ°é {totalQty} 请修æ¹"); } var message = string.Empty; var mesItemQtDatalls = new List<MesItemQtDatall>(); @@ -633,7 +566,7 @@ ComeFlg = 5, EbelnK3id = barcode.EbelnK3id, LineK3id = barcode.LineK3id, ItemId = barcode.ItemId, ItemId = barcode.ItemId }).IgnoreColumns(true).ExecuteCommand(); // æ´æ°åæ¡ç æ°é @@ -667,7 +600,7 @@ BillNo = stock.BillNo, EbelnK3id = stock.EbelnK3id, LineK3id = stock.LineK3id, ItemId = stock.ItemId, ItemId = stock.ItemId }).IgnoreColumns(true).ExecuteCommand(); @@ -702,7 +635,7 @@ LineK3id = stock.LineK3id, SuppId = stock.SuppId, SuppNo = stock.SuppNo, ItemId = stock.ItemId, ItemId = stock.ItemId }).IgnoreColumns(true).ExecuteCommand(); } else @@ -733,7 +666,7 @@ commit += db.Insertable(new MesInvItemOuts { Guid = outId, ItemOutNo = $"OUT-{DateTime.Now:yyyyMMddHHmmss}", ItemOutNo = outNo, TaskNo = p_bill_no, Status = 0, CreateBy = c_user, @@ -751,9 +684,8 @@ PbillNo = p_bill_no, OutDate = DateTime.Now, Nflag = 0, Reason = mesItemQt.Qt010, Reason = mesItemQt.Qt010 }).ExecuteReturnIdentity(); outNo = $"OUT-{DateTime.Now:yyyyMMddHHmmss}"; } else { @@ -768,7 +700,6 @@ .First(); if (outItem == null) { // æå ¥æ°æç» db.Insertable(new MesInvItemOutItems { @@ -789,12 +720,10 @@ ItemId = !string.IsNullOrEmpty(qtDetail.ItemId) ? long.Parse(qtDetail.ItemId) : null, FType = 0, FType = 0 // Unit = qtDetail.Qd009 }).ExecuteCommand(); } else { // æ´æ°æç»æ°é db.Updateable<MesInvItemOutItems>() .SetColumns(it => @@ -804,7 +733,6 @@ it.ItemId == stock.ItemId && it.QtOutId == qtDetail.Guid) .ExecuteCommand(); } // æå ¥åºåºæç» db.Insertable(new MesInvItemOutCDetails @@ -887,12 +815,10 @@ // å¦ææææç»å®æï¼æ´æ°éæåç¶æ if (!hasUnfinished) { db.Updateable<MesItemQt>() .SetColumns(it => it.Qt014 == true) .Where(it => it.Qtck == p_bill_no) .ExecuteCommand(); } // è·åå©ä½å¾ å¤çæç» mesItemQtDatalls = db service/Warehouse/TransferOutManager.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,381 @@ using NewPdaSqlServer.DB; using NewPdaSqlServer.Dto.service; using NewPdaSqlServer.entity; using NewPdaSqlServer.util; using SqlSugar; namespace NewPdaSqlServer.service.Warehouse; /// <summary> /// è°æ¨åºåºç®¡çç±» /// è´è´£å¤çè°æ¨åºåºç¸å ³çä¸å¡é»è¾ /// </summary> public class TransferOutManager : Repository<TransferOut> { /// <summary> /// è·åæªå®æçè°æ¨åºåºåå·å表 /// </summary> /// <returns>æªå®æçè°æ¨åºåºåå·å表</returns> public List<string> GetTransferOutNoList() { // å 仿°æ®åºè·åTransfer_Out_ETAILè¡¨çæ°æ® var transferOutDetails = Db.Queryable<TransferOutDetail>().ToList(); // 使ç¨LINQ对è·åçæ°æ®è¿è¡åç»åçé // ç鿡件:ç³è¯·æ°é(sq)ä¸çäºå·²æ«æ°é(ys)çè®°å½ var result = transferOutDetails .GroupBy(x => x.Pid) .Select(g => new { pid = g.Key, sq = g.Sum(x => x.ShNum), // ç³è¯·æ°éå计 ys = g.Sum(x => x.YsNum) // å·²æ«æ°éå计 }) .Where(x => (x.sq ?? 0) != (x.ys ?? 0)) .Select(x => x.pid) .ToList(); // æ ¹æ®pidæ¥è¯¢å¯¹åºçåºåºåå· var billNos = Db.Queryable<TransferOut>() .Where(x => result.Contains(x.Guid)) .Select(x => x.BillNo) .ToList(); return billNos; } /// <summary> /// æ ¹æ®åæ®å·è·åå¾ å¤ççè°æ¨åºåºæç»å表 /// </summary> /// <param name="query">æ¥è¯¢åæ°,å å«åæ®å·</param> /// <returns>å¾ å¤ççè°æ¨åºåºæç»å表</returns> public List<TransferOutDetail> GetTransferOutDetailListByBillNo( WarehouseQuery query) { var p_bill_no = query.billNo; // æ ¹æ®SQLæ¥è¯¢æ¡ä»¶è·åå¾ å¤ççåºåºæç» // å ³èæ¥è¯¢TransferOutDetailãTransferOutåMesItemsä¸å¼ 表 // ç鿡件:æªå®ææ°é大äº0ä¸åæ®å·²å®¡æ ¸ var result = Db.Queryable<TransferOutDetail, TransferOut, MesItems>( (b, a, s) => new JoinQueryInfos( JoinType.Left, b.Pid == a.Guid, JoinType.Left, b.ItemId == s.Id)) .Where((b, a, s) => (b.ShNum ?? 0) - (b.YsNum ?? 0) > 0 // æªå®ææ°é大äº0 && a.BillNo == p_bill_no // å¹é åæ®å· && a.Status == 1) // åæ®å·²å®¡æ ¸ .OrderBy((b, a, s) => s.ItemNo) .Select((b, a, s) => new TransferOutDetail { ItemNo = s.ItemNo, ItemModel = s.ItemModel, ShNum = b.ShNum, // ç³è¯·æ°é YsNum = b.YsNum, // å·²æ«æ°é // ä¿çå ¶ä»å¿ è¦å段... Pid = b.Pid, ItemId = b.ItemId, Guid = b.Guid }) .ToList(); return result; } /// <summary> /// æ«ææ¡ç è¿è¡è°æ¨åºåºå¤ç /// </summary> /// <param name="query">å å«åæ®å·ãç¨æ·ååæ¡ç ä¿¡æ¯çæ¥è¯¢åæ°</param> /// <returns>å¤çåç表ååå¾ å¤çæç»å表</returns> public (WarehouseQuery form, List<TransferOutDetail> items) ScanMoveBarcode(WarehouseQuery query) { var p_bill_no = query.billNo; var c_user = query.userName; var p_item_barcode = query.barcode; var p_bill_type_id = 300; // åæ®ç±»åID var p_transaction_no = 301; // 交æç¼å· // éªè¯åæ®å· if (string.IsNullOrEmpty(p_bill_no)) { throw new Exception("请éååæ®å·ï¼"); } // æ¥è¯¢åºåºåå¹¶éªè¯ç¶æ var transferOut = Db.Queryable<TransferOut>() .Where(x => x.BillNo == p_bill_no && x.Status == 1) .First(); if (transferOut == null) { throw new Exception("æªæ¾å°è°æ¨ç³è¯·åæè è°æ¨ç³è¯·åæ²¡å®¡æ ¸"); } // æ¥è¯¢æ¡ç åºåä¿¡æ¯å¹¶éªè¯ var stock = Db.Queryable<MesInvItemStocks>() .Where(x => x.ItemBarcode == p_item_barcode && x.Quantity > 0 && !string.IsNullOrEmpty(x.DepotsCode)) .First(); if (stock == null) { throw new Exception($"åºå䏿 æ¤æ¡ç ï¼è¯·æ ¸å¯¹ï¼{p_item_barcode}"); } // éªè¯ä»åºä¸è´æ§ if (stock.DepotsCode != transferOut.InvCode) { throw new Exception( $"æ¡ç åºåä»åº{stock.DepotsCode}åç³è¯·ä»åºä¸ä¸è´{transferOut.InvCode}"); } // æ¥è¯¢ç©æä¿¡æ¯ var item = Db.Queryable<MesItems>() .Where(x => x.Id == stock.ItemId) .First(); if (item == null) { throw new Exception("æªæ¾å°ç©æ"); } // æ¥è¯¢è°æ¨æç»å¹¶éªè¯ var detail = Db.Queryable<TransferOutDetail>() .Where(x => x.ItemId == stock.ItemId && x.Pid == transferOut.Guid) .First(); if (detail == null) { throw new Exception("æªæ¾å°æ¡ç ç©æç¸åºçè°æ¨ç³è¯·"); } // éªè¯æ°éæ¯å¦è¶ åºæªæ«æ°é if ((detail.ShNum ?? 0) - (detail.YsNum ?? 0) < stock.Quantity) { throw new Exception("æ¡ç æ°é大äºç³è¯·æªæ«æ°éï¼è¯·æåäºåæ«ç "); } // 使ç¨äºå¡å¤çæ°æ®æ´æ° UseTransaction(db => { // æ¥è¯¢ç°æç§»åºè®°å½ var existingMove = db.Queryable<MesInvItemMoves>() .Where(x => x.TaskNo == p_bill_no && x.TransactionNo == p_transaction_no && (x.Status ?? 0) == 0) .First(); var commit = 0; // è®°å½æ´æ°æä½æ¬¡æ° var c_id = Guid.Empty; // å¤çç§»åºä¸»è¡¨è®°å½ if (existingMove != null) { // æ´æ°ç°æè®°å½çæåä¿®æ¹ä¿¡æ¯ commit += db.Updateable<MesInvItemMoves>() .SetColumns(s => s.LastupdateDate == DateTime.Now) .SetColumns(s => s.LastupdateBy == c_user) .Where(s => s.Guid == existingMove.Guid) .ExecuteCommand(); c_id = existingMove.Guid; } else { // æ¥è¯¢ç¸å ³ä»åºä¿¡æ¯ var mesDepots = db.Queryable<MesDepots>() .Where(s => s.DepotCode == transferOut.FromCode) .First(); var invMesDepots = db.Queryable<MesDepots>() .Where(s => s.DepotCode == transferOut.InvCode) .First(); c_id = Guid.NewGuid(); // å建æ°çç§»åºè®°å½ var newMove = new MesInvItemMoves { Guid = c_id, BillNo = BillNo.GetBillNo("DBCKD"), CreateBy = c_user, CreateDate = DateTime.Now, BillTypeId = p_bill_type_id, TransactionNo = p_transaction_no, InvDepotSectionsId = mesDepots.DepotId, // InvDepotSectionsCode = transferOut.FromCode, // FromDepotsCode = transferOut.InvCode, FromDepotsId = invMesDepots.DepotId.ToString(), TaskNo = p_bill_no }; commit += db.Insertable(newMove).IgnoreColumns(true) .ExecuteCommand(); } // åå ¥èæ¡ç 交ææç» var business = new MesInvBusiness2 { Guid = Guid.NewGuid(), Status = 1, BillTypeId = p_bill_type_id, TransactionCode = p_transaction_no.ToString(), BusinessType = -1, ItemBarcode = p_item_barcode, ItemNo = item.ItemNo, LotNo = stock.LotNo, EpFlag = true, Quantity = stock.Quantity, FromInvDepotsCode = stock.DepotsCode, FromInvDepotSectionsCode = stock.DepotSectionsCode, ToInvDepotsCode = transferOut.FromCode, ToInvDepotSectionsCode = stock.DepotSectionsCode, CreateBy = c_user, CreateDate = DateTime.Now, LastupdateBy = c_user, LastupdateDate = DateTime.Now, Factory = stock.Factory, Company = stock.Company, TaskNo = stock.TaskNo, BillNo = p_bill_no, WorkNo = stock.WorkNo, WorkLine = stock.WorkLine, SuppNo = stock.SuppNo, ItemId = stock.ItemId, EbelnK3id = stock.EbelnK3id, LineK3id = stock.LineK3id, // RkDepot = transferOut.RkDepot, // CkDepot = transferOut.CkDepot }; commit += db.Insertable(business).IgnoreColumns(true) .ExecuteCommand(); // åå ¥æ°æ¡ç 交ææç» var moveDetail = new MesInvItemMovesCDetails { Guid = Guid.NewGuid(), ItemMoveGuid = c_id, ItemBarcode = p_item_barcode, CItemCode = stock.CItemCode, ItemNo = item.ItemNo, LotNo = stock.LotNo, Quantity = stock.Quantity, EpFlag = stock.EpFlag, CreateBy = c_user, CreateDate = DateTime.Now, LastupdateBy = c_user, LastupdateDate = DateTime.Now, // CustomerNo = stock.CustomerNo, TaskNo = stock.TaskNo, FromDepotsCode = stock.DepotsCode, FromDepotSectionsCode = stock.DepotSectionsCode, Factory = stock.Factory, Company = stock.Company, InvDepotsCode = transferOut.FromCode, // InvDepotSectionsCode = p_sectioncode, IqcStatus = stock.IqcStatus, Fcar = stock.Fcar, IndepDate = stock.IndepDate, VisableSubmit = stock.VisableSubmit, VisableSubmitBy = stock.VisableSubmitBy, VisableSubmitDate = stock.VisableSubmitDate, BoardStyle = stock.BoardStyle, WorkNo = stock.WorkNo, WorkLine = stock.WorkLine, SuppNo = stock.SuppNo, ItemId = (int)stock.ItemId, EbelnK3id = stock.EbelnK3id, LineK3id = stock.LineK3id, // RkDepot = transferOut.RkDepot, // CkDepot = transferOut.CkDepot }; commit += db.Insertable(moveDetail).IgnoreColumns(true) .ExecuteCommand(); // æ´æ°ææå ¥åºåºæç»è®°å½ var outItem = db.Queryable<MesInvItemOutItems>() .Where(x => x.ItemOutId == c_id && x.ItemId == stock.ItemId) .First(); if (outItem != null) { // æ´æ°ç°æè®°å½çæ°é outItem.Quantity += stock.Quantity; commit += db.Updateable<MesInvItemOutItems>() .SetColumns(x => x.Quantity == outItem.Quantity) .Where(x => x.Guid == outItem.Guid) .ExecuteCommand(); } else { // æå ¥æ°è®°å½ var newOutItem = new MesInvItemOutItems { Guid = Guid.NewGuid(), ItemOutId = c_id, ItemId = stock.ItemId, CreateBy = c_user, CreateDate = DateTime.Now, TaskNo = stock.TaskNo, WorkNo = stock.WorkNo, WorkLine = stock.WorkLine, EbelnK3id = (int)stock.EbelnK3id, LineK3id = (int)stock.LineK3id, Quantity = stock.Quantity, // Unit = stock.ItemUnit }; commit += db.Insertable(newOutItem).IgnoreColumns(true) .ExecuteCommand(); } // æ´æ°è°æ¨ç³è¯·å·²æ«æ°é detail = db.Queryable<TransferOutDetail>() .Where(x => x.Guid == detail.Guid) .First(); if (detail != null) { detail.YsNum = (detail.YsNum ?? 0) + stock.Quantity as int?; commit += db.Updateable<TransferOutDetail>() .SetColumns(x => x.YsNum == detail.YsNum) .Where(x => x.Guid == detail.Guid) .ExecuteCommand(); } // æ£æ¥æ¯å¦æææç»é½å·²å®æ var totals = db.Queryable<TransferOutDetail, TransferOut>((b, a) => new JoinQueryInfos(JoinType.Left, b.Pid == a.Guid)) .Where((b, a) => a.BillNo == p_bill_no) .Select((b, a) => new { ShNum = SqlFunc.AggregateSum(b.ShNum), // ç³è¯·æ»æ°é YsNum = SqlFunc.AggregateSum(b.YsNum) // å·²æ«æ»æ°é }) .First(); // 妿ç³è¯·æ°éçäºå·²æ«æ°éï¼æ´æ°åæ®å®æç¶æ if (totals.ShNum == totals.YsNum) { commit += db.Updateable<TransferOut>() .SetColumns(x => x.IsWc == 1) .Where(x => x.BillNo == p_bill_no) .ExecuteCommand(); } // æ´æ°è¿ååæ° query.itemNo = item.ItemNo; query.Num = stock.Quantity; // éªè¯æ´æ°æä½æ¯å¦å ¨é¨æå if (commit < 4) { throw new Exception("æ´æ°å¤±è´¥"); } return commit; }); // è¿åæ´æ°åç表ååå¾ å¤çæç» return (query, GetTransferOutDetailListByBillNo(query)); } }