From 33861e7fbf9cc4af3088f715ce7607a681f9c181 Mon Sep 17 00:00:00 2001 From: wangxinhui <wangxinhui@hnkhzn.com> Date: 星期三, 05 三月 2025 16:58:12 +0800 Subject: [PATCH] 成品代码,板材巷道高度增加 --- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesTaskService.cs | 217 +++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 207 insertions(+), 10 deletions(-) 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" index b2875ad..5c9cf50 100644 --- "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" @@ -24,10 +24,8 @@ using WIDESEA_ITaskInfoService; using WIDESEA_Model.Models; using WIDESEA_Common.OrderEnum; -using WIDESEA_Model.Models.Outbound; using System.Diagnostics.Metrics; using System.Reflection.Metadata; -using WIDESEA_Model.Models.Inbound; using WIDESEA_DTO.Task; namespace WIDESEA_TaskInfoService @@ -293,7 +291,46 @@ } return content; } - + /// <summary> + /// WMS鍚屾鎴愬搧鍑哄簱鑷矼ES + /// </summary> + /// <param name="model"></param> + /// <returns></returns> + public WebResponseContent ShipmentOrderSync(MesShipmentOrderSync model) + { + WebResponseContent content = new WebResponseContent(); + try + { + Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.WMS_MES_ShipmentOrderSync.ToString()); + MESRoot<MesShipmentOrderSync> root = new MESRoot<MesShipmentOrderSync>() + { + From = "WMS", + DateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), + Content = model + }; + JsonSerializerSettings settings = new JsonSerializerSettings + { + ContractResolver = new CamelCasePropertyNamesContractResolver() + }; + string request = JsonConvert.SerializeObject(root, settings); + string response = HttpMesHelper.Post(apiInfo.ApiAddress, request); + MesResponseContent mesResponseContent = response.DeserializeObject<MesResponseContent>(); + //璋冪敤鎺ュ彛 + if (mesResponseContent.BSucc == true) + { + content.OK(mesResponseContent.StrMsg); + } + else + { + content.Error(mesResponseContent.StrMsg); + } + } + catch (Exception ex) + { + content.Error(ex.Message); + } + return content; + } /// <summary> /// /// </summary> @@ -467,7 +504,7 @@ OutboundQuantity = 0, SerialNumber = stockInfoDetail_Hty?.SerialNumber ?? "0", StockQuantity = model.Quantity, - Status = StockStatusEmun.MES閫�搴�.ObjToInt(), + Status = model.Quantity <= 0.0 ? StockStatusEmun.MES绌烘墭閫�搴�.ObjToInt() : StockStatusEmun.MES閫�搴�.ObjToInt(), Unit = model.Unit }; Dt_StockInfo stockInfo = new Dt_StockInfo() @@ -475,8 +512,9 @@ PalletCode = model.CarrierCode, PalletType = palletTypeInfo.PalletType, WarehouseId = warehouse.WarehouseId, - StockStatus = StockStatusEmun.MES閫�搴�.ObjToInt(), - Details = new List<Dt_StockInfoDetail> { stockInfoDetail } + StockStatus = stockInfoDetail.StockQuantity <= 0.0 ? StockStatusEmun.MES绌烘墭閫�搴�.ObjToInt() : StockStatusEmun.MES閫�搴�.ObjToInt(), + Details = new List<Dt_StockInfoDetail> { stockInfoDetail }, + Remark = stockInfoDetail.StockQuantity <= 0.0 ? StockStatusEmun.MES绌烘墭閫�搴�.ToString() : StockStatusEmun.MES閫�搴�.ToString() }; //Dt_Task task = new Dt_Task() //{ @@ -523,7 +561,7 @@ { return MesResponseContent.Instance.Error("浠撳簱淇℃伅鏈厤缃�"); } - Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.QueryFirst(x => x.PalletCode == item.CarrierCode); + Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.QueryFirst(x => x.PalletCode == item.CarrierCode || x.WarehouseId == warehouse.WarehouseId); if (stockInfo == null) { return MesResponseContent.Instance.Error("鏈壘鍒版杞藉叿缂栧彿搴撳瓨"); @@ -884,8 +922,6 @@ } } - - /// <summary> /// PP搴撳瓨鏌ヨ /// </summary> @@ -896,6 +932,7 @@ MesResponseContent content = new MesResponseContent(); try { + Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == WarehouseEnum.HA58.ToString()); List<Dt_StockInfo> stockInfos = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.WarehouseId == warehouse.WarehouseId && @@ -911,7 +948,6 @@ content.BSucc = true; content.StrCode = "0000"; content.StrMsg = "鎵ц鎴愬姛"; - content.DataTime = DateTime.Now; content.MaterialCode = stock.MaterielCode; content.Quantity = stock.StockQuantity; content.Unit = stock.Unit; @@ -928,6 +964,167 @@ return MesResponseContent.Instance.Error(ex.Message); } } + /// <summary> + /// MES鎴愬搧鍏ュ簱鍗曟帴鏀� + /// </summary> + /// <returns></returns> + public MesResponseContent BagInfoSync(MesBagInfoModel bagInfoModel) + { + MesResponseContent content = new MesResponseContent(); + try + { + Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x=>x.WarehouseCode==bagInfoModel.WarehouseCode); + if (warehouse==null) + { + return content.Error("鏈壘鍒颁粨搴撲俊鎭�"); + } + //鍒ゆ柇鏄惁MES鍐呭寘淇℃伅鏄惁閲嶅 + List<Dt_MesProInOrderDetail> mesProInOrderDetails = new List<Dt_MesProInOrderDetail>(); + foreach (var item in bagInfoModel.BagDetails) + { + foreach (var child in item.BagItems) + { + Dt_MesProInOrderDetail mesProInOrderDetail=new Dt_MesProInOrderDetail() + { + BagNo=item.BagNo, + ProductCode=item.ProductCode, + ProductVersion=item.ProductVersion, + SETQty=child.SETQty, + OKPCSQTY=child.OKPCSQTY, + DateCode=item.DateCode, + XQty=child.XQty, + XSite=child.XSite, + Weight=item.Weight, + PackingDate=item.PackingDate, + LotNumber=child.LotNumber, + ERPOrder=child.ERPOrder, + SaleOrder=child.SaleOrder, + MoNumber=child.MoNumber, + }; + mesProInOrderDetails.Add(mesProInOrderDetail); + } + } + List<Dt_ProStockInfoDetail> proStockInfoDetails = new List<Dt_ProStockInfoDetail>(); + foreach (var item in mesProInOrderDetails) + { + proStockInfoDetails.Add(_mapper.Map<Dt_ProStockInfoDetail>(item)); + } + Dt_MesProInOrder mesProInOrder = new Dt_MesProInOrder() + { + WarehouseId = warehouse.WarehouseId, + BatchNo = bagInfoModel.BatchNo, + WorkCenter=bagInfoModel.WorkCenter, + MesProStatus = InOrderStatusEnum.鏈紑濮�.ObjToInt(), + UnPackStock=bagInfoModel.UnPackStock, + Details= mesProInOrderDetails + }; + Dt_ProStockInfo proStockInfo = new Dt_ProStockInfo() + { + PalletCode = bagInfoModel.BatchNo, + PalletType = 1, + WarehouseId = warehouse.WarehouseId, + StockStatus = StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt(), + proStockInfoDetails= proStockInfoDetails + }; + _unitOfWorkManage.BeginTran(); + Db.InsertNav(mesProInOrder).Include(x=>x.Details).ExecuteCommand(); + Db.InsertNav(proStockInfo).Include(x => x.proStockInfoDetails).ExecuteCommand(); + _unitOfWorkManage.CommitTran(); + return content.OK("鎺ユ敹鎴愬姛"); + } + catch (Exception ex) + { + _unitOfWorkManage.RollbackTran(); + content.Error(ex.Message); + } + return content; + } + public MesResponseContent BoxStockin(MesBoxInfoModel boxInfoModel) + { + MesResponseContent content = new MesResponseContent(); + try + { + Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x=>x.WarehouseCode==WarehouseEnum.HA101.ToString()); + //鑾峰彇MES鍐呭寘淇℃伅 + List<Dt_MesProInOrderDetail> mesProInOrderDetails = new List<Dt_MesProInOrderDetail>(); + foreach (var item in boxInfoModel.Bags) + { + foreach (var child in item.BagItems) + { + Dt_MesProInOrderDetail mesProInOrderDetail = new Dt_MesProInOrderDetail() + { + BagNo = item.BagNo, + ProductCode = item.ProductCode, + ProductVersion = item.ProductVersion, + SETQty = child.SETQty, + OKPCSQTY = child.OKPCSQTY, + DateCode = item.DateCode, + XQty = child.XQty, + XSite = child.XSite, + Weight = item.Weight, + PackingDate = item.PackingDate, + LotNumber = child.LotNumber, + ERPOrder = child.ERPOrder, + SaleOrder = child.SaleOrder, + MoNumber = child.MoNumber, + }; + mesProInOrderDetails.Add(mesProInOrderDetail); + } + } + List<Dt_ProStockInfoDetail> proStockInfoDetails = new List<Dt_ProStockInfoDetail>(); + foreach (var item in mesProInOrderDetails) + { + proStockInfoDetails.Add(_mapper.Map<Dt_ProStockInfoDetail>(item)); + } + Dt_ProStockInfo proStockInfo = new Dt_ProStockInfo() + { + PalletCode = boxInfoModel.BoxNo, + PalletType = 0, + WarehouseId = warehouse.WarehouseId, + ShipmentOrder= boxInfoModel.ShipmentOrder, + StockStatus = StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt(), + proStockInfoDetails = proStockInfoDetails + }; + _unitOfWorkManage.BeginTran(); + Db.InsertNav(proStockInfo).Include(x => x.proStockInfoDetails).ExecuteCommand(); + _unitOfWorkManage.CommitTran(); + return content.OK("澶栧寘鎺ユ敹鎴愬姛"); + } + catch (Exception ex) + { + content.Error(ex.Message); + } + return content; + } + /// <summary> + /// 鎴愬搧杩斿伐鎻愬簱 + /// </summary> + /// <param name="model"></param> + /// <returns></returns> + public MesResponseContent RworkTask(RworkTaskModel model) + { + try + { + Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == WarehouseEnum.HA72.ToString()); + //鑾峰彇搴撳瓨璁板綍 + List<Dt_StockInfo> stockInfos = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => + x.WarehouseId == warehouse.WarehouseId && + x.StockStatus == (int)StockStatusEmun.鍏ュ簱瀹屾垚).Includes(x => x.Details).ToList(); + Dt_StockInfo? stockInfo = stockInfos.FirstOrDefault(x => x.Details.Any(x => x.BatchNo == model.ProductVersion)); + if (stockInfo == null) + { + return MesResponseContent.Instance.Error($"灏炬暟浠�:{model.ProductVersion}鏃犲彲鐢ㄥ簱瀛�"); + } + Dt_Task exsit2 = Repository.QueryFirst(x => x.PalletCode == stockInfo.PalletCode); + + } + catch (Exception ex) + { + + throw; + } + return MesResponseContent.Instance.OK(); + } } } -- Gitblit v1.9.3