From 1caea0fdc7ed1788d854a2aba8853984b4494e01 Mon Sep 17 00:00:00 2001 From: wankeda <Administrator@DESKTOP-HAU3ST3> Date: 星期二, 24 六月 2025 09:56:28 +0800 Subject: [PATCH] 代码提交 --- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs | 707 +++++++++++++--------------------------------------------- 1 files changed, 164 insertions(+), 543 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 9a8155e..48b89a1 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" @@ -84,7 +84,117 @@ _taskHtyService = taskHtyService; _locationInfoService = locationInfoService; } + public WebResponseContent UpdateTaskStatus(int taskNum) + { + WebResponseContent content = new WebResponseContent(); + try + { + Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum); + if (task == null) + { + return WebResponseContent.Instance.Error("鏈壘鍒颁换鍔′俊鎭�"); + } + if (task.TaskType == TaskTypeEnum.Outbound.ObjToInt()) + { + task.TaskStatus = OutTaskStatusEnum.SC_OutExecuting.ObjToInt(); + } + else if (task.TaskType == TaskTypeEnum.Inbound.ObjToInt()) + { + task.TaskStatus = InTaskStatusEnum.SC_InExecuting.ObjToInt(); + } + //else if (task.TaskType == TaskTypeEnum.Relocation.ObjToInt()) + //{ + // task.TaskStatus = InTaskStatusEnum.RelocationExecuting.ObjToInt(); + //} + else + { + throw new Exception($"浠诲姟绫诲瀷閿欒,鏈壘鍒拌浠诲姟绫诲瀷,浠诲姟鍙�:銆恵task.TaskNum}銆�,浠诲姟绫诲瀷:銆恵task.TaskType}銆�"); + } + _unitOfWorkManage.BeginTran(); + task.Dispatchertime = DateTime.Now; + task.ModifyDate = DateTime.Now; + task.Modifier = App.User.UserId > 0 ? App.User.UserName : "System"; + BaseDal.UpdateData(task); + _unitOfWorkManage.CommitTran(); + return content = WebResponseContent.Instance.OK(); + } + catch (Exception ex) + { + _unitOfWorkManage.RollbackTran(); + return WebResponseContent.Instance.Error(ex.Message); + } + } + /// <summary> + /// 绌烘墭鐩樺叆搴撳畬鎴愬鐞� + /// </summary> + /// <param name="task">浠诲姟瀹炰綋瀵硅薄</param> + /// <returns>杩斿洖澶勭悊缁撴灉</returns> + public WebResponseContent PalletInboundTaskCompleted(Dt_Task task) + { + try + { + _unitOfWorkManage.BeginTran(); + + Dt_StockInfo stockInfo = new Dt_StockInfo() + { + PalletCode = task.PalletCode, + LocationCode = task.TargetAddress, + StockStatus = StockStatusEmun.宸插叆搴�.ObjToInt(), + Creater = App.User.UserId > 0 ? App.User.UserName : "System", + CreateDate = DateTime.Now, + }; + Dt_LocationInfo locationInfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.TargetAddress); + + CheckCompleted(stockInfo, locationInfo); + + _stockService.StockInfoService.Repository.AddData(stockInfo); + + int beforeStatus = locationInfo.LocationStatus; + locationInfo.LocationStatus = StatusEnum.Pallet.ObjToInt(); + _basicService.LocationInfoService.UpdateLocationFree(locationInfo, task.TaskNum, StockChangeType.Inbound.ObjToInt(), false); + _basicService.LocationInfoService.Repository.UpdateData(locationInfo); + + task.TaskStatus = InTaskStatusEnum.InFinish.ObjToInt(); + BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateType.鑷姩瀹屾垚 : OperateType.浜哄伐瀹屾垚); + + _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, beforeStatus, StockChangeType.Inbound.ObjToInt(), "", task.TaskNum); + + _unitOfWorkManage.CommitTran(); + return WebResponseContent.Instance.OK(); + } + catch (Exception ex) + { + _unitOfWorkManage.RollbackTran(); + return WebResponseContent.Instance.Error(ex.Message); + } + } + + /// <summary> + /// 楠岃瘉鏁版嵁 + /// </summary> + /// <param name="stockInfo"></param> + /// <param name="locationInfo"></param> + /// <returns></returns> + private (bool, string) CheckCompleted(Dt_StockInfo stockInfo, Dt_LocationInfo locationInfo, bool isCheckStockDetail = true) + { + if (stockInfo == null) + { + return (false, "鏈壘鍒扮粍鐩樹俊鎭�"); + } + + if (locationInfo == null) + { + return (false, "鏈壘鍒拌揣浣嶄俊鎭�"); + } + + if (isCheckStockDetail && (stockInfo.Details == null || stockInfo.Details.Count == 0)) + { + return (false, "鏈壘鍒扮粍鐩樻槑缁嗕俊鎭�"); + } + + return (true, "鎴愬姛"); + } /// <summary> /// 鎵嬪姩浠诲姟瀹屾垚 /// </summary> @@ -141,47 +251,34 @@ WriteLog.GetLog("浠诲姟瀹屾垚").Write($"鎿嶄綔浜猴細{(App.User.UserId > 0 ? App.User.UserName : "System")}{Environment.NewLine}浠诲姟鍙凤細{taskNum}{Environment.NewLine}{JsonConvert.SerializeObject(content)}", "浠诲姟瀹屾垚"); } } - public WebResponseContent TaskCancel(int taskNum) + public WebResponseContent TaskCancel(string taskNum) { WebResponseContent content = new WebResponseContent(); try { - Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum); - if (task == null) + var tasknums = taskNum.Split(','); + foreach (var item in tasknums) { - return content = WebResponseContent.Instance.Error("鏈壘鍒颁换鍔′俊鎭�"); + Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == item.ObjToInt() && (x.TaskStatus == AGVTaskStatusEnum.AGV_Wait.ObjToInt() || x.TaskStatus == AGVTaskStatusEnum.AGV_Query.ObjToInt())); + if (task == null) + { + return content = WebResponseContent.Instance.Error("鏈壘鍒颁换鍔′俊鎭垨浠诲姟鐘舵�佷笉鍖归厤"); + } + //_unitOfWorkManage.BeginTran(); + int TaskStatus = AGVTaskStatusEnum.AGV_ManuallyCancel.ObjToInt(); + _taskHtyService.AddTaskHty(task, TaskStatus); + Dt_CachePoint source = _basicService.CachePointService.Repository.QueryFirst(x => x.PointCode == task.SourceAddress); + Dt_CachePoint target = _basicService.CachePointService.Repository.QueryFirst(x => x.PointCode == task.TargetAddress); + var toaddress = JsonConvert.SerializeObject(target); + if (target != null && source != null) + { + source.PointStatus = LocationStatusEnum.Free.ObjToInt(); + _basicService.CachePointService.Repository.UpdateData(source); + target.PointStatus = LocationStatusEnum.Free.ObjToInt(); + _basicService.CachePointService.Repository.UpdateData(target); + } + BaseDal.DeleteData(task); } - //_unitOfWorkManage.BeginTran(); - int TaskStatus = AGVTaskStatusEnum.AGV_ManuallyCancel.ObjToInt(); - _taskHtyService.AddTaskHty(task, TaskStatus); - //HCJFree(task, TaskStatus); - BaseDal.DeleteData(task); - #region - //MethodInfo? methodInfo = GetType().GetMethod(((TaskTypeEnum)task.TaskType) + "TaskCancel"); - //if (methodInfo != null) - //{ - // WebResponseContent? responseContent = (WebResponseContent?)methodInfo.Invoke(this, new object[] { task }); - // if (responseContent != null) - // { - // if (responseContent != null) - // { - // if (App.User.UserId > 0) - // { - // var response = HttpHelper.Post<WebResponseContent>(url + "TaskCancel?taskNum=" + task.TaskNum, "", "浠诲姟鍙栨秷"); - // if (!response.Status) - // { - // _unitOfWorkManage.RollbackTran(); - // return content = WebResponseContent.Instance.Error(response.Message); - // } - // _unitOfWorkManage.CommitTran(); - // return content = responseContent; - // } - // _unitOfWorkManage.CommitTran(); - // return content = responseContent; - // } - // } - //} - #endregion return content = WebResponseContent.Instance.OK(); } catch (Exception ex) @@ -195,499 +292,6 @@ } } - public WebResponseContent UpdateTaskStatus(int taskNum) - { - WebResponseContent content = new WebResponseContent(); - try - { - Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum); - if (task == null) - { - return WebResponseContent.Instance.Error("鏈壘鍒颁换鍔′俊鎭�"); - } - if (task.TaskType == TaskTypeEnum.Outbound.ObjToInt() || task.TaskType == TaskTypeEnum.PalletOutbound.ObjToInt()) - { - task.TaskStatus = OutTaskStatusEnum.SC_OutExecuting.ObjToInt(); - } - else if (task.TaskType == TaskTypeEnum.Inbound.ObjToInt() || task.TaskType == TaskTypeEnum.PalletInbound.ObjToInt()) - { - task.TaskStatus = InTaskStatusEnum.SC_InExecuting.ObjToInt(); - } - else if (task.TaskType == TaskTypeEnum.Relocation.ObjToInt()) - { - task.TaskStatus = InTaskStatusEnum.RelocationExecuting.ObjToInt(); - } - else - { - throw new Exception($"浠诲姟绫诲瀷閿欒,鏈壘鍒拌浠诲姟绫诲瀷,浠诲姟鍙�:銆恵task.TaskNum}銆�,浠诲姟绫诲瀷:銆恵task.TaskType}銆�"); - } - _unitOfWorkManage.BeginTran(); - task.Dispatchertime = DateTime.Now; - task.ModifyDate = DateTime.Now; - task.Modifier = App.User.UserId > 0 ? App.User.UserName : "System"; - BaseDal.UpdateData(task); - _unitOfWorkManage.CommitTran(); - return content = WebResponseContent.Instance.OK(); - } - catch (Exception ex) - { - _unitOfWorkManage.RollbackTran(); - return WebResponseContent.Instance.Error(ex.Message); - } - } - public WebResponseContent InboundTaskCompleted(Dt_Task task) - { - try - { - _unitOfWorkManage.BeginTran(); - decimal beforeQuantity = 0; - - Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.GetStockInfo(task.PalletCode); - - Dt_LocationInfo locationInfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.TargetAddress); - - CheckCompleted(stockInfo, locationInfo); - - stockInfo.LocationCode = locationInfo.LocationCode; - stockInfo.StockStatus = StockStatusEmun.宸插叆搴�.ObjToInt(); - _stockService.StockInfoService.Repository.UpdateData(stockInfo); - - beforeQuantity = stockInfo.Details.Where(x => x.Id != 0).Sum(x => x.StockQuantity); - - int beforeStatus = locationInfo.LocationStatus; - locationInfo.LocationStatus = LocationStatusEnum.InStock.ObjToInt(); - _basicService.LocationInfoService.UpdateLocationFree(locationInfo, task.TaskNum, StockChangeType.Inbound.ObjToInt(), false); - - _basicService.LocationInfoService.Repository.UpdateData(locationInfo); - task.TaskStatus = InTaskStatusEnum.InFinish.ObjToInt(); - - BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateType.鑷姩瀹屾垚 : OperateType.浜哄伐瀹屾垚); - - _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, beforeStatus, StockChangeType.Inbound.ObjToInt(), stockInfo.Details.FirstOrDefault()?.OrderNo ?? "", task.TaskNum); - _recordService.StockQuantityChangeRecordService.AddStockChangeRecord(stockInfo, stockInfo.Details, beforeQuantity, stockInfo.Details.Sum(x => x.StockQuantity) + beforeQuantity, StockChangeType.Inbound, task.TaskNum); - _unitOfWorkManage.CommitTran(); - return WebResponseContent.Instance.OK(); - } - catch (Exception ex) - { - _unitOfWorkManage.RollbackTran(); - return WebResponseContent.Instance.Error(ex.Message); - } - - } - - /// <summary> - /// 绌烘墭鐩樺叆搴撳畬鎴愬鐞� - /// </summary> - /// <param name="task">浠诲姟瀹炰綋瀵硅薄</param> - /// <returns>杩斿洖澶勭悊缁撴灉</returns> - public WebResponseContent PalletInboundTaskCompleted(Dt_Task task) - { - try - { - _unitOfWorkManage.BeginTran(); - - Dt_StockInfo stockInfo = new Dt_StockInfo() - { - PalletCode = task.PalletCode, - LocationCode = task.TargetAddress, - StockStatus = StockStatusEmun.宸插叆搴�.ObjToInt(), - Creater = App.User.UserId > 0 ? App.User.UserName : "System", - CreateDate = DateTime.Now, - }; - Dt_LocationInfo locationInfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.TargetAddress); - - CheckCompleted(stockInfo, locationInfo); - - _stockService.StockInfoService.Repository.AddData(stockInfo); - - int beforeStatus = locationInfo.LocationStatus; - locationInfo.LocationStatus = LocationStatusEnum.Pallet.ObjToInt(); - _basicService.LocationInfoService.UpdateLocationFree(locationInfo, task.TaskNum, StockChangeType.Inbound.ObjToInt(), false); - _basicService.LocationInfoService.Repository.UpdateData(locationInfo); - - task.TaskStatus = InTaskStatusEnum.InFinish.ObjToInt(); - BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateType.鑷姩瀹屾垚 : OperateType.浜哄伐瀹屾垚); - - _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, beforeStatus, StockChangeType.Inbound.ObjToInt(), "", task.TaskNum); - - _unitOfWorkManage.CommitTran(); - return WebResponseContent.Instance.OK(); - } - catch (Exception ex) - { - _unitOfWorkManage.RollbackTran(); - return WebResponseContent.Instance.Error(ex.Message); - } - } - - /// <summary> - /// 楠岃瘉鏁版嵁 - /// </summary> - /// <param name="stockInfo"></param> - /// <param name="locationInfo"></param> - /// <returns></returns> - private (bool, string) CheckCompleted(Dt_StockInfo stockInfo, Dt_LocationInfo locationInfo, bool isCheckStockDetail = true) - { - if (stockInfo == null) - { - return (false, "鏈壘鍒扮粍鐩樹俊鎭�"); - } - - if (locationInfo == null) - { - return (false, "鏈壘鍒拌揣浣嶄俊鎭�"); - } - - if (isCheckStockDetail && (stockInfo.Details == null || stockInfo.Details.Count == 0)) - { - return (false, "鏈壘鍒扮粍鐩樻槑缁嗕俊鎭�"); - } - - return (true, "鎴愬姛"); - } - - public WebResponseContent OutboundTaskCompleted(Dt_Task task) - { - try - { - _unitOfWorkManage.BeginTran(); - decimal beforeQuantity = 0; - Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.GetStockInfo(task.PalletCode); - - Dt_LocationInfo locationInfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.SourceAddress); - - CheckCompleted(stockInfo, locationInfo); - - stockInfo.LocationCode = locationInfo.LocationCode; - stockInfo.StockStatus = StockStatusEmun.鍑哄簱瀹屾垚.ObjToInt(); - _stockService.StockInfoService.Repository.UpdateData(stockInfo); - int beforeStatus = locationInfo.LocationStatus; - if (locationInfo.Depth == 2) - { - if (DepthTask(locationInfo) == false) - { - _basicService.LocationInfoService.UpdateLocationFree(locationInfo, task.TaskNum, StockChangeType.Outbound.ObjToInt(), false); - - } - } - locationInfo.LocationStatus = LocationStatusEnum.Free.ObjToInt(); - _basicService.LocationInfoService.Repository.UpdateData(locationInfo); - - task.TaskStatus = OutTaskStatusEnum.OutFinish.ObjToInt(); - BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateType.鑷姩瀹屾垚 : OperateType.浜哄伐瀹屾垚); - _stockService.StockInfoService.Repository.DeleteAndMoveIntoHty(stockInfo, App.User.UserId == 0 ? OperateType.鑷姩瀹屾垚 : OperateType.浜哄伐瀹屾垚); - _stockService.StockInfoDetailService.Repository.DeleteAndMoveIntoHty(stockInfo.Details, App.User.UserId == 0 ? OperateType.鑷姩瀹屾垚 : OperateType.浜哄伐瀹屾垚); - - beforeQuantity = stockInfo.Details.Where(x => x.Id != 0).Sum(x => x.StockQuantity); - - _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, beforeStatus, StockChangeType.Outbound.ObjToInt(), stockInfo.Details.FirstOrDefault()?.OrderNo ?? "", task.TaskNum); - _recordService.StockQuantityChangeRecordService.AddStockChangeRecord(stockInfo, stockInfo.Details, beforeQuantity, stockInfo.Details.Sum(x => x.StockQuantity) - beforeQuantity, StockChangeType.Outbound, task.TaskNum); - - _unitOfWorkManage.CommitTran(); - return OnOutboundTaskCompleted?.Invoke(task) ?? WebResponseContent.Instance.OK(); - - } - catch (Exception ex) - { - _unitOfWorkManage.RollbackTran(); - return WebResponseContent.Instance.Error(ex.Message); - } - } - - public WebResponseContent PalletOutboundTaskCompleted(Dt_Task task) - { - try - { - _unitOfWorkManage.BeginTran(); - Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.GetStockInfo(task.PalletCode); - - Dt_LocationInfo locationInfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.SourceAddress); - - CheckCompleted(stockInfo, locationInfo); - - int beforeStatus = locationInfo.LocationStatus; - - if (locationInfo.Depth == 2) - { - if (DepthTask(locationInfo) == false) - { - _basicService.LocationInfoService.UpdateLocationFree(locationInfo, task.TaskNum, StockChangeType.Outbound.ObjToInt(), false); - } - } - locationInfo.LocationStatus = LocationStatusEnum.Free.ObjToInt(); - _basicService.LocationInfoService.Repository.UpdateData(locationInfo); - - task.TaskStatus = OutTaskStatusEnum.OutFinish.ObjToInt(); - BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateType.鑷姩瀹屾垚 : OperateType.浜哄伐瀹屾垚); - _stockService.StockInfoService.Repository.DeleteAndMoveIntoHty(stockInfo, App.User.UserId == 0 ? OperateType.鑷姩瀹屾垚 : OperateType.浜哄伐瀹屾垚); - - _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, beforeStatus, StockChangeType.Outbound.ObjToInt(), stockInfo.Details.FirstOrDefault()?.OrderNo ?? "", task.TaskNum); - - _unitOfWorkManage.CommitTran(); - return WebResponseContent.Instance.OK(); - } - catch (Exception ex) - { - _unitOfWorkManage.RollbackTran(); - return WebResponseContent.Instance.Error(ex.Message); - } - } - - public WebResponseContent RelocationTaskCompleted(Dt_Task task) - { - try - { - _unitOfWorkManage.BeginTran(); - Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.GetStockInfo(task.PalletCode); - - Dt_LocationInfo locationEnd = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.TargetAddress); - Dt_LocationInfo locationStart = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.SourceAddress); - - CheckCompleted(stockInfo, locationEnd); - - stockInfo.LocationCode = locationEnd.LocationCode; - stockInfo.StockStatus = StockStatusEmun.宸插叆搴�.ObjToInt(); - _stockService.StockInfoService.Repository.UpdateData(stockInfo); - - if (locationStart.Depth == 1) - { - if (DepthTask(locationStart) == false) - { - locationStart.LocationStatus = LocationStatusEnum.Free.ObjToInt(); - _basicService.LocationInfoService.RelocationFree(locationEnd, task.TaskNum); - _basicService.LocationInfoService.Repository.UpdateData(locationStart); - } - else - { - locationStart.LocationStatus = LocationStatusEnum.Free.ObjToInt(); - _basicService.LocationInfoService.Repository.UpdateData(locationStart); - } - } - - _basicService.LocationInfoService.RelocationFree(locationEnd, task.TaskNum); - - task.TaskStatus = InTaskStatusEnum.RelocationFinish.ObjToInt(); - BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateType.鑷姩瀹屾垚 : OperateType.浜哄伐瀹屾垚); - - _unitOfWorkManage.CommitTran(); - return WebResponseContent.Instance.OK(); - } - catch (Exception ex) - { - _unitOfWorkManage.RollbackTran(); - return WebResponseContent.Instance.Error(ex.Message); - } - } - - public WebResponseContent InboundTaskCancel(Dt_Task task) - { - try - { - _unitOfWorkManage.BeginTran(); - decimal beforeQuantity = 0; - - Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.GetStockInfo(task.PalletCode); - - Dt_LocationInfo locationInfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.TargetAddress); - - CheckCompleted(stockInfo, locationInfo); - - stockInfo.StockStatus = StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt(); - _stockService.StockInfoService.Repository.UpdateData(stockInfo); - - beforeQuantity = stockInfo.Details.Where(x => x.Id != 0).Sum(x => x.StockQuantity); - - int beforeStatus = locationInfo.LocationStatus; - locationInfo.LocationStatus = LocationStatusEnum.Free.ObjToInt(); - if (locationInfo.Depth == 2) - { - _basicService.LocationInfoService.UpdateLocationFree(locationInfo, task.TaskNum, StockChangeType.Outbound.ObjToInt(), false); - } - - _basicService.LocationInfoService.Repository.UpdateData(locationInfo); - task.TaskStatus = InTaskStatusEnum.InCancel.ObjToInt(); - - BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateType.鑷姩瀹屾垚 : OperateType.浜哄伐瀹屾垚); - - _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, beforeStatus, StockChangeType.Inbound.ObjToInt(), stockInfo.Details.FirstOrDefault()?.OrderNo ?? "", task.TaskNum); - - _unitOfWorkManage.CommitTran(); - return WebResponseContent.Instance.OK(); - } - catch (Exception ex) - { - _unitOfWorkManage.RollbackTran(); - return WebResponseContent.Instance.Error(ex.Message); - } - - } - - public WebResponseContent PalletInboundTaskCancel(Dt_Task task) - { - try - { - _unitOfWorkManage.BeginTran(); - Dt_LocationInfo locationInfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.TargetAddress); - - int beforeStatus = locationInfo.LocationStatus; - - locationInfo.LocationStatus = LocationStatusEnum.Free.ObjToInt(); - if (locationInfo.Depth == 2) - { - _basicService.LocationInfoService.UpdateLocationFree(locationInfo, task.TaskNum, StockChangeType.Outbound.ObjToInt(), false); - } - _basicService.LocationInfoService.Repository.UpdateData(locationInfo); - - task.TaskStatus = InTaskStatusEnum.InCancel.ObjToInt(); - BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateType.鑷姩瀹屾垚 : OperateType.浜哄伐瀹屾垚); - - _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, beforeStatus, StockChangeType.Inbound.ObjToInt(), "", task.TaskNum); - - _unitOfWorkManage.CommitTran(); - return WebResponseContent.Instance.OK(); - } - catch (Exception ex) - { - _unitOfWorkManage.RollbackTran(); - return WebResponseContent.Instance.Error(ex.Message); - } - } - - - public WebResponseContent OutboundTaskCancel(Dt_Task task) - { - try - { - _unitOfWorkManage.BeginTran(); - decimal beforeQuantity = 0; - Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.GetStockInfo(task.PalletCode); - Dt_StockInfoDetail stockInfoDetail = _stockService.StockInfoDetailService.Repository.QueryFirst(x => x.StockId == stockInfo.Id); - - Dt_LocationInfo locationInfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.SourceAddress); - - CheckCompleted(stockInfo, locationInfo); - - stockInfo.LocationCode = locationInfo.LocationCode; - stockInfo.StockStatus = StockStatusEmun.宸插叆搴�.ObjToInt(); - stockInfoDetail.OutboundQuantity = beforeQuantity; - - _stockService.StockInfoService.Repository.UpdateData(stockInfo); - _stockService.StockInfoDetailService.Repository.UpdateData(stockInfoDetail); - int beforeStatus = locationInfo.LocationStatus; - - if (locationInfo.Depth == 2) - { - if (DepthTask(locationInfo) == false) - { - _basicService.LocationInfoService.UpdateLocationFree(locationInfo, task.TaskNum, StockChangeType.Outbound.ObjToInt(), true); - } - } - locationInfo.LocationStatus = LocationStatusEnum.InStock.ObjToInt(); - _basicService.LocationInfoService.Repository.UpdateData(locationInfo); - - - task.TaskStatus = OutTaskStatusEnum.OutCancel.ObjToInt(); - BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateType.鑷姩瀹屾垚 : OperateType.浜哄伐瀹屾垚); - - beforeQuantity = stockInfo.Details.Where(x => x.Id != 0).Sum(x => x.StockQuantity); - - _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, beforeStatus, StockChangeType.Outbound.ObjToInt(), stockInfo.Details.FirstOrDefault()?.OrderNo ?? "", task.TaskNum); - _recordService.StockQuantityChangeRecordService.AddStockChangeRecord(stockInfo, stockInfo.Details, beforeQuantity, stockInfo.Details.Sum(x => x.StockQuantity) - beforeQuantity, StockChangeType.Outbound, task.TaskNum); - - _unitOfWorkManage.CommitTran(); - return WebResponseContent.Instance.OK(); - } - catch (Exception ex) - { - _unitOfWorkManage.RollbackTran(); - return WebResponseContent.Instance.Error(ex.Message); - } - } - - public WebResponseContent PalletOutboundTaskCancel(Dt_Task task) - { - try - { - _unitOfWorkManage.BeginTran(); - Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.GetStockInfo(task.PalletCode); - - Dt_LocationInfo locationInfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.SourceAddress); - - CheckCompleted(stockInfo, locationInfo); - - int beforeStatus = locationInfo.LocationStatus; - - if (locationInfo.Depth == 2) - { - if (DepthTask(locationInfo) == false) - { - _basicService.LocationInfoService.UpdateLocationFree(locationInfo, task.TaskNum, StockChangeType.Outbound.ObjToInt(), true); - } - } - locationInfo.LocationStatus = LocationStatusEnum.Pallet.ObjToInt(); - _basicService.LocationInfoService.Repository.UpdateData(locationInfo); - - stockInfo.StockStatus = StockStatusEmun.宸插叆搴�.ObjToInt(); - _stockService.StockInfoService.Repository.UpdateData(stockInfo); - - task.TaskStatus = OutTaskStatusEnum.OutCancel.ObjToInt(); - BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateType.鑷姩瀹屾垚 : OperateType.浜哄伐瀹屾垚); - - _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, beforeStatus, StockChangeType.Outbound.ObjToInt(), stockInfo.Details.FirstOrDefault()?.OrderNo ?? "", task.TaskNum); - - _unitOfWorkManage.CommitTran(); - return WebResponseContent.Instance.OK(); - } - catch (Exception ex) - { - _unitOfWorkManage.RollbackTran(); - return WebResponseContent.Instance.Error(ex.Message); - } - } - - public WebResponseContent RelocationTaskCancel(Dt_Task task) - { - try - { - _unitOfWorkManage.BeginTran(); - Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.GetStockInfo(task.PalletCode); - - Dt_LocationInfo locationEnd = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.TargetAddress); - Dt_LocationInfo locationStart = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.SourceAddress); - - stockInfo.StockStatus = StockStatusEmun.宸插叆搴�.ObjToInt(); - _stockService.StockInfoService.Repository.UpdateData(stockInfo); - - locationEnd.LocationStatus = LocationStatusEnum.Free.ObjToInt(); - _basicService.LocationInfoService.RelocationFree(locationStart, task.TaskNum); - _basicService.LocationInfoService.Repository.UpdateData(locationEnd); - - task.TaskStatus = InTaskStatusEnum.RelocationCancel.ObjToInt(); - BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateType.鑷姩瀹屾垚 : OperateType.浜哄伐瀹屾垚); - - _unitOfWorkManage.CommitTran(); - return WebResponseContent.Instance.OK(); - } - catch (Exception ex) - { - _unitOfWorkManage.RollbackTran(); - return WebResponseContent.Instance.Error(ex.Message); - } - } - public bool DepthTask(Dt_LocationInfo location) - { - if (location != null) - { - Dt_LocationInfo locations = _locationInfoService.Repository.QueryFirst(x => x.RoadwayNo == location.RoadwayNo && x.Column == location.Column && x.Layer == location.Layer && x.Depth != location.Depth && x.Row != location.Row && (SqlFunc.Abs(x.Row - location.Row) == 1)); - if (locations != null) - { - Dt_Task tasks = BaseDal.QueryFirst(x => x.SourceAddress == locations.LocationCode); - return tasks != null ? true : false; - } - } - return false; - } public WebResponseContent GetTaskInfo() { WebResponseContent content = new WebResponseContent(); @@ -781,25 +385,42 @@ Dt_CachePoint source = _basicService.CachePointService.Repository.QueryFirst(x => x.PointCode == task.SourceAddress); Dt_CachePoint target = _basicService.CachePointService.Repository.QueryFirst(x => x.PointCode == task.TargetAddress); var toaddress = JsonConvert.SerializeObject(target); - if (target != null && source != null) + if (!source.PointCode.Contains("鍘熸潗鏂欏簱")) { - if (toaddress.Contains("鎴愬搧搴�")) + if (target != null && source != null) { - source.PointStatus = LocationStatusEnum.Free.ObjToInt(); - _basicService.CachePointService.Repository.UpdateData(source); - target.PointStatus = LocationStatusEnum.InStock.ObjToInt(); - _basicService.CachePointService.Repository.UpdateData(target); + if (toaddress.Contains("鎴愬搧搴�")) + { + source.PointStatus = LocationStatusEnum.Free.ObjToInt(); + _basicService.CachePointService.Repository.UpdateData(source); + target.PointStatus = LocationStatusEnum.InStock.ObjToInt(); + _basicService.CachePointService.Repository.UpdateData(target); + } + else + { + source.PointStatus = LocationStatusEnum.Free.ObjToInt(); + _basicService.CachePointService.Repository.UpdateData(source); + //target.PointStatus = LocationStatusEnum.Free.ObjToInt(); + //_basicService.CachePointService.Repository.UpdateData(target); + } } - else - { - source.PointStatus = LocationStatusEnum.Free.ObjToInt(); - _basicService.CachePointService.Repository.UpdateData(source); - //target.PointStatus = LocationStatusEnum.Free.ObjToInt(); - //_basicService.CachePointService.Repository.UpdateData(target); - } + } + + return content; + } + + public WebResponseContent HCJCope(Dt_Task task, int TaskStatus) + { + WebResponseContent content = new WebResponseContent(); + Dt_CachePoint source = _basicService.CachePointService.Repository.QueryFirst(x => x.PointCode == task.SourceAddress); + if (source != null && source.PointCode.Contains("鍘熸潗鏂欏簱")) + { + source.PointStatus = LocationStatusEnum.Free.ObjToInt(); + _basicService.CachePointService.Repository.UpdateData(source); } return content; } + public WebResponseContent CacheStatus(SaveModel saveModel) { WebResponseContent response = new WebResponseContent(); @@ -809,7 +430,7 @@ List<Dt_CachePoint> cachePoints = _basicService.CachePointService.Repository.QueryData(x => x.PointCode.Contains("鎴愬搧搴�")).ToList(); foreach (var cachePoint in cachePoints) { - bool isState = (cachePoint.PointStatus == LocationStatusEnum.Free.ObjToInt()); + //bool isState = (cachePoint.PointStatus == LocationStatusEnum.Free.ObjToInt()); string stateName = ""; switch (cachePoint.PointStatus) { @@ -825,7 +446,7 @@ default: break; } - list.Add(new { name = cachePoint.Depth, state = isState, statename = stateName }); + list.Add(new { name = cachePoint.PointName, state = cachePoint.PointStatus, statename = stateName }); } response.OK(data: new { list }); -- Gitblit v1.9.3