From d8db1698c125618c1b5f62b009204ddc5d4eed5a Mon Sep 17 00:00:00 2001 From: wangxinhui <wangxinhui@hnkhzn.com> Date: 星期三, 19 三月 2025 20:34:08 +0800 Subject: [PATCH] 成品代码更新.... --- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs | 121 ++++++++++++++++++++++++++++++++++++++- 1 files changed, 116 insertions(+), 5 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs" index 3e6d678..80bd640 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs" @@ -50,6 +50,7 @@ using WIDESEA_ITaskInfoRepository; using WIDESEA_ITaskInfoService; using WIDESEA_Model.Models; +using WIDESEA_OutboundRepository; using WIDESEA_TaskInfoRepository; namespace WIDESEA_TaskInfoService @@ -69,7 +70,8 @@ private readonly IInboundRepository _inboundRepository; private readonly IInboundOrderService _inboundOrderService; private readonly IPalletTypeInfoRepository _palletTypeInfoRepository; - + private readonly IOutProStockInfoRepository _outProStockInfoRepository; + private readonly IOutboundRepository _outboundRepository; public ITaskRepository Repository => BaseDal; private Dictionary<string, OrderByType> _taskOrderBy = new() @@ -82,7 +84,7 @@ public List<int> TaskOutboundTypes => typeof(TaskTypeEnum).GetEnumIndexList(); - public TaskService(ITaskRepository BaseDal, IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IStockRepository stockRepository, IBasicService basicService, IRecordService recordService, IOutboundService outboundService, IStockService stockService, IBasicRepository basicRepository, IApiInfoRepository apiInfoRepository, IInvokeERPService invokeERPService, IInboundRepository inboundRepository, IInboundOrderService inboundOrderService, IPalletTypeInfoRepository palletTypeInfoRepository) : base(BaseDal) + public TaskService(ITaskRepository BaseDal, IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IStockRepository stockRepository, IBasicService basicService, IRecordService recordService, IOutboundService outboundService, IStockService stockService, IBasicRepository basicRepository, IApiInfoRepository apiInfoRepository, IInvokeERPService invokeERPService, IInboundRepository inboundRepository, IInboundOrderService inboundOrderService, IPalletTypeInfoRepository palletTypeInfoRepository, IOutProStockInfoRepository outProStockInfoRepository, IOutboundRepository outboundRepository) : base(BaseDal) { _mapper = mapper; _unitOfWorkManage = unitOfWorkManage; @@ -97,6 +99,8 @@ _inboundRepository = inboundRepository; _inboundOrderService = inboundOrderService; _palletTypeInfoRepository = palletTypeInfoRepository; + _outProStockInfoRepository = outProStockInfoRepository; + _outboundRepository = outboundRepository; } /// <summary> @@ -403,7 +407,7 @@ } } /// <summary> - /// 鎴愬搧浠撲换鍔″畬鎴� + /// 鎴愬搧浠撳叆搴撲换鍔″畬鎴� /// </summary> public WebResponseContent InProductCompleted(Dt_Task task) { @@ -480,7 +484,12 @@ { return WebResponseContent.Instance.Error($"鏈壘鍒颁换鍔′俊鎭�"); } - + Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseId == task.WarehouseId); + //鎴愬搧鍑哄簱浠诲姟瀹屾垚 + if (warehouse.WarehouseCode==WarehouseEnum.HA71.ToString()) + { + return OutProCompleted(task); + } Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.GetStockInfo(task.PalletCode); Dt_LocationInfo locationInfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.SourceAddress); @@ -492,7 +501,6 @@ { return WebResponseContent.Instance.Error($"鏈壘鍒拌揣浣嶄俊鎭�"); } - Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseId == task.WarehouseId); List<Dt_OutStockLockInfo> outStockLockInfos = _outboundService.OutboundStockLockInfoService.Repository.QueryData(x => x.TaskNum == taskNum); List<Dt_OutboundOrderDetail> outboundOrderDetails = new List<Dt_OutboundOrderDetail>(); List<Dt_MesOutboundOrder> mesOutboundOrders = new List<Dt_MesOutboundOrder>(); @@ -611,6 +619,109 @@ return WebResponseContent.Instance.Error(ex.Message); } } + //鎴愬搧鍑哄簱浠诲姟瀹屾垚 + public WebResponseContent OutProCompleted(Dt_Task task) + { + WebResponseContent content = new WebResponseContent(); + try + { + //鑾峰彇璐т綅 + Dt_LocationInfo locationInfo = _basicRepository.LocationInfoRepository.QueryFirst(x => x.LocationCode == task.SourceAddress); + if (locationInfo==null) + { + return content.Error("鏈壘鍒拌揣浣嶄俊鎭�"); + } + //鏍规嵁浠诲姟鑾峰彇鎴愬搧鍑哄簱璇︽儏浠诲姟鍙婄墿鏂欎俊鎭� + Dt_OutProStockInfo outProStockInfo = _outProStockInfoRepository.QueryFirst(x=>x.TaskNum==task.TaskNum); + if (outProStockInfo == null) + { + return content.Error("鏈壘鍒版垚鍝佸嚭搴撹鎯�"); + } + //鑾峰彇鎴愬搧鍑哄簱璁㈠崟 + Dt_ProOutOrder proOutOrder = _outboundService.ProOutOrderService.Repository.Db.Queryable<Dt_ProOutOrder>().Where(x => x.ProOutOrderNo == outProStockInfo.OrderNo).Includes(x => x.Details).First(); + if (proOutOrder==null) + { + return content.Error("鏈壘鍒版垚鍝佸嚭搴撹鍗�"); + } + //鑾峰彇鎴愬搧搴撳瓨 + Dt_ProStockInfo proStockInfo = _stockRepository.ProStockInfoRepository.Db.Queryable<Dt_ProStockInfo>().Where(x=>x.PalletCode==task.PalletCode).Includes(x=>x.proStockInfoDetails).First(); + if (proStockInfo==null) + { + return content.Error("鏈壘鍒版垚鍝佸簱瀛樹俊鎭�"); + } + List<Dt_ProStockInfoDetail> proStockInfoDetails = proStockInfo.proStockInfoDetails; + if (proStockInfoDetails.Count<=0) + { + return content.Error("鎴愬搧搴撳瓨鏄庣粏"); + } + proStockInfoDetails.ForEach(x => + { + x.OutboundQuantity = 0; + x.ProOutDetailStatus = StockStatusEmun.鍑哄簱瀹屾垚.ObjToInt(); + }); + //澶勭悊搴撳瓨鏁版嵁 + //List<Dt_ProStockInfoDetail>? deleteStockDetails = null; + //List<Dt_ProStockInfoDetail>? updateStockDetails = null; + //(List<Dt_ProStockInfoDetail>?, List<Dt_ProStockInfoDetail>?) result = _stockService.ProStockInfoService.HandleOutProStock(proStockInfo); + //if (result.Item1!=null && result.Item1.Count>0) + //{ + // deleteStockDetails.AddRange(result.Item1); + //} + //if (result.Item1 != null && result.Item1.Count > 0) + //{ + // updateStockDetails.AddRange(updateStockDetails); + //} + //鑾峰彇鎴愬搧鍑哄簱鍗曟槑缁� + Dt_ProOutOrderDetail? proOutOrderDetail = proOutOrder.Details.FirstOrDefault(x=>x.Id== outProStockInfo.OrderDetailId); + if (proOutOrderDetail==null) + { + return content.Error("鏈壘鍒板搴斾换鍔℃垚鍝佽鍗曟槑缁�"); + } + //if (deleteStockDetails?.Sum(x=>x.StockPcsQty)== proStockInfo.proStockInfoDetails.Sum(x=>x.StockPcsQty)) + //{ + proStockInfo.StockStatus = StockStatusEmun.鍑哄簱瀹屾垚.ObjToInt(); + proStockInfo.LocationCode = "鍑鸿嚦鎴愬搧寰呭彂璐у尯"; + //} + task.TaskStatus = TaskStatusEnum.Finish.ObjToInt(); + outProStockInfo.Status = OutLockStockStatusEnum.鍑哄簱瀹屾垚.ObjToInt(); + _unitOfWorkManage.BeginTran(); + //璐т綅鍙樺姩璁板綍 + int beforeStatus = locationInfo.LocationStatus; + locationInfo.LocationStatus = LocationStatusEnum.Free.ObjToInt(); + _basicService.LocationInfoService.UpdateLocationStatus(locationInfo, proStockInfo.PalletType, LocationStatusEnum.Free, proStockInfo.WarehouseId); + _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, (LocationStatusEnum)beforeStatus, LocationStatusEnum.Free, LocationChangeType.OutboundCompleted, proOutOrder?.ProOutOrderNo ?? "", task.TaskNum); + if (proOutOrder.ProOrderStatus == OutOrderStatusEnum.鏈紑濮�.ObjToInt()) + { + proOutOrder.ProOrderStatus = OutOrderStatusEnum.鍑哄簱涓�.ObjToInt(); + _outboundService.ProOutOrderService.UpdateData(proOutOrder); + } + //if (deleteStockDetails!=null && deleteStockDetails.Count>0) + //{ + // _stockRepository.ProStockInfoDetailRepository.DeleteAndMoveIntoHty(deleteStockDetails, OperateTypeEnum.鑷姩瀹屾垚); + //} + //if (updateStockDetails!=null && updateStockDetails.Count>0) + //{ + _stockRepository.ProStockInfoRepository.UpdateData(proStockInfo); + _stockRepository.ProStockInfoDetailRepository.UpdateData(proStockInfoDetails); + _outProStockInfoRepository.UpdateData(outProStockInfo); + //} + //else + //{ + //_stockRepository.ProStockInfoRepository.DeleteAndMoveIntoHty(proStockInfo, OperateTypeEnum.鑷姩瀹屾垚); + //} + BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateTypeEnum.鑷姩瀹屾垚 : OperateTypeEnum.浜哄伐瀹屾垚); + _unitOfWorkManage.CommitTran(); + //MES鎴愬搧鍑哄簱鍚屾 + ShipmentOrderSync(MesOutSync(outProStockInfo, proOutOrderDetail)); + content.OK(); + } + catch (Exception ex) + { + _unitOfWorkManage.RollbackTran(); + content.Error(ex.Message); + } + return content; + } } } -- Gitblit v1.9.3