From 12e2d0e41d52f36d0746118e24b3fed228f92f98 Mon Sep 17 00:00:00 2001 From: dengjunjie <dengjunjie@hnkhzn.com> Date: 星期三, 18 十二月 2024 08:58:41 +0800 Subject: [PATCH] WMS --- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Stock/StockOutboundOrderDTO.cs | 52 ++++++++ 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IStockService/IStockInfoService.cs | 2 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesTaskService.cs | 26 ++++ 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MES/TestToolModel.cs | 59 +++++++++ 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs | 8 + 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MES/MesResponseContent.cs | 54 +++++++++ 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockInfoService.cs | 48 ++++++++ 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/StockInfoController.cs | 12 ++ 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/MES/MesController.cs | 48 ++++++++ 9 files changed, 309 insertions(+), 0 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MES/MesResponseContent.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MES/MesResponseContent.cs" new file mode 100644 index 0000000..9ed0fd6 --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MES/MesResponseContent.cs" @@ -0,0 +1,54 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using WIDESEA_Core.Attributes; + +namespace WIDESEA_DTO +{ + [ModelValidate] + public class MesResponseContent + { + /// <summary> + /// + /// </summary> + public bool bSucc { get; set; } + /// <summary> + /// + /// </summary> + public string StrCode { get; set; } + /// <summary> + /// 鎵ц鎴愬姛 + /// </summary> + public string StrMsg { get; set; } + /// <summary> + /// + /// </summary> + public DateTime DataTime { get; set; } + /// <summary> + /// + /// </summary> + public content Content { get; set; } + + public class content + { + /// <summary> + /// + /// </summary> + public string Code { get; set; } + /// <summary> + /// + /// </summary> + public string Name { get; set; } + /// <summary> + /// + /// </summary> + public string ShortName { get; set; } + /// <summary> + /// + /// </summary> + public string Contacts { get; set; } + } + } +} diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MES/TestToolModel.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MES/TestToolModel.cs" new file mode 100644 index 0000000..828a8ee --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MES/TestToolModel.cs" @@ -0,0 +1,59 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using WIDESEA_Core.Attributes; + +namespace WIDESEA_DTO +{ + /// <summary> + /// 娴嬭瘯鏋跺嚭浠撴ā鍨� + /// </summary> + [ModelValidate] + public class TestToolOutModel + { + /// <summary> + /// 娴嬫灦缂栫爜 + /// </summary> + [PropertyValidate("娴嬫灦缂栫爜", NotNullAndEmpty = true)] + public string ToolCode { get; set; } + /// <summary> + /// 鐩爣鍦板潃鐮� + /// </summary> + [PropertyValidate("鐩爣鍦板潃鐮�", NotNullAndEmpty = true)] + public string TargetAddressCode { get; set; } + } + + /// <summary> + /// 娴嬭瘯鏋舵姤搴熸ā鍨� + /// </summary> + [ModelValidate] + public class TestToolScrapModel + { + /// <summary> + /// 娴嬫灦缂栫爜 + /// </summary> + [PropertyValidate("娴嬫灦缂栫爜", NotNullAndEmpty = true)] + public string ToolCode { get; set; } + } + + /// <summary> + /// 娴嬭瘯鏋堕��搴撴ā鍨� + /// </summary> + [ModelValidate] + public class TestToolBackModel + { + /// <summary> + /// 婧愪綅缃� + /// </summary> + [PropertyValidate("婧愪綅缃�", NotNullAndEmpty = true)] + public string SourceAddressCode { get; set; } + + /// <summary> + /// 娴嬭瘯鏋剁紪鐮� + /// </summary> + [PropertyValidate("娴嬭瘯鏋剁紪鐮�", NotNullAndEmpty = true)] + public string TestToolCode { get; set; } + } +} diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Stock/StockOutboundOrderDTO.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Stock/StockOutboundOrderDTO.cs" new file mode 100644 index 0000000..e3ef4c8 --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Stock/StockOutboundOrderDTO.cs" @@ -0,0 +1,52 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace WIDESEA_DTO.Stock +{ + public class StockOutboundOrderDTO + { + /// <summary> + /// 鍗曟嵁缂栫爜 + /// </summary> + public string OrderNo { get; set; } + /// <summary> + /// 鎵樼洏鍙� + /// </summary> + public string PalletCode { get; set; } + /// <summary> + /// 鐗╂枡缂栫爜 + /// </summary> + public string MaterielCode { get; set; } + /// <summary> + /// 鐗╂枡鍚嶇О + /// </summary> + public string MaterielName { get; set; } + /// <summary> + /// 鎵规鍙� + /// </summary> + public string BatchNo { get; set; } + /// <summary> + /// 搴忓垪鍙� + /// </summary> + public string SerialNumber { get; set; } + /// <summary> + /// 搴撳瓨鏁伴噺 + /// </summary> + public float StockQuantity { get; set; } + /// <summary> + /// 鍑哄簱鏁伴噺 + /// </summary> + public float OutboundQuantity { get; set; } + /// <summary> + /// 宸ュ崟鎬绘暟 + /// </summary> + public float OrderQuantity { get; set; } + /// <summary> + /// 宸插嚭鏁伴噺 + /// </summary> + public float OverOutQuantity { get; set; } + } +} diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IStockService/IStockInfoService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IStockService/IStockInfoService.cs" index 8ed19f0..0851e31 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IStockService/IStockInfoService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IStockService/IStockInfoService.cs" @@ -3,6 +3,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; +using WIDESEA_Core; using WIDESEA_Core.BaseServices; using WIDESEA_DTO.Stock; using WIDESEA_IStockRepository; @@ -19,5 +20,6 @@ List<Dt_StockInfo> GetOutboundStocks(List<Dt_StockInfo> stockInfos, string materielCode, float needQuantity, out float residueQuantity); List<Dt_StockInfo> GetUseableStocks(string materielCode, string batchNo, int warehoseId); + StockOutboundOrderDTO GetStockOutboundOrder(SaveModel saveModel); } } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs" index ef679ce..d803621 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs" @@ -25,6 +25,8 @@ using WIDESEA_Core; using WIDESEA_Core.BaseServices; using WIDESEA_Core.Enums; +using WIDESEA_DTO; +using WIDESEA_DTO.ERP; using WIDESEA_DTO.Stock; using WIDESEA_ITaskInfoRepository; using WIDESEA_Model.Models; @@ -38,5 +40,11 @@ WebResponseContent RequestInboundTask(string palletCode, string stationCode); WebResponseContent InboundTaskCompleted(int taskNum); + /// <summary> + /// 娴嬭瘯鏋跺嚭浠� + /// </summary> + /// <param name="model"></param> + /// <returns></returns> + MesResponseContent TestToolOut(TestToolOutModel model); } } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockInfoService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockInfoService.cs" index 5c4209b..de66c45 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockInfoService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockInfoService.cs" @@ -1,4 +1,5 @@ 锘縰sing AutoMapper; +using MailKit.Search; using OfficeOpenXml.FormulaParsing.Excel.Functions.RefAndLookup; using SqlSugar; using System; @@ -70,7 +71,54 @@ } } + public StockOutboundOrderDTO GetStockOutboundOrder(SaveModel saveModel) + { + try + { + var palletCode = saveModel.MainData["barcode"].ToString(); + Dt_StockInfo stockInfo = BaseDal.Db.Queryable<Dt_StockInfo>().Where(x => x.PalletCode == palletCode).Includes(x => x.Details).First(); + if (stockInfo == null) + { + throw new Exception($"鏈壘鍒板簱瀛樹俊鎭�"); + } + Dt_StockInfoDetail stockInfoDetail = stockInfo.Details.FirstOrDefault(); + if (stockInfoDetail == null) + { + throw new Exception($"鏈壘鍒板簱瀛樿鎯�"); + } + BaseDal.QueryTabs<Dt_OutboundOrder, Dt_OutboundOrderDetail, StockOutboundOrderDTO>((a, b) => a.Id == b.OrderId, (a, b) => new StockOutboundOrderDTO + { + OrderNo = a.OrderNo, + MaterielCode = b.MaterielCode, + MaterielName = b.MaterielName, + PalletCode = stockInfo.PalletCode, + BatchNo = b.BatchNo, + OrderQuantity = b.OrderQuantity, + OverOutQuantity = b.OverOutQuantity, + OutboundQuantity = stockInfoDetail.OutboundQuantity, + SerialNumber = stockInfoDetail.SerialNumber, + StockQuantity = stockInfoDetail.StockQuantity, + }, a => true, b => b.BatchNo == stockInfoDetail.BatchNo && b.MaterielCode == stockInfoDetail.MaterielCode, x => true).Select(x => new StockOutboundOrderDTO + { + OrderNo = x.OrderNo, + MaterielCode = x.MaterielCode, + MaterielName = x.MaterielName, + PalletCode = x.PalletCode, + BatchNo = x.BatchNo, + OrderQuantity = x.OrderQuantity, + OverOutQuantity = x.OverOutQuantity, + OutboundQuantity = x.OutboundQuantity, + SerialNumber = x.SerialNumber, + StockQuantity = x.StockQuantity, + }).ToList(); + return new StockOutboundOrderDTO(); + } + catch (Exception ex) + { + return null; + } + } public List<Dt_StockInfo> GetOutboundStocks(List<Dt_StockInfo> stockInfos, string materielCode, float needQuantity, out float residueQuantity) { List<Dt_StockInfo> outStocks = new List<Dt_StockInfo>(); diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesTaskService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesTaskService.cs" new file mode 100644 index 0000000..4d5a5fd --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesTaskService.cs" @@ -0,0 +1,26 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using WIDESEA_Core.BaseServices; +using WIDESEA_DTO; +using WIDESEA_ITaskInfoRepository; +using WIDESEA_ITaskInfoService; +using WIDESEA_Model.Models; + +namespace WIDESEA_TaskInfoService +{ + public partial class TaskService : ServiceBase<Dt_Task, ITaskRepository>, ITaskService + { + /// <summary> + /// 娴嬭瘯鏋跺嚭浠� + /// </summary> + /// <param name="model"></param> + /// <returns></returns> + public MesResponseContent TestToolOut(TestToolOutModel model) + { + return new MesResponseContent(); + } + } +} diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/MES/MesController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/MES/MesController.cs" new file mode 100644 index 0000000..2ba94bd --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/MES/MesController.cs" @@ -0,0 +1,48 @@ +锘縰sing Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using WIDESEA_Core.Attributes; +using WIDESEA_Core; +using WIDESEA_DTO; +using WIDESEA_IBasicService; +using WIDESEA_IInboundRepository; +using WIDESEA_IInboundService; +using WIDESEA_IOutboundService; +using WIDESEA_ITaskInfoService; +using WIDESEA_TaskInfoService; +using WIDESEA_DTO.ERP; + +namespace WIDESEA_WMSServer.Controllers.MES +{ + [Route("api/Mes")] + [ApiController] + public class MesController : ControllerBase + { + private readonly IPurchaseOrderRepository _purchaseOrderRepository; + private readonly IPurchaseOrderService _purchaseOrderService; + private readonly ISupplierInfoService _supplierInfoService; + private readonly IMaterielInfoService _materielInfoService; + private readonly IOutboundOrderService _outboundOrderService; + private readonly ITaskService _taskService; + + public MesController(IPurchaseOrderRepository purchaseOrderRepository, IPurchaseOrderService purchaseOrderService, ISupplierInfoService supplierInfoService, IMaterielInfoService materielInfoService, IOutboundOrderService outboundOrderService,ITaskService taskService) + { + _purchaseOrderRepository = purchaseOrderRepository; + _purchaseOrderService = purchaseOrderService; + _supplierInfoService = supplierInfoService; + _materielInfoService = materielInfoService; + _outboundOrderService = outboundOrderService; + _taskService = taskService; + } + + /// <summary> + /// 鎺ユ敹MES娴嬭瘯鏋跺嚭搴� + /// </summary> + /// <param name="model"></param> + /// <returns></returns> + [HttpPost, Route("TestToolOut"), AllowAnonymous, MethodParamsValidate] + public MesResponseContent TestToolOut([FromBody] Root<TestToolOutModel> model) + { + return _taskService.TestToolOut(model.Content); + } + } +} diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/StockInfoController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/StockInfoController.cs" index 49837c9..0626847 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/StockInfoController.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/StockInfoController.cs" @@ -1,6 +1,7 @@ 锘縰sing Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; +using WIDESEA_Core; using WIDESEA_Core.BaseController; using WIDESEA_DTO.Stock; using WIDESEA_IBasicRepository; @@ -23,5 +24,16 @@ { return Service.GetStockSelectViews(orderId, materielCode); } + + /// <summary> + /// 鎷i�� + /// </summary> + /// <param name="saveModel"></param> + /// <returns></returns> + [HttpPost, HttpGet, Route("GetStockOutboundOrder")] + public StockOutboundOrderDTO GetStockOutboundOrder([FromBody] SaveModel saveModel) + { + return Service.GetStockOutboundOrder(saveModel); + } } } -- Gitblit v1.9.3