From dc06f58d8ed537555fd529551180f43a0586ec3f Mon Sep 17 00:00:00 2001 From: helongyang <647556386@qq.com> Date: 星期日, 22 六月 2025 11:44:43 +0800 Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/MeiRuiAn/HuaiAn --- 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGV_CSJExtend.cs | 8 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Check/Dt_CheckOrder.cs | 5 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/AGV/CTU_AGVController .cs | 9 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_DictionaryService.cs | 33 + 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Inbound.cs | 65 ++ 代码管理/淮安PDA/pages/stash/receiveorderoutbound.vue | 2 代码管理/WMS/WIDESEA_WMSClient/src/extension/stock/stockView.js | 29 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Outbound.cs | 97 ++++ 代码管理/WMS/WIDESEA_WMSClient/src/views/Index.vue | 34 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/TakeStockOrderService.cs | 6 代码管理/WMS/WIDESEA_WMSClient/src/views/check/inspectOrder.vue | 32 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_GM.cs | 8 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Inbound/Dt_TakeStockOrder.cs | 2 代码管理/淮安PDA/pages.json | 7 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundRepository/InboundRepository.cs | 8 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs | 5 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs | 25 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/TakeStockStatusEnum.cs | 41 + 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/干膜仓/ConveyorLineJob_GM.cs | 3 代码管理/淮安PDA/pages/stash/boxing.vue | 8 代码管理/淮安PDA/pages/stash/InspectIn.vue | 612 +++++++++++++++++++++++++++++ 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json | 2 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs | 3 代码管理/淮安PDA/pages/stash/raworderboxing.vue | 8 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs | 17 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs | 3 代码管理/WMS/WIDESEA_WMSClient/src/views/charts/AssembleDist.vue | 10 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/板材仓/StackerCraneJob_BC.cs | 6 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs | 40 + 代码管理/WMS/WIDESEA_WMSClient/config/buttons.js | 9 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/板材仓/RGVJob_BC.cs | 34 + 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_CheckService/CheckOrderResultService.cs | 15 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IInboundRepository/IInboundRepository.cs | 2 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Inbound/Dt_TakeStockOrderDetail.cs | 20 34 files changed, 1,072 insertions(+), 136 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs" index cfe9fdd..7fe6c29 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs" @@ -14,31 +14,37 @@ /// </summary> [Description("棰嗘枡鍑哄簱")] Outbound = 100, + /// <summary> /// 鐩樼偣鍑哄簱 /// </summary> [Description("鐩樼偣鍑哄簱")] OutInventory = 110, + /// <summary> /// 鍒嗘嫞鍑哄簱 /// </summary> [Description("鍒嗘嫞鍑哄簱")] OutPick = 120, + /// <summary> /// 璐ㄦ鍑哄簱 /// </summary> [Description("璐ㄦ鍑哄簱")] OutQuality = 130, + /// <summary> /// 绌虹鍑哄簱 /// </summary> [Description("绌虹鍑哄簱")] OutEmpty = 140, + /// <summary> /// 璋冩嫧鍑哄簱 /// </summary> [Description("璋冩嫧鍑哄簱")] OutAllocate = 150, + /// <summary> /// MES鍑哄簱 /// </summary> @@ -61,16 +67,19 @@ /// </summary> [Description("鎴愬搧鍑哄簱")] OutProduct = 230, + /// <summary> /// 鎴愬搧瀵勫敭鍑哄簱 /// </summary> [Description("鎴愬搧瀵勫敭鍑哄簱")] OutSendProduct = 240, + /// <summary> - /// 鎴愬搧MES鍑哄簱/鎻愬簱 + /// 鎴愬搧MES鎻愬簱 /// </summary> [Description("鎴愬搧MES鎻愬簱")] OutMesRworkProduct = 250, + /// <summary> /// 闃茬剨鍓嶆淳宸ュ皬浠� /// </summary> @@ -82,6 +91,7 @@ /// </summary> [Description("闃茬剨鍓嶆淳宸ュぇ浠�")] MaskOutNoticeLarge = 265, + /// <summary> /// 闃茬剨鍒扮嚎杈瑰皬浠� /// </summary> @@ -93,21 +103,25 @@ /// </summary> [Description("闃茬剨鍒扮嚎杈瑰ぇ浠�")] MaskOutLarge = 275, + /// <summary> /// 閲囪喘鍏ュ簱 /// </summary> [Description("閲囪喘鍏ュ簱")] Inbound = 510, + /// <summary> /// 鐩樼偣鍏ュ簱 /// </summary> [Description("鐩樼偣鍏ュ簱")] InInventory = 520, + /// <summary> /// 鍒嗘嫞鍏ュ簱 /// </summary> [Description("鍒嗘嫞鍏ュ簱")] InPick = 530, + /// <summary> /// 璐ㄦ鍏ュ簱 /// </summary> @@ -127,6 +141,12 @@ MesMatReturn = 560, /// <summary> + /// 璋冩嫧鍏ュ簱 + /// </summary> + [Description("璋冩嫧鍏ュ簱")] + InAllocate = 570, + + /// <summary> /// MES澶х┖鎵橀��鏂� /// </summary> [Description("MES澶х┖鎵橀��鏂�")] @@ -137,24 +157,6 @@ /// </summary> [Description("MES灏忕┖鎵橀��鏂�")] MesPalletSmallReturn = 585, - - /// <summary> - /// 璋冩嫧鍏ュ簱 - /// </summary> - [Description("璋冩嫧鍏ュ簱")] - InAllocate = 570, - - /// <summary> - /// 绾胯竟浠撳叆搴� - /// </summary> - [Description("绾胯竟浠撳叆搴�")] - InboundXB = 580, - - /// <summary> - /// 鏈哄彴鍏ュ簱 - /// </summary> - [Description("鏈哄彴鍏ュ簱")] - InboundJT = 590, /// <summary> /// 绌虹鍏ュ簱 diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/AGV/CTU_AGVController .cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/AGV/CTU_AGVController .cs" index a8bc416..5ae5962 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/AGV/CTU_AGVController .cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/AGV/CTU_AGVController .cs" @@ -255,7 +255,8 @@ WebResponseContent content = _taskService.AgvBoxApplyPass(boxApplyPassDTO); if (content.Status && task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup) { - _taskService.UpdateTask(task, TaskStatusEnum.AGV_Executing); + task.TaskState = TaskStatusEnum.AGV_Executing.ObjToInt(); + _taskRepository.UpdateData(task); } else { @@ -332,7 +333,8 @@ WebResponseContent content = _taskService.AgvBoxApplyPass(boxApplyPassDTO); if (content.Status && task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup) { - _taskService.UpdateTask(task, TaskStatusEnum.AGV_Executing); + task.TaskState = TaskStatusEnum.AGV_Executing.ObjToInt(); + _taskRepository.UpdateData(task); } else { @@ -356,7 +358,8 @@ } else if(task.TaskType == TaskTypeEnum.OutProduct.ObjToInt()) { - _taskService.UpdateTask(task, TaskStatusEnum.AGV_Executing); + task.TaskState = TaskStatusEnum.AGV_Executing.ObjToInt(); + _taskRepository.UpdateData(task); } break; default: diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs" index 47af224..74051e8 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs" @@ -196,9 +196,12 @@ { bool flag = false; List<Dt_Task> tasks = new List<Dt_Task>(); + List<Dt_Task> tasksOld= BaseDal.QueryData(); + List<Dt_Router> routersAll = _routerRepository.QueryData(); + List<Dt_StationManger> stationMangers = _stationMangerRepository.QueryData(); foreach (var item in taskDTOs) { - if (BaseDal.QueryFirst(x => x.TaskNum == item.TaskNum || x.PalletCode == item.PalletCode) != null) + if (tasksOld.FirstOrDefault(x => x.TaskNum == item.TaskNum || x.PalletCode == item.PalletCode) != null) { flag = true; continue; @@ -213,13 +216,13 @@ TaskTypeGroup taskTypeGroup = item.TaskType.GetTaskTypeGroup(); if (string.IsNullOrEmpty(item.AGVArea)) { - Dt_StationManger stationManger; + Dt_StationManger? stationManger; if (taskTypeGroup == TaskTypeGroup.InboundGroup) { - stationManger = _stationMangerRepository.QueryFirst(x => x.StationCode == item.SourceAddress || x.StationDeviceCode == item.SourceAddress); + stationManger = stationMangers.FirstOrDefault(x => x.StationCode == item.SourceAddress || x.StationDeviceCode == item.SourceAddress); if (stationManger==null && task.TaskType==TaskTypeEnum.InProduct.ObjToInt()) { - stationManger = _stationMangerRepository.QueryFirst(x => x.StackerCraneCode==task.SourceAddress); + stationManger = stationMangers.FirstOrDefault(x => x.StackerCraneCode==task.SourceAddress); //杞崲鎴愬搧浠撹捣鐐圭珯鍙� item.SourceAddress = stationManger.StationCode; task.CurrentAddress = stationManger.StationCode; @@ -228,14 +231,14 @@ } else { - stationManger = _stationMangerRepository.QueryFirst(x => x.StackerCraneCode == item.RoadWay || x.Remark==item.RoadWay); + stationManger = stationMangers.FirstOrDefault(x => x.StackerCraneCode == item.RoadWay || x.Remark==item.RoadWay); } if (stationManger == null) { return WebResponseContent.Instance.Error($"鏈壘鍒扮珯鍙伴厤缃俊鎭�"); } - List<Dt_Router> routers = _routerRepository.QueryData(x => x.InOutType == item.TaskType && (item.SourceAddress == x.StartPosi || item.RoadWay == x.StartPosi /*|| item.RoadWay == x.ChildPosiDeviceCode || item.RoadWay == x.ChildPosi*/)); + List<Dt_Router> routers = routersAll.Where(x => x.InOutType == item.TaskType && (item.SourceAddress == x.StartPosi || item.RoadWay == x.StartPosi /*|| item.RoadWay == x.ChildPosiDeviceCode || item.RoadWay == x.ChildPosi*/)).ToList(); router = routers.FirstOrDefault(); if (router == null) { @@ -263,7 +266,7 @@ { task.NextAddress = router.NextPosi; task.DeviceCode = stationManger.StackerCraneCode; - if (item.TaskType == TaskTypeEnum.MesOutbound.ObjToInt() && task.TargetAddress== "SCUTL-001") + if (item.TaskType == TaskTypeEnum.MesOutbound.ObjToInt() && (task.TargetAddress== "SCUTL-001" || task.TargetAddress == "SCUTL-002" || task.TargetAddress == "SCUTL_04-001")) { task.TaskState = TaskStatusEnum.MesPending.ObjToInt(); } @@ -305,7 +308,7 @@ { if (item.RoadWay=="AGV_CP") { - Dt_Router routerSelect = _routerRepository.QueryFirst(x => x.InOutType == item.TaskType && item.RoadWay == x.StartPosi && x.NextPosi==item.TargetAddress); + Dt_Router? routerSelect = routersAll.FirstOrDefault(x => x.InOutType == item.TaskType && item.RoadWay == x.StartPosi && x.NextPosi==item.TargetAddress); if (routerSelect != null) { task.NextAddress = routerSelect.NextPosi; @@ -338,7 +341,7 @@ if (taskTypeGroup == TaskTypeGroup.OutbondGroup) { task.AgvTaskNum = item.AGVArea + DateTime.Now.ToString("yyyyMMdd") + item.TaskNum; - List<Dt_Router> routers = _routerRepository.QueryData(x => x.InOutType == item.TaskType && item.AGVArea == x.NextPosi); + List<Dt_Router> routers = routersAll.Where(x => x.InOutType == item.TaskType && item.AGVArea == x.NextPosi).ToList(); if (routers.FirstOrDefault() == null) { return WebResponseContent.Instance.Error($"鏈壘鍒拌矾鐢遍厤缃俊鎭�"); @@ -361,13 +364,13 @@ { task.AgvTaskNum = item.AGVArea + DateTime.Now.ToString("yyyyMMdd") + item.TaskNum; } - List<Dt_Router> routers = _routerRepository.QueryData(x => x.InOutType == item.TaskType && item.AGVArea == x.StartPosi); + List<Dt_Router> routers = routersAll.Where(x => x.InOutType == item.TaskType && item.AGVArea == x.StartPosi).ToList(); if (routers.FirstOrDefault() == null) { return WebResponseContent.Instance.Error($"鏈壘鍒拌矾鐢遍厤缃俊鎭�"); } router = routers.FirstOrDefault(); - Dt_StationManger? stationManger = _stationMangerRepository.QueryData(x => true).FirstOrDefault(x=>x.StationCode== router?.NextPosi); + Dt_StationManger? stationManger = stationMangers.FirstOrDefault(x=>x.StationCode== router?.NextPosi); if (stationManger == null) { return WebResponseContent.Instance.Error($"鏈壘鍒扮珯鍙伴厤缃俊鎭�"); diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGV_CSJExtend.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGV_CSJExtend.cs" index 766fe96..a38d496 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGV_CSJExtend.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGV_CSJExtend.cs" @@ -204,14 +204,6 @@ { return TaskType == TaskTypeEnum.ProductionReturn.ObjToInt() ? "23" : "24"; } - case "AGV_ZH": - { - if (TaskType == TaskTypeEnum.InboundXB.ObjToInt()) - return "20"; - else if (TaskType == TaskTypeEnum.InboundJT.ObjToInt()) - return "21"; - else return "22"; - } default: throw new Exception($"璁惧缂栧彿閿欒"); } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\345\271\262\350\206\234\344\273\223/ConveyorLineJob_GM.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\345\271\262\350\206\234\344\273\223/ConveyorLineJob_GM.cs" index 187be46..3e84239 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\345\271\262\350\206\234\344\273\223/ConveyorLineJob_GM.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\345\271\262\350\206\234\344\273\223/ConveyorLineJob_GM.cs" @@ -93,6 +93,7 @@ ConveyorLineSignal conveyorLineSignalWrite = conveyorLineInfoWrite.Signal.ByteToBoolObject<ConveyorLineSignal>(); if (item.StationType == StationTypeEnum.StationType_OnlyInbound.ObjToInt()) { + //骞茶啘鍏ュ簱绔欏彴浜や簰 if (conveyorLineSignalRead.STB && conveyorLineStatus.Online && conveyorLineStatus.Goods && !conveyorLineStatus.Alarm && !conveyorLineSignalWrite.ACK) { string boxcode = device.GetValue<R_ConveyorLineDB, string>(R_ConveyorLineDB.Boxcode, item.StationCode); @@ -169,6 +170,7 @@ } else { + //骞茶啘鍑哄簱绔欏彴浜や簰 if (!conveyorLineSignalWrite.STB && !conveyorLineSignalRead.ACK && conveyorLineStatus.Goods) { Dt_Task task = _taskRepository.QueryFirst(x => x.CurrentAddress == item.StationCode && x.TaskState == TaskStatusEnum.Line_Execute.ObjToInt() && x.DeviceCode == item.StationDeviceCode); @@ -197,6 +199,7 @@ } else if (conveyorLineSignalWrite.STB && conveyorLineSignalRead.ACK && conveyorLineStatus.Goods) { + //瀹屾垚骞茶啘鍑哄簱浠诲姟 _taskService.TaskCompleted(conveyorLineInfoWrite.TaskNum); device.SetValue(W_ConveyorLineDB.STB, false, item.StationCode); } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\235\277\346\235\220\344\273\223/RGVJob_BC.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\235\277\346\235\220\344\273\223/RGVJob_BC.cs" index 8d0bb30..75fb49e 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\235\277\346\235\220\344\273\223/RGVJob_BC.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\235\277\346\235\220\344\273\223/RGVJob_BC.cs" @@ -169,8 +169,8 @@ } } //鍏佽鏀捐涓�鍙峰紑鏂欏彛鍑哄簱浠诲姟 - bool outAllow = device.Communicator.Read<bool>("DB14.4.6"); - if (outAllow) + bool outAllowLine1 = device.Communicator.Read<bool>("DB14.4.6"); + if (outAllowLine1) { Dt_Task taskExcuting = _taskRepository.QueryFirst(x => x.WarehouseId== warehouseDevice.WarehouseId && (x.TargetAddress== "SCUTL-001" || x.TargetAddress == "1101") && (x.TaskState==TaskStatusEnum.SC_Execute.ObjToInt() || x.TaskState == TaskStatusEnum.SC_Executing.ObjToInt() @@ -183,6 +183,36 @@ WriteDebug($"涓�鍙峰紑鏂欏彛鏀捐浠诲姟", $"浠诲姟鍙穥taskExecute.TaskNum}"); } } + //鍏佽鏀捐浜屽彿寮�鏂欏彛鍑哄簱浠诲姟 + bool outAllowLine2 = device.Communicator.Read<bool>("DB14.12.6"); + if (outAllowLine2) + { + Dt_Task taskExcuting = _taskRepository.QueryFirst(x => x.WarehouseId == warehouseDevice.WarehouseId && (x.TargetAddress == "SCUTL-002" || x.TargetAddress == "1103") + && (x.TaskState == TaskStatusEnum.SC_Execute.ObjToInt() || x.TaskState == TaskStatusEnum.SC_Executing.ObjToInt() + || x.TaskState == TaskStatusEnum.Line_Execute.ObjToInt() || x.TaskState == TaskStatusEnum.Line_Executing.ObjToInt())); + Dt_Task? taskExecute = _taskRepository.QueryData(x => x.WarehouseId == warehouseDevice.WarehouseId && x.TargetAddress == "SCUTL-002" + && x.TaskState == TaskStatusEnum.MesPending.ObjToInt()).OrderByDescending(x => x.Grade).ThenBy(x => x.TaskNum).ThenBy(x => x.CreateDate).FirstOrDefault(); + if (taskExcuting == null && taskExecute != null) + { + _taskService.UpdateTask(taskExecute, TaskStatusEnum.SC_Execute); + WriteDebug($"浜屽彿寮�鏂欏彛鏀捐浠诲姟", $"浠诲姟鍙穥taskExecute.TaskNum}"); + } + } + //鍏佽鏀捐鎵嬪姩寮�鏂欏彛鍑哄簱浠诲姟 + bool outAllowMusual = device.Communicator.Read<bool>("DB14.4.7"); + if (outAllowMusual) + { + Dt_Task taskExcuting = _taskRepository.QueryFirst(x => x.WarehouseId == warehouseDevice.WarehouseId && (x.TargetAddress == "SCUTL_04-001" || x.TargetAddress == "1102") + && (x.TaskState == TaskStatusEnum.SC_Execute.ObjToInt() || x.TaskState == TaskStatusEnum.SC_Executing.ObjToInt() + || x.TaskState == TaskStatusEnum.Line_Execute.ObjToInt() || x.TaskState == TaskStatusEnum.Line_Executing.ObjToInt())); + Dt_Task? taskExecute = _taskRepository.QueryData(x => x.WarehouseId == warehouseDevice.WarehouseId && x.TargetAddress == "SCUTL_04-001" + && x.TaskState == TaskStatusEnum.MesPending.ObjToInt()).OrderByDescending(x => x.Grade).ThenBy(x => x.TaskNum).ThenBy(x => x.CreateDate).FirstOrDefault(); + if (taskExcuting == null && taskExecute != null) + { + _taskService.UpdateTask(taskExecute, TaskStatusEnum.SC_Execute); + WriteDebug($"鎵嬪姩寮�鏂欏彛鏀捐浠诲姟", $"浠诲姟鍙穥taskExecute.TaskNum}"); + } + } } else { diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\235\277\346\235\220\344\273\223/StackerCraneJob_BC.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\235\277\346\235\220\344\273\223/StackerCraneJob_BC.cs" index 620a9c5..e1f87ec 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\235\277\346\235\220\344\273\223/StackerCraneJob_BC.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\235\277\346\235\220\344\273\223/StackerCraneJob_BC.cs" @@ -196,15 +196,15 @@ return WebResponseContent.Instance.Error($"鏈壘鍒拌矾鐢变俊鎭�,{task.NextAddress}"); } } - if (task.TargetAddress.Contains("SCUTL-001")) + if (task.TargetAddress.Contains("SCUTL-001")) //鑷姩涓�绾� { _taskService.UpdateTask(task, TaskStatusEnum.Line_Execute, deviceCode: stationManger.StationDeviceCode, currentAddress: stationManger.StationCode, nextAddress: router.NextPosi, targetAddress: router.NextPosi); } - else if (task.TargetAddress.Contains("SCUTL-002")) + else if (task.TargetAddress.Contains("SCUTL-002")) //鑷姩浜岀嚎 { _taskService.UpdateTask(task, TaskStatusEnum.Line_Execute, deviceCode: stationManger.StationDeviceCode, currentAddress: stationManger.StationCode, nextAddress: "1103", targetAddress: "1103"); } - else + else //鎵嬪姩绾� { _taskService.UpdateTask(task, TaskStatusEnum.Line_Execute, deviceCode: stationManger.StationDeviceCode, currentAddress: stationManger.StationCode, nextAddress: "1102", targetAddress: "1102"); } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/config/buttons.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/config/buttons.js" index 5950582..1f63548 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/config/buttons.js" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/config/buttons.js" @@ -200,6 +200,15 @@ onClick: function () { } }, +{ + name: "閫夊畾搴撳瓨鐩樼偣", + icon: '', + class: '', + value: 'SelectStockTake', + type: 'success', + onClick: function () { + } +}, ] export default buttons \ No newline at end of file diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/stock/stockView.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/stock/stockView.js" index 1b2540a..b8c502e 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/stock/stockView.js" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/stock/stockView.js" @@ -20,22 +20,19 @@ //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄� onInit() { - // let InOrder = this.buttons.find(x => x.value == 'StockOutbound'); - // if (InOrder) { - // InOrder.onClick = function () { - // let rows = this.$refs.table.getSelected(); - // if (rows.length == 0) return this.$error("璇烽�夋嫨鏁版嵁!"); - // if (rows.length > 1) return this.$error("璇烽�夋嫨鍗曟潯鏁版嵁!"); - // var keys = rows.map(x => { return x.stockId }); - // this.http - // .post("api/Task/Outbound?id="+keys[0], null, "鏁版嵁澶勭悊涓�") - // .then((x) => { - // if (!x.status) return this.$message.error(x.message); - // this.$message.success("鎿嶄綔鎴愬姛"); - // this.refresh(); - // }); - // } - // } + let SelectTake = this.buttons.find(x => x.value == 'SelectStockTake'); + if (SelectTake) { + SelectTake.onClick = function () { + let stockViews = this.$refs.table.getSelected(); + this.http + .post("api/Task/TakeOutbound",stockViews, "鏁版嵁澶勭悊涓�") + .then((x) => { + if (!x.status) return this.$message.error(x.message); + this.$message.success("鎿嶄綔鎴愬姛"); + this.refresh(); + }); + } + } this.columns.forEach(column => { if (column.field == 'materielCode') { column.formatter = (row) => { diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/Index.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/Index.vue" index 519f89b..a882a94 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/Index.vue" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/Index.vue" @@ -324,24 +324,24 @@ }); }; - const createSocket = (url) => { - // 鍒涘缓WebSocket杩炴帴 - //"ws://127.0.0.1:9295/admin" - client = new WebSocket(url); + // const createSocket = (url) => { + // // 鍒涘缓WebSocket杩炴帴 + // //"ws://127.0.0.1:9295/admin" + // client = new WebSocket(url); - client.onopen = function () { - client.onmessage = handleMessage; - store.commit("setWebsocket", client); - console.log("WebSocket 杩炴帴鎴愬姛"); - }; + // client.onopen = function () { + // client.onmessage = handleMessage; + // store.commit("setWebsocket", client); + // console.log("WebSocket 杩炴帴鎴愬姛"); + // }; - client.onclose = function () { - console.log("WebSocket 杩炴帴鍏抽棴"); - setTimeout(createSocket, 10000); - }; - //鐩戝惉socket閿欒淇℃伅 - client.onerror = function () {}; - }; + // client.onclose = function () { + // console.log("WebSocket 杩炴帴鍏抽棴"); + // setTimeout(createSocket, 10000); + // }; + // //鐩戝惉socket閿欒淇℃伅 + // client.onerror = function () {}; + // }; const changeTheme = (name) => { if (theme.value != name) { @@ -606,7 +606,7 @@ } } - createSocket("ws://127.0.0.1:9296/" + _userInfo.userName); + // createSocket("ws://127.0.0.1:9296/" + _userInfo.userName); Object.assign(_config.$tabs, { open: open, close: close }); diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/charts/AssembleDist.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/charts/AssembleDist.vue" index c5d0cfa..39c2bb7 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/charts/AssembleDist.vue" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/charts/AssembleDist.vue" @@ -131,7 +131,7 @@ calendar: { left: "center", top: 49, - cellSize: [70, 70], + cellSize: [100, 70], orient: "vertical", dayLabel: { firstDay: 1, @@ -140,7 +140,7 @@ monthLabel: { formatter: "{M}鏈�", }, - range: "2025-05", + range: dayjs().format('YYYY-MM'), yearLabel: { show: false, }, @@ -152,7 +152,7 @@ symbolSize(params) { //鏍稿績2 if (params[0] === dayjs().format('YYYY-MM-DD')) { - return 70; //褰撳墠鏃ユ湡楂樹寒 瀹藉害楂樺害璁剧疆鎴愬拰鍗曞厓鏍煎搴﹂珮搴︿竴鏍� + return [100, 70]; //褰撳墠鏃ユ湡楂樹寒 瀹藉害楂樺害璁剧疆鎴愬拰鍗曞厓鏍煎搴﹂珮搴︿竴鏍� } else { return 1; } @@ -313,7 +313,7 @@ calendar: { left: "center", top: 49, - cellSize: [70, 70], + cellSize: [100, 70], orient: "vertical", dayLabel: { firstDay: 1, @@ -334,7 +334,7 @@ symbolSize(params) { //鏍稿績2 if (params[0] === dayjs().format('YYYY-MM-DD')) { - return 70; //褰撳墠鏃ユ湡楂樹寒 瀹藉害楂樺害璁剧疆鎴愬拰鍗曞厓鏍煎搴﹂珮搴︿竴鏍� + return [100, 70]; //褰撳墠鏃ユ湡楂樹寒 瀹藉害楂樺害璁剧疆鎴愬拰鍗曞厓鏍煎搴﹂珮搴︿竴鏍� } else { return 1; } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/check/inspectOrder.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/check/inspectOrder.vue" index b821479..c09eed9 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/check/inspectOrder.vue" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/check/inspectOrder.vue" @@ -81,7 +81,6 @@ width: 150, hidden: true, readonly: true, - require: true, align: "left", }, { @@ -89,7 +88,6 @@ title: "妫�楠屽崟鍙�", type: "string", width: 180, - require: true, align: "left", }, { @@ -105,7 +103,6 @@ title: "閫佹鍗曞彿", type: "string", width: 180, - require: true, align: "left", }, { @@ -118,19 +115,17 @@ }, // {field:'auditStatus',title:'瀹℃壒鐘舵��',type:'int',width:110,require:true,align:'left'}, { - field: "receiveDetailRowNo", - title: "閫佹鏄庣粏琛�", + field: "orderPalletCode", + title: "閫佹鎵樼洏", type: "int", - width: 100, - require: true, + width: 140, align: "left", }, { field: "materielCode", title: "鐗╂枡缂栧彿", type: "string", - width: 110, - require: true, + width: 100, align: "left", }, { @@ -146,14 +141,13 @@ title: "鎵规鍙�", type: "string", width: 150, - require: true, align: "left", }, { field: "checkOrderStatus", title: "璐ㄦ鍗曠姸鎬�", type: "string", - width: 110, + width: 100, require: true, align: "left", bind: { key: "checkOrderStatusEnum", data: [] }, @@ -173,11 +167,24 @@ align: "left", }, { + field: "defectedQuantity", + title: "鐗归噰鏁伴噺", + type: "float", + width: 110, + align: "left", + }, + { + field: "scrappedQuantity", + title: "鎶ュ簾鏁伴噺", + type: "float", + width: 110, + align: "left", + }, + { field: "receivedQuantity", title: "妫�楠屾�绘暟", type: "float", width: 110, - require: true, align: "left", }, { @@ -224,7 +231,6 @@ title: "鍒涘缓鏃堕棿", type: "datetime", width: 180, - require: true, align: "left", }, // {field:'modifier',title:'淇敼浜�',type:'string',width:100,align:'left'}, diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_GM.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_GM.cs" index 97f8d03..7a17157 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_GM.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_GM.cs" @@ -62,17 +62,17 @@ if (mathCurrentRow <= maxDepth) { locationInfos = locationInfos.Where(x => x.Row - Convert.ToInt32(Math.Ceiling(x.Row / maxDepth / 2.0)) * maxDepth * 2 <= maxDepth).ToList(); - if (beRelocation.Row> maxDepth) + if (beRelocation.Row <= maxDepth) { - locationInfos = locationInfos.Where(x=>x.Row>maxDepth).ToList(); + locationInfos = locationInfos.Where(x=>x.Row <= maxDepth).ToList(); } } else { locationInfos = locationInfos.Where(x => x.Row - Convert.ToInt32(Math.Ceiling(x.Row / maxDepth / 2.0)) * maxDepth * 2 > maxDepth).ToList(); - if (beRelocation.Row <= maxDepth) + if (beRelocation.Row > maxDepth) { - locationInfos = locationInfos.Where(x => x.Row <= maxDepth).ToList(); + locationInfos = locationInfos.Where(x => x.Row > maxDepth).ToList(); } } } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_CheckService/CheckOrderResultService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_CheckService/CheckOrderResultService.cs" index 1ecc986..607da70 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_CheckService/CheckOrderResultService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_CheckService/CheckOrderResultService.cs" @@ -206,7 +206,8 @@ { return content.Error($"鏁伴噺瓒呭嚭"); } - if (checkResult.Result == InspectResultEnum.Return.ToString())//閫�璐� + //鍒ゆ柇妫�楠岀粨鏋� + if (checkResult.Result == InspectResultEnum.Return.ToString()) { checkOrder.DefectedNote = checkResult.Note; checkOrder.ReturnQuantity += checkResult.Quantity; @@ -248,8 +249,9 @@ } else if(checkResult.Quantity< item.StockQuantity) { - checkResult.Quantity = 0; item.StockQuantity -= checkResult.Quantity; + item.OutboundQuantity = 0; + checkResult.Quantity = 0; stockInfoDetails.Add(item); } else if (checkResult.Quantity >= item.StockQuantity) @@ -287,6 +289,7 @@ checkOrder.QualifiedQuantity = checkOrder.ReceivedQuantity; } checkOrder.CheckUserName = App.User.UserName; + List<Dt_StockInfoDetail> initialStockDetails = stockInfo.Details.Where(x=> !(stockInfoDetails.Select(v=>v.Id).ToList()).Contains(x.Id)).ToList(); _unitOfWorkManage.BeginTran(); if (checkOrderResult != null) @@ -298,6 +301,14 @@ { _stockRepository.StockInfoDetailRepository.UpdateData(stockInfoDetails); } + if (initialStockDetails.Count>0) + { + initialStockDetails.ForEach(x => + { + x.OutboundQuantity = 0; + }); + _stockRepository.StockInfoDetailRepository.UpdateData(initialStockDetails); + } if (DelStockDetails.Count>0) { _stockRepository.StockInfoDetailRepository.DeleteAndMoveIntoHty(DelStockDetails, App.User.UserId == 0 ? OperateTypeEnum.鑷姩瀹屾垚 : OperateTypeEnum.浜哄伐瀹屾垚); diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/TakeStockStatusEnum.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/TakeStockStatusEnum.cs" index f793532..e12bca8 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/TakeStockStatusEnum.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/TakeStockStatusEnum.cs" @@ -13,21 +13,50 @@ public enum TakeStockStatusEnum { /// <summary> - /// 鏈��鏂� + /// 鏈洏鐐� /// </summary> [Description("鏈洏鐐�")] - NotTake = 0, + 鏈洏鐐� = 0, /// <summary> - /// 閫�鏂欎腑 + /// 鐩樼偣涓� /// </summary> [Description("鐩樼偣涓�")] - Taking = 1, + 鐩樼偣涓� = 1, /// <summary> - /// 閫�鏂欏畬鎴� + /// 鐩樼偣瀹屾垚 /// </summary> [Description("鐩樼偣瀹屾垚")] - Taked = 2 + 鐩樼偣瀹屾垚 = 2 + } + /// <summary> + /// 鐩樼偣鐘舵�� + /// </summary> + public enum TakeStockDetailStatusEnum + { + /// <summary> + /// 鏈洏鐐� + /// </summary> + [Description("鏈洏鐐�")] + 鏈洏鐐� = 0, + + /// <summary> + /// 鐩樼偣涓� + /// </summary> + [Description("鐩樼偣鍑哄簱涓�")] + 鐩樼偣鍑哄簱涓� = 1, + + /// <summary> + /// 鐩樼偣鍑哄簱瀹屾垚 + /// </summary> + [Description("鐩樼偣鍑哄簱瀹屾垚")] + 鐩樼偣鍑哄簱瀹屾垚 = 2, + + /// <summary> + /// 鐩樼偣瀹屾垚 + /// </summary> + [Description("鐩樼偣瀹屾垚")] + 鐩樼偣瀹屾垚 = 3 } } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IInboundRepository/IInboundRepository.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IInboundRepository/IInboundRepository.cs" index ee67db6..3c4f2e0 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IInboundRepository/IInboundRepository.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IInboundRepository/IInboundRepository.cs" @@ -24,5 +24,7 @@ IReturnOrderDetailRepository ReturnOrderDetailRepository { get; } IMesProInOrderRepository MesProInOrderRepository { get; } IMesProInOrderDetailRepository MesProInOrderDetailRepository { get; } + ITakeStockOrderRepository TakeStockOrderRepository { get; } + ITakeStockOrderDetailRepository TakeStockOrderDetailRepository { get; } } } 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 4e12dc7..bbc83dc 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" @@ -66,6 +66,10 @@ //WebResponseContent RequestInboundTask(string palletCode, string stationCode); WebResponseContent RequestInboundTask(SaveModel saveModel); /// <summary> + /// 鏌ヨ璐ㄦ鏁伴噺 + /// </summary> + WebResponseContent InQualityConfirm(string palletCode); + /// <summary> /// 绌虹鍏ュ簱 /// </summary> /// <param name="barcode"></param> @@ -209,6 +213,7 @@ /// <param name="id"></param> /// <returns></returns> WebResponseContent Outbound(int id); + WebResponseContent TakeOutbound(List<StockViewDTO> stockViews); /// <summary> /// 鐗╂枡鍑哄簱锛學MS鍚屾鍑哄簱鐗╂枡鎵规鑷矼ES diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundRepository/InboundRepository.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundRepository/InboundRepository.cs" index e1c76e9..ef0af38 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundRepository/InboundRepository.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundRepository/InboundRepository.cs" @@ -25,7 +25,11 @@ public IMesProInOrderRepository MesProInOrderRepository { get; } public IMesProInOrderDetailRepository MesProInOrderDetailRepository { get; } - public InboundRepository(IInboundOrderDetailRepository inboundOrderDetailRepository, IInboundOrderRepository inboundOrderRepository, IReceiveOrderDetailRepository receiveOrderDetailRepository, IReceiveOrderRepository receiveOrderRepository, IPurchaseOrderDetailRepository purchaseOrderDetailRepository, IPurchaseOrderRepository purchaseOrderRepository, IReturnOrderRepository returnOrderRepository, IReturnOrderDetailRepository returnOrderDetailRepository, IMesProInOrderRepository mesProInOrderRepository, IMesProInOrderDetailRepository mesProInOrderDetailRepository) + public ITakeStockOrderRepository TakeStockOrderRepository { get; } + + public ITakeStockOrderDetailRepository TakeStockOrderDetailRepository { get; } + + public InboundRepository(IInboundOrderDetailRepository inboundOrderDetailRepository, IInboundOrderRepository inboundOrderRepository, IReceiveOrderDetailRepository receiveOrderDetailRepository, IReceiveOrderRepository receiveOrderRepository, IPurchaseOrderDetailRepository purchaseOrderDetailRepository, IPurchaseOrderRepository purchaseOrderRepository, IReturnOrderRepository returnOrderRepository, IReturnOrderDetailRepository returnOrderDetailRepository, IMesProInOrderRepository mesProInOrderRepository, IMesProInOrderDetailRepository mesProInOrderDetailRepository, ITakeStockOrderRepository takeStockOrderRepository, ITakeStockOrderDetailRepository takeStockOrderDetailRepository) { InboundOrderDetailRepository = inboundOrderDetailRepository; InboundOrderRepository = inboundOrderRepository; @@ -37,6 +41,8 @@ ReturnOrderDetailRepository = returnOrderDetailRepository; MesProInOrderRepository = mesProInOrderRepository; MesProInOrderDetailRepository = mesProInOrderDetailRepository; + TakeStockOrderRepository = takeStockOrderRepository; + TakeStockOrderDetailRepository = takeStockOrderDetailRepository; } } } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs" index d0977fd..a5ebece 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs" @@ -75,8 +75,7 @@ Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseId == receiveOrder.WarehouseId); MatSerNumAnalysisModel model = CodeAnalysisHelper.CodeAnalysis<MatSerNumAnalysisModel>(AnalysisCodeEnum.MatSerNumAnalysis, serNum); Dt_SupplierInfo supplierInfo = _supplierInfoRepository.QueryFirst(x => x.SupplierCode == receiveOrder.SuppliersId); - //鏀惰揣澧炲姞鎵规鍗℃帶 - //鏌ヨ鏀惰揣鏄庣粏鏄惁鏈夊瓨鍦ㄥ悓涓�涓壒娆� + //鏀惰揣澧炲姞鎵规鍗℃帶,鏌ヨ鏀惰揣鏄庣粏鏄惁鏈夊瓨鍦ㄥ悓涓�涓壒娆� Dt_ReceiveOrderDetail receiveOrderDetailOld = _inboundRepository.ReceiveOrderDetailRepository.QueryFirst(x => x.LotNo == model.LotNo && x.MaterielCode == model.MaterielCode); Dt_ReceiveOrder? receiveOrderOld = null; if (receiveOrderDetailOld!=null) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/TakeStockOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/TakeStockOrderService.cs" index 94f8e0b..a34d6f6 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/TakeStockOrderService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/TakeStockOrderService.cs" @@ -56,7 +56,7 @@ } } } - saveModel.MainData.Add(nameof(Dt_TakeStockOrder.TakeStockStatus).FirstLetterToLower(), TakeStockStatusEnum.NotTake.ObjToInt()); + saveModel.MainData.Add(nameof(Dt_TakeStockOrder.TakeStockStatus).FirstLetterToLower(), TakeStockStatusEnum.鏈洏鐐�.ObjToInt()); return base.AddData(saveModel); } /// <summary> @@ -74,11 +74,11 @@ List<Dt_TakeStockOrder> takeStockOrders = new List<Dt_TakeStockOrder>(); if (string.IsNullOrEmpty(orderNo)) { - takeStockOrders = Db.Queryable<Dt_TakeStockOrder>().Where(x => x.TakeStockStatus < TakeStockStatusEnum.Taked.ObjToInt() && x.WarehouseId == warehouseId).ToPageList(pageNo, 5); + takeStockOrders = Db.Queryable<Dt_TakeStockOrder>().Where(x => x.TakeStockStatus < TakeStockStatusEnum.鐩樼偣瀹屾垚.ObjToInt() && x.WarehouseId == warehouseId).ToPageList(pageNo, 5); } else { - takeStockOrders = Db.Queryable<Dt_TakeStockOrder>().Where(x => (x.OrderNo.Contains(orderNo) && x.TakeStockStatus < TakeStockStatusEnum.Taked.ObjToInt() && x.WarehouseId == warehouseId)).ToPageList(pageNo, 5); + takeStockOrders = Db.Queryable<Dt_TakeStockOrder>().Where(x => (x.OrderNo.Contains(orderNo) && x.TakeStockStatus < TakeStockStatusEnum.鐩樼偣瀹屾垚.ObjToInt() && x.WarehouseId == warehouseId)).ToPageList(pageNo, 5); } content.OK(data: takeStockOrders); } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Check/Dt_CheckOrder.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Check/Dt_CheckOrder.cs" index 2cdd69b..fa07b9a 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Check/Dt_CheckOrder.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Check/Dt_CheckOrder.cs" @@ -138,6 +138,11 @@ [SugarColumn(IsNullable = true, ColumnDescription = "妫�楠屽崟绫诲瀷")] public int OrderType { get; set; } /// <summary> + /// 妫�楠屾墭鐩� + /// </summary> + [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "妫�楠屾墭鐩�")] + public string OrderPalletCode { get; set; } + /// <summary> /// 璐ㄦ缁撴灉 /// </summary> [Navigate(NavigateType.OneToMany, nameof(Dt_CheckOrderResult.CheckOrderId), nameof(CheckOrderId))] diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Inbound/Dt_TakeStockOrder.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Inbound/Dt_TakeStockOrder.cs" index 324ac31..3f5b586 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Inbound/Dt_TakeStockOrder.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Inbound/Dt_TakeStockOrder.cs" @@ -50,7 +50,7 @@ /// <summary> /// 鐩樼偣鏄庣粏 /// </summary> - [PropertyValidate("閫�鏂欏崟鏄庣粏", NotNullAndEmpty = true), Navigate(NavigateType.OneToMany, nameof(Dt_TakeStockOrderDetail.TakeStockId), nameof(Id))] + [PropertyValidate("鐩樼偣鏄庣粏", NotNullAndEmpty = true), Navigate(NavigateType.OneToMany, nameof(Dt_TakeStockOrderDetail.TakeStockId), nameof(Id))] public List<Dt_TakeStockOrderDetail> Details { get; set; } } } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Inbound/Dt_TakeStockOrderDetail.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Inbound/Dt_TakeStockOrderDetail.cs" index acbd45d..384267e 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Inbound/Dt_TakeStockOrderDetail.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Inbound/Dt_TakeStockOrderDetail.cs" @@ -23,7 +23,7 @@ /// <summary> /// 鐩樼偣鍗曚富閿� /// </summary> - [SugarColumn(IsNullable = false, ColumnDescription = "閫�鏂欏崟涓婚敭")] + [SugarColumn(IsNullable = false, ColumnDescription = "鐩樼偣鍗曚富閿�")] public int TakeStockId { get; set; } /// <summary> @@ -51,6 +51,24 @@ public string MaterielSpec { get; set; } /// <summary> + /// 鍘熶粨浣� + /// </summary> + [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "鍘熶粨浣�")] + public string LocationCode { get; set; } + + /// <summary> + /// 鐩樼偣鎵樼洏 + /// </summary> + [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "鐩樼偣鎵樼洏")] + public string TakePalletCode { get; set; } + + /// <summary> + /// 鐩樼偣鏄庣粏鐘舵�� + /// </summary> + [SugarColumn(IsNullable = true, ColumnDescription = "鐩樼偣鏄庣粏鐘舵��")] + public int TakeDetalStatus { get; set; } + + /// <summary> /// 鍗曚綅 /// </summary> [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "鍗曚綅")] diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_DictionaryService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_DictionaryService.cs" index f7726e8..601ae7b 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_DictionaryService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_DictionaryService.cs" @@ -1187,13 +1187,14 @@ case "inspectAcceptEnum": { List<object> data = new List<object>(); + { Type type = typeof(InspectAcceptEnum); - List<int> enums = Enum.GetValues(typeof(InspectAcceptEnum)).Cast<int>().ToList(); + List<string> enumNames = Enum.GetNames(typeof(InspectAcceptEnum)).ToList(); int index = 0; - foreach (var item in enums) + foreach (var item in enumNames) { - FieldInfo? fieldInfo = typeof(InspectAcceptEnum).GetField(((InspectAcceptEnum)item).ToString()); + FieldInfo? fieldInfo = typeof(InspectAcceptEnum).GetField((item).ToString()); DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>(); if (description != null) { @@ -1236,6 +1237,32 @@ result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data }; } break; + case "takeStockDetailStatusEnum": + { + List<object> data = new List<object>(); + { + Type type = typeof(TakeStockDetailStatusEnum); + List<int> enums = Enum.GetValues(typeof(TakeStockDetailStatusEnum)).Cast<int>().ToList(); + int index = 0; + foreach (var item in enums) + { + FieldInfo? fieldInfo = typeof(TakeStockDetailStatusEnum).GetField(((TakeStockDetailStatusEnum)item).ToString()); + DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>(); + if (description != null) + { + data.Add(new { key = item.ToString(), value = description.Description }); + } + else + { + data.Add(new { key = item.ToString(), value = item.ToString() }); + } + index++; + } + } + + result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data }; + } + break; } return result; } 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 4f51249..41ebfc6 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" @@ -691,7 +691,8 @@ ReceivedQuantity = item.OriginalQuantity, OrderType = CheckTypeEnum.InspectCheck.ObjToInt(), ReceiveOrderNo = outboundOrder.OrderNo, - LotNo= item.BatchNo, + OrderPalletCode= item.PalletCode, + LotNo = item.BatchNo, Result = CheckAcceptEnum.NotCheckAccept.ToString(), QualifiedQuantity = 0, ReceiveDetailRowNo = item.Id, diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Inbound.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Inbound.cs" index 2a0977a..ae8089e 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Inbound.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Inbound.cs" @@ -16,6 +16,7 @@ using WIDESEA_Common.TaskEnum; using WIDESEA_Common.WareHouseEnum; using WIDESEA_Core; +using WIDESEA_Core.Enums; using WIDESEA_Core.Helper; using WIDESEA_DTO; using WIDESEA_DTO.MES; @@ -60,7 +61,7 @@ { return WebResponseContent.Instance.Error($"鏈壘鍒扮粍鐩樹俊鎭�"); } - if (stockInfo.StockStatus != StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt() && stockInfo.StockStatus != StockStatusEmun.鎵嬪姩缁勭洏鏆傚瓨.ObjToInt() && stockInfo.StockStatus != StockStatusEmun.鎷i�夊畬鎴�.ObjToInt()) + if (stockInfo.StockStatus != StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt() && stockInfo.StockStatus != StockStatusEmun.鎵嬪姩缁勭洏鏆傚瓨.ObjToInt() && stockInfo.StockStatus != StockStatusEmun.鎷i�夊畬鎴�.ObjToInt() && stockInfo.StockStatus != StockStatusEmun.閫佹瀹屾垚.ObjToInt()) { return WebResponseContent.Instance.Error($"璇ユ墭鐩樼姸鎬佷笉姝g‘,涓嶅彲鐢宠鍏ュ簱"); } @@ -134,6 +135,11 @@ stockInfo.StockStatus = StockStatusEmun.鍏ュ簱纭.ObjToInt(); newTask.TaskType = TaskTypeEnum.InPick.ObjToInt(); } + else if (stockInfo.StockStatus == StockStatusEmun.閫佹瀹屾垚.ObjToInt()) + { + stockInfo.StockStatus = StockStatusEmun.鎵嬪姩缁勭洏鍏ュ簱纭.ObjToInt(); + newTask.TaskType = TaskTypeEnum.InQuality.ObjToInt(); + } else { stockInfo.StockStatus = StockStatusEmun.鍏ュ簱纭.ObjToInt(); @@ -162,7 +168,52 @@ return WebResponseContent.Instance.Error(ex.Message); } } - + /// <summary> + /// 鏌ヨ璐ㄦ鏁伴噺 + /// </summary> + /// <param name="palletCode">鎵樼洏鍙�</param> + /// <returns></returns> + public WebResponseContent InQualityConfirm(string palletCode) + { + WebResponseContent content = new WebResponseContent(); + try + { + Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.GetStockInfo(palletCode); + if (stockInfo == null) + { + return content.Error($"鏈壘鍒拌鎵樼洏搴撳瓨淇℃伅"); + } + if (stockInfo.Details.Count<=0) + { + return content.Error($"璇ユ墭鐩樺簱瀛樻槑缁嗕负绌�"); + } + if (stockInfo.StockStatus != StockStatusEmun.閫佹瀹屾垚.ObjToInt()) + { + return content.Error($"璇ユ墭鐩樿繕鏈�佹鍑哄簱瀹屾垚"); + } + Dt_OutStockLockInfo? outStockLockInfo = _outboundRepository.OutboundStockLockInfoRepository.QueryData(x => x.PalletCode == palletCode && x.Status == OutLockStockStatusEnum.鍑哄簱瀹屾垚.ObjToInt() && x.OrderType== OutOrderTypeEnum.Quality.ObjToInt()).OrderByDescending(x=>x.Id).FirstOrDefault(); + if (outStockLockInfo != null) + { + //鑾峰彇瀵瑰簲妫�楠屽崟 + Dt_CheckOrder checkOrder = _checkOrderRepository.QueryFirst(x=>x.ReceiveDetailRowNo== outStockLockInfo.Id && x.CheckOrderStatus==CheckOrderStatusEnum.Checked.ObjToInt()); + if (checkOrder == null) + { + return content.Error($"璇ユ墭鐩橀�佹淇℃伅鏈"); + } + content.OK("鎴愬姛", data:new { stockInfo.Details.FirstOrDefault()?.MaterielCode,checkOrder.ReceivedQuantity,checkOrder.ScrappedQuantity,checkOrder.DefectedQuantity,checkOrder.QualifiedQuantity,stockQuantity= stockInfo.Details.Sum(x=>x.StockQuantity) }) ; + } + else + { + content.Error("璇ユ墭鐩橀�佹鍑哄簱璇︽儏涓嶅瓨鍦�"); + } + } + catch (Exception ex) + { + _unitOfWorkManage.RollbackTran(); + content.Error(ex.Message); + } + return content; + } /// <summary> /// 鍏ョ┖绠� /// </summary> @@ -382,7 +433,7 @@ { return WebResponseContent.Instance.Error($"鏈壘鍒扮粍鐩樹俊鎭�"); } - if (stockInfo.StockStatus != StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt() && stockInfo.StockStatus != StockStatusEmun.鎵嬪姩缁勭洏鏆傚瓨.ObjToInt() && stockInfo.StockStatus != StockStatusEmun.鍑哄簱瀹屾垚.ObjToInt() && stockInfo.StockStatus != StockStatusEmun.鎷i�夊畬鎴�.ObjToInt() && stockInfo.StockStatus != StockStatusEmun.閫�搴�.ObjToInt() && stockInfo.StockStatus != StockStatusEmun.MES閫�搴�.ObjToInt()) + if (stockInfo.StockStatus != StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt() && stockInfo.StockStatus != StockStatusEmun.鎵嬪姩缁勭洏鏆傚瓨.ObjToInt() && stockInfo.StockStatus != StockStatusEmun.鍑哄簱瀹屾垚.ObjToInt() && stockInfo.StockStatus != StockStatusEmun.鎷i�夊畬鎴�.ObjToInt() && stockInfo.StockStatus != StockStatusEmun.閫�搴�.ObjToInt() && stockInfo.StockStatus != StockStatusEmun.MES閫�搴�.ObjToInt() && stockInfo.StockStatus != StockStatusEmun.閫佹瀹屾垚.ObjToInt()) { return WebResponseContent.Instance.Error($"璇ユ墭鐩樼姸鎬佷笉姝g‘,涓嶅彲鐢宠鍏ュ簱"); } @@ -450,6 +501,11 @@ { stockInfo.StockStatus = StockStatusEmun.鍏ュ簱纭.ObjToInt(); newTask.TaskType = TaskTypeEnum.InPick.ObjToInt(); + } + else if (stockInfo.StockStatus == StockStatusEmun.閫佹瀹屾垚.ObjToInt()) + { + stockInfo.StockStatus = StockStatusEmun.鎵嬪姩缁勭洏鍏ュ簱纭.ObjToInt(); + newTask.TaskType = TaskTypeEnum.InQuality.ObjToInt(); } else { @@ -544,8 +600,9 @@ } else if (stockInfo.StockStatus == StockStatusEmun.MES绌烘墭閫�搴�.ObjToInt()) { + Dt_PalletTypeInfo palletTypeInfo = _palletTypeInfoRepository.QueryFirst(x=>x.WarehouseId==stockInfo.WarehouseId && x.PalletType==stockInfo.PalletType); //todo 灏忔墭鐩樻殏鏃舵湭鍚敤 - if (stockInfo.PalletType == PalletTypeEnum.MediumPallet.ObjToInt()) + if (palletTypeInfo.LocaitonCount==2) { newTask.TaskType = TaskTypeEnum.MesPalletLargeReturn.ObjToInt(); } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Outbound.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Outbound.cs" index f3e953b..e62bc46 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Outbound.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Outbound.cs" @@ -20,6 +20,7 @@ using WIDESEA_Core.CodeConfigEnum; using Microsoft.AspNetCore.Mvc; using WIDESEA_DTO.ERP; +using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; namespace WIDESEA_TaskInfoService { @@ -78,6 +79,102 @@ return content; } /// <summary> + /// 閫夊畾搴撳瓨鐢熸垚鐩樼偣鍗曞嚭搴� + /// </summary> + /// <param name="id"></param> + /// <returns></returns> + public WebResponseContent TakeOutbound(List<StockViewDTO> stockViews) + { + WebResponseContent content = new WebResponseContent(); + try + { + if (stockViews.Select(x=>x.WarehouseId).Distinct().Count()>=2) + { + return content.Error($"璇烽�夋嫨鍚屼竴浠撳簱搴撳瓨杩涜鐩樼偣"); + } + List<int> ids = stockViews.Select(x => x.StockId).ToList(); + //鑾峰彇搴撳瓨 + List<Dt_StockInfo> stockInfos = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => ids.Contains(x.Id)).Includes(x => x.Details).ToList(); + if (stockInfos.Count!= stockViews.Count) + { + StockViewDTO? stockViewDTO = stockViews.FirstOrDefault(x=> !stockInfos.Select(x=>x.PalletCode).ToList().Contains(x.PalletCode)); + return content.Error($"鏈壘鍒皗stockViewDTO?.PalletCode}搴撳瓨"); + } + //鑾峰彇璐т綅 + List<string> locStrs = stockInfos.Select(x => x.LocationCode).ToList(); + List<Dt_LocationInfo> locationInfos =_basicRepository.LocationInfoRepository.QueryData(x=> locStrs.Contains(x.LocationCode)); + if (stockInfos.Count != locationInfos.Count) + { + string? locStr = locStrs.FirstOrDefault(x=> !locationInfos.Select(x => x.LocationCode).ToList().Contains(x)); + return content.Error($"鏈壘鍒皗locStr}璐т綅鏁版嵁"); + } + Dt_TakeStockOrder takeStockOrder = new Dt_TakeStockOrder() + { + WarehouseId = stockInfos.FirstOrDefault().WarehouseId, + TakeStockStatus = TakeStockStatusEnum.鐩樼偣涓�.ObjToInt(), + Details = new List<Dt_TakeStockOrderDetail>() + }; + foreach (var item in stockInfos) + { + if (item.Details.Count<=0) + { + return content.Error($"鏈壘鍒皗item.PalletCode}搴撳瓨鏄庣粏鏁版嵁"); + } + Dt_LocationInfo? locationInfo = locationInfos.FirstOrDefault(x=>x.LocationCode==item.LocationCode); + if (locationInfo != null && (locationInfo.EnableStatus == EnableStatusEnum.OnlyOut.ObjToInt() || locationInfo.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && locationInfo.LocationStatus == LocationStatusEnum.InStock.ObjToInt() && item.StockStatus == StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt()) + { + //鍒涘缓鏄庣粏 + Dt_TakeStockOrderDetail takeStockOrderDetail = new Dt_TakeStockOrderDetail() + { + MaterielCode= item.Details.FirstOrDefault().MaterielCode, + MaterielName=item.Details.FirstOrDefault().MaterielName ?? "鏃犵墿鏂欏悕绉�", + BatchNo=item.Details.FirstOrDefault().BatchNo, + MaterielSpec=item.Details.FirstOrDefault().MaterielSpec ?? "鏃犵墿鏂欒鏍�", + LocationCode=item.LocationCode, + TakePalletCode=item.PalletCode, + TakeDetalStatus=TakeStockDetailStatusEnum.鐩樼偣鍑哄簱涓�.ObjToInt(), + Unit=item.Details.FirstOrDefault().Unit ?? "鏃犲崟浣�", + SysQty=item.Details.Sum(x=>x.StockQuantity), + Qty=0 + }; + takeStockOrder.Details.Add(takeStockOrderDetail); + } + else + { + content.Error($"璐т綅鎴栧簱瀛樼姸鎬佷笉婊¤冻鍑哄簱鏉′欢"); + } + } + List<Dt_Task> tasks = GetTasks(stockInfos, TaskTypeEnum.OutInventory); + if (tasks == null || tasks.Count <= 0) + { + return content.Error($"鐢熸垚浠诲姟澶辫触"); + } + stockInfos.ForEach(x => + { + x.StockStatus = StockStatusEmun.鍑哄簱閿佸畾.ObjToInt(); + }); + LocationStatusEnum locationStatus = LocationStatusEnum.Lock; + _unitOfWorkManage.BeginTran(); + //鏇存柊搴撳瓨鐘舵�� + _stockRepository.StockInfoRepository.UpdateData(stockInfos); + _inboundRepository.TakeStockOrderRepository.Db.InsertNav(takeStockOrder).Include(x=>x.Details).ExecuteCommand(); + //鏂板缓浠诲姟 + BaseDal.AddData(tasks); + //鍔犲叆璐т綅鍙樺姩璁板綍 + _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfos, locationStatus, LocationChangeType.OutboundAssignLocation, "", tasks?.Select(x => x.TaskNum).ToList()); + _basicService.LocationInfoService.Repository.UpdateLocationStatus(locationInfos, locationStatus); + _unitOfWorkManage.CommitTran(); + PushTasksToWCS(tasks); + content.OK(); + } + catch (Exception ex) + { + _unitOfWorkManage.RollbackTran(); + content.Error(ex.Message); + } + return content; + } + /// <summary> /// 鐢熸垚鎴愬搧鍑哄簱浠诲姟 /// </summary> /// <param name="ProOutNo">鍑哄簱璁㈠崟鍙�</param> diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs" index f828daa..21ebc59 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs" @@ -42,7 +42,14 @@ { return Service.RequestInboundTask(saveModel); } - + /// <summary> + /// 鏌ヨ璐ㄦ鏁伴噺 + /// </summary> + [HttpPost, HttpGet, Route("InQualityConfirm"), AllowAnonymous] + public WebResponseContent InQualityConfirm(string palletCode) + { + return Service.InQualityConfirm(palletCode); + } /// <summary> /// 绌虹鍏ュ簱 /// </summary> @@ -385,5 +392,13 @@ { return Service.GetZHMesMaterialLot(materialLot); } + /// <summary> + /// 閫夊畾搴撳瓨鐢熸垚鐩樼偣鍗曞嚭搴� + /// </summary> + [HttpPost, Route("TakeOutbound"), AllowAnonymous] + public WebResponseContent TakeOutbound([FromBody] List<StockViewDTO> stockViews) + { + return Service.TakeOutbound(stockViews); + } } } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json" index 8afbe7f..f89c8ff 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json" @@ -6,7 +6,7 @@ "Microsoft.AspNetCore": "Warning" } }, - "dics": "inOrderType,outOrderType,inboundState,createType,enableEnum,enableStatusEnum,locationStatusEnum,locationTypeEnum,taskTypeEnum,taskStatusEnum,outboundStatusEnum,orderDetailStatusEnum,stockStatusEmun,stockChangeType,outStockStatus,receiveOrderTypeEnum,authorityScope,authorityScopes,locationChangeType,warehouses,suppliers,taskType,receiveStatus,purchaseType,purchaseOrderStatus,printStatus,returnStatus,returnType,outLockStockStatusEnum,checkOrderStatusEnum,checkUploadEnum,checkAcceptEnum,proStockAttributeEnum,materielSourceTypeEnum,materielTypeEnum,customerOutRuleEnum,proScrapStatusEnum,checkTypeEnum,inspectAcceptEnum,inspectResultEnum", + "dics": "inOrderType,outOrderType,inboundState,createType,enableEnum,enableStatusEnum,locationStatusEnum,locationTypeEnum,taskTypeEnum,taskStatusEnum,outboundStatusEnum,orderDetailStatusEnum,stockStatusEmun,stockChangeType,outStockStatus,receiveOrderTypeEnum,authorityScope,authorityScopes,locationChangeType,warehouses,suppliers,taskType,receiveStatus,purchaseType,purchaseOrderStatus,printStatus,returnStatus,returnType,outLockStockStatusEnum,checkOrderStatusEnum,checkUploadEnum,checkAcceptEnum,proStockAttributeEnum,materielSourceTypeEnum,materielTypeEnum,customerOutRuleEnum,proScrapStatusEnum,checkTypeEnum,inspectAcceptEnum,inspectResultEnum,takeStockDetailStatusEnum", "AllowedHosts": "*", "ConnectionStringsEncryption": false, "MainDB": "DB_WIDESEA", //褰撳墠椤圭洰鐨勪富搴擄紝鎵�瀵瑰簲鐨勮繛鎺ュ瓧绗︿覆鐨凟nabled蹇呴』涓簍rue diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages.json" "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages.json" index 913a96b..f5ebd1c 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages.json" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages.json" @@ -65,6 +65,13 @@ } }, { + "path": "pages/stash/InspectIn", + "style": { + "navigationBarTitleText": "閫佹鍏ュ簱", + "enablePullDownRefresh": false + } + }, + { "path": "pages/stash/AGVFinish", "style": { "navigationBarTitleText": "AGV瀹屾垚", diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/InspectIn.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/InspectIn.vue" new file mode 100644 index 0000000..ae655d0 --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/InspectIn.vue" @@ -0,0 +1,612 @@ +<template> + <view> + <uni-segmented-control style="margin-top: 15rpx;" :current="current" :values="items" @clickItem="onClickItem"> + </uni-segmented-control> + <view class="content"> + <!-- <view v-if="current === 0" class="headerstyle"> + <view class="itemstyle"> + <uni-forms label-width="180"> + <uni-forms-item label="鎵樼洏鏉$爜:"> + <uni-easyinput type="text" placeholder="璇锋壂鎻忔墭鐩樻潯鐮�" ref='midInput' :focus="!focus" + v-model="barcode" @input="barcodeInput" /> + </uni-forms-item> + <uni-forms-item label="鍐呯鏍囩:"> + <uni-easyinput type="text" placeholder="璇锋壂鎻忓唴绠辨爣绛�" ref='midInput' :focus="focus" + v-model="materSn" @input="snInput" /> + </uni-forms-item> + <uni-forms-item :label="Testlabel" v-if="Test"> + <uni-easyinput type="text" :placeholder="Testplaceholder" ref='midInput' + v-model="Initiallife" /> + </uni-forms-item> + + <uni-forms-item> + <button @click="submit" type="primary" size="default" style="margin-top: 2%;">缁勭洏</button> + </uni-forms-item> + </uni-forms> + <uni-list> + + <uni-list-item direction="column" v-for="(item,index) in matInfos" :key="index"> + <template v-slot:body> + <view class="uni-list-box"> + <uni-icons type="trash" size="22" style="position: absolute;right: 5%;" + @click="deleteList(index)"> + </uni-icons> + <view class="uni-content"> + <view class="uni-title-sub uni-ellipsis-2">閲囪喘鍗曞彿锛歿{item.purchaseOrderNo}}</view> + <view class="uni-note">鐗╂枡缂栫爜锛歿{item.materielCode}}</view> + <view class="uni-note">鎵规鍙凤細{{item.lotNo}}</view> + <view class="uni-note">鏁伴噺锛歿{item.quantity}}</view> + <view class="uni-note">鐢熶骇鏃ユ湡锛歿{item.productionDate}}</view> + <view class="uni-note">鏈夋晥鏈燂細{{item.effectiveDate}}</view> + </view> + </view> + </template> + </uni-list-item> + </uni-list> + </view> + </view> --> + <view v-if="current === 0" class="headerstyle"> + <view class="itemstyle"> + <uni-forms label-width="120"> + <uni-forms-item label="鎵樼洏鏉$爜"> + <uni-easyinput type="text" :focus="!addressFocus" v-model="inboundBarcode" + placeholder="璇锋壂鎻忔墭鐩樻潯鐮�" ref='midInput' @confirm="inputChangebarcode" /> + </uni-forms-item> + <uni-forms-item label="鍦板潃鏉$爜"> + <uni-easyinput type="text" v-model="address" :disabled="addressdisabled" + placeholder="璇锋壂鎻忓湴鍧�鏉$爜" ref='midInput' :focus="addressFocus" /> + </uni-forms-item> + <uni-forms-item> + <button @click="inbound" type="primary" size="default" style="margin-top: 2%;">鍏ュ簱纭</button> + </uni-forms-item> + </uni-forms> + </view> + <view> + <view class="uni-content" v-if="checkStockInfo" style="width: 500rpx; margin: 0px auto;"> + <view class="uni-title-sub uni-ellipsis-2" style="font-size: 16px;">鐗╂枡缂栧彿锛歿{checkStockInfo.materielCode}}</view> + <view class="uni-note" style="font-size: 16px;">妫�楠屾暟閲忥細{{checkStockInfo.receivedQuantity}}</view> + <view class="uni-note" style="font-size: 16px;">鎶ュ簾鏁伴噺锛歿{checkStockInfo.scrappedQuantity}}</view> + <view class="uni-note" style="font-size: 16px;">鐗归噰鏁伴噺锛歿{checkStockInfo.defectedQuantity}}</view> + <view class="uni-note" style="font-size: 16px;">鍚堟牸鏁伴噺锛歿{checkStockInfo.qualifiedQuantity}}</view> + <view class="uni-note" style="font-size: 16px;">搴撳瓨鏁伴噺锛歿{checkStockInfo.stockQuantity}}</view> + </view> + </view> + </view> + <view v-if="current === 1" class="headerstyle"> + <view class="itemstyle"> + <uni-forms label-width="180"> + <uni-forms-item label="鍐呯鏍囩:"> + <uni-easyinput type="text" placeholder="璇锋壂鎻忓唴绠辨爣绛�" ref='midInput' :focus="pkfocus" + v-model="pkmaterSn" @input="pksnInput" /> + </uni-forms-item> + <uni-forms-item> + <button @click="pksubmit" type="primary" size="default" style="margin-top: 2%;">鍏ュ钩搴�</button> + </uni-forms-item> + </uni-forms> + <uni-list> + <uni-list-item direction="column" v-for="(item,index) in pkmatInfos" :key="index"> + <template v-slot:body> + <view class="uni-list-box"> + <uni-icons type="trash" size="22" style="position: absolute;right: 5%;" + @click="pkdeleteList(index)"> + </uni-icons> + <view class="uni-content"> + <view class="uni-title-sub uni-ellipsis-2">閲囪喘鍗曞彿锛歿{item.purchaseOrderNo}}</view> + <view class="uni-note">鐗╂枡缂栫爜锛歿{item.materielCode}}</view> + <view class="uni-note">鎵规鍙凤細{{item.lotNo}}</view> + <view class="uni-note">鏁伴噺锛歿{item.quantity}}</view> + <view class="uni-note">鐢熶骇鏃ユ湡锛歿{item.productionDate}}</view> + <view class="uni-note">鏈夋晥鏈燂細{{item.effectiveDate}}</view> + </view> + </view> + </template> + </uni-list-item> + </uni-list> + </view> + </view> + </view> + <u-toast ref="uToast" /> + </view> +</template> + +<script> + const innerAudioContext = uni.createInnerAudioContext(); + export default { + data() { + return { + items: ['鍏ュ簱'], //, '鍗曟嵁淇℃伅', '瑙g洏' + current: 0, + matTotal: [], + matInfos: [], + orderNo: "", + label: "", + orderInfo: [], + focus: false, + pkfocus: false, + barcode: "", + materSn: "", + Initiallife: 1000, + sns: [], + sn: "", + addressFocus: false, + inboundBarcode: "", + address: "", + check: true, + value: "", + matInfo: [], + value2: "", + matTotals: [], + warehouseId: "", + Test: false, + Testlabel: "", + Testplaceholder: "", + Testcheck: false, + Summmary: 0, + stockInfoDetail: [], + addressdisabled: false, + pksns: [], + pkmaterSn: "", + pkmatInfos: [], + checkStockInfo:null + } + }, + onShow() {}, + onLoad(res) { + this.focus = false; + this.addressFocus = false; + this.orderNo = res.orderNo; + this.warehouseId = res.warehouseId; + if (this.warehouseId == 6) { //娴嬭瘯鏋朵粨搴撳尯ID + this.Test = true; + this.Testlabel = "鍒濆瀵垮懡:"; + this.Testplaceholder = "璇疯緭鍏ュ垵濮嬪鍛�"; + } else if (this.warehouseId == 2) { //娌瑰ⅷ浠撳簱鍖篒D + this.Test = true; + this.Testlabel = "鏁伴噺:"; + this.Testplaceholder = "璇疯緭鍏ユ暟閲�"; + this.Initiallife = 16; + } else if (this.warehouseId == 5) { //杈呮枡浠撳簱鍖篒D + this.address = "8005"; + this.items.push("鍏ュ钩搴�"); + this.items[1] = "鍏ョ珛搴�"; + this.address = "8005"; + } else if (this.warehouseId == 3) { //杈呮枡浠撳簱鍖篒D + this.address = "1011"; + this.addressdisabled = true; + } + this.label = "鍗曟嵁缂栧彿锛�" + this.orderNo; + this.getData(); + }, + methods: { + // voiceSpeech(src) { + // innerAudioContext.src = src; // '../../static/success.mp3'; + // innerAudioContext.play(); + // }, + //wms鍏ュ钩搴� + pksubmit() { + if (this.pkmatInfos.length == 0) { + this.$refs.uToast.show({ + title: "璇锋壂鎻忓唴绠辨爣绛�", + type: 'error' + }) + return; + } + this.$u.post('/api/InboundOrder/WMSInPinKu?warehouseId=' + this.warehouseId, this + .pksns).then(res => { + debugger + if (res.status) { + this.$refs.uToast.show({ + title: "鍏ュ簱鎴愬姛", + type: "success" + }) + this.focus = false; + this.pkmatInfos = []; + this.pksns = []; + } else { + this.$refs.uToast.show({ + title: res.message, + type: "error" + }) + } + }) + }, + pksnInput() { + this.$nextTick(() => { + if (this.pkmaterSn != "") { + this.focus = false; + var matSn = this.pkmaterSn; + setTimeout(() => { + this.pkmaterSn = ""; + }, 10); + this.$u.post('/api/MaterielInfo/CodeAnalysis?serNum=' + matSn, {}).then((res) => { + if (res.status) { + this.pksns.push(res.data.serialNumber); + this.pkmatInfos.push(res.data); + if (!res.status) { + this.$refs.uToast.show({ + title: res.message, + type: "error" + }) + // setTimeout(() => { + // this.voiceSpeech('../../static/fail.mp3'); + // }, 100); + return; + } + // setTimeout(() => { + // this.voiceSpeech('../../static/success.mp3'); + // }, 100); + return; + } else { + this.$refs.uToast.show({ + title: res.message, + type: "error" + }) + // setTimeout(() => { + // this.voiceSpeech('../../static/fail.mp3'); + // }, 100); + } + }) + } + }) + }, + //瑙g洏 + releasebox() { + if (this.value.length == 0) { + this.$refs.uToast.show({ + title: "璇锋壂鐮�", + type: "error" + }) + return; + } + var param; + var matInfo = this.value.split('|'); + if (matInfo.length == 7) { + param = { + MainData: { + "innerCode": this.value + } + } + } else { + param = { + MainData: { + "barcode": this.value + } + } + } + this.$u.post('/api/StockOperate/ReleaseAllBox', param).then(resdt => { + if (resdt.status) { + uni.$showMsg('瑙g洏鎴愬姛!') + this.value = ""; + this.matInfo = []; + this.matTotals = []; + this.value2 = ""; + } else { + this.$refs.uToast.show({ + title: resdt.message, + type: "error" + }) + } + }) + }, + releaseboxInput() { + this.$nextTick(() => { + if (this.value.length == 0) { + return; + } + var matInfo = this.value.split('|'); + this.matInfo = []; + if (matInfo.length == 7) { + this.$u.post('/api/StockOperate/GetStockInfoByInnerCode', { + MainData: { + "innerCode": this.value + } + }).then(res => { + if (res.status) { + this.matInfo = res.data.stockInfo; + this.matTotals = res.data.stockTotal; + this.value2 = res.data.barcode; + } else { + this.$refs.uToast.show({ + title: res.message, + type: "error" + }) + } + }) + } else { + this.$u.post('/api/StockOperate/GetStockInfoByBarcode', { + MainData: { + "barcode": this.value + } + }).then(res => { + if (res.status) { + this.matInfo = res.data.stockInfo; + this.matTotals = res.data.stockTotal; + this.value2 = res.data.barcode; + } else { + this.$refs.uToast.show({ + title: res.message, + type: "error" + }) + } + }) + } + }) + }, + + updateFocus() { + debugger + this.$nextTick(() => { + this.materSn = ''; + if (!this.focus) { + this.focus = true; + } + }); + }, + barcodeFocus() { + debugger + this.barcode = ''; + if (this.focus) { + this.focus = false; + } + }, + getData() { + var postData = { + MainData: { + orderNo: this.orderNo + }, + } + this.$u.post('/api/InboundOrderDetail/GetInboundOrderDetails', postData).then((res) => { + if (res.status) { + this.orderInfo = res.data; + if (this.orderInfo.length > 3) { + this.loadVisible = true; + } + } + }) + }, + onClickItem(e) { + this.focus = false; + this.addressFocus = false; + if (this.current !== e.currentIndex) { + this.current = e.currentIndex; + if (this.current == 2) { + this.getData(); + } + } + }, + barcodeInput() { + this.$nextTick(function(x) { + if (this.barcode.length > 0) { + // if (this.barcode.substring(0, 1) == 'A' || this.barcode.substring(0, 2) == 'TP') { + this.focus = true; + // } else { + // this.$refs.uToast.show({ + // title: "鎵爜閿欒,璇锋壂鎻忔墭鐩樼爜", + // type: "error" + // }) + // } + } + }) + }, + snInput() { + this.$nextTick(() => { + if (this.warehouseId == 6 || this.warehouseId == 2 || this.warehouseId == 3) { + if (this.sns.length > 0) { + this.sns = []; + } + } + if (this.materSn != "") { + this.focus = false; + if (this.warehouseId == 11) { + this.materSn = this.materSn.replace(/,SC.*/, ''); + } + if (this.materSn.split(',').length != 6) { + this.materSn = ""; + return; + } + var matSn = this.materSn; + //setTimeout(() => { + this.materSn = ""; + //}, 10); + this.$u.post('/api/MaterielInfo/CodeAnalysis?serNum=' + matSn, {}).then((res) => { + this.Testcheck = false; + if (res.status) { + this.sns.push(res.data.serialNumber); + if (this.warehouseId == 6 || this.warehouseId == 2 || this.warehouseId == + 3) { + if (this.matInfos.length > 0) { + this.matInfos = []; + } + } + this.matInfos.push(res.data); + if (!res.status) { + this.$refs.uToast.show({ + title: res.message, + type: "error" + }) + // setTimeout(() => { + // this.voiceSpeech('../../static/fail.mp3'); + // }, 100); + return; + } + // setTimeout(() => { + // this.voiceSpeech('../../static/success.mp3'); + // }, 100); + } else { + this.$refs.uToast.show({ + title: res.message, + type: "error" + }) + // setTimeout(() => { + // this.voiceSpeech('../../static/fail.mp3'); + // }, 100); + } + }) + } + }) + }, + inbound() { + if (this.inboundBarcode == "") { + this.$refs.uToast.show({ + title: "璇锋壂鎻忔墭鐩樻潯鐮�", + type: "error" + }) + return; + } + if (this.address == "") { + this.$refs.uToast.show({ + title: "璇锋壂鎻忓湴鍧�鏉$爜", + type: "error" + }) + return; + } + var postData = { + MainData: { + "barcode": this.inboundBarcode, + "startPoint": this.address, + "warehouseId": this.warehouseId + } + } + this.$u.post('/api/Task/RequestInboundTask', postData).then(res => { + if (res.status) { + this.inboundBarcode = ""; + if (this.warehouseId != 5 && this.warehouseId != 3) this.address = ""; + this.checkStockInfo=null; + setTimeout(() => { + this.addressFocus = false; + this.$refs.uToast.show({ + title: "鎴愬姛", + type: "success" + }) + }, 200); + } else { + this.$refs.uToast.show({ + title: res.message, + type: "error" + }) + } + }).catch(err => { + this.$refs.uToast.show({ + title: err.message, + type: "error" + }) + }) + }, + inputChangebarcode() { + this.addressFocus = false; + this.$nextTick(function(x) { + if (this.inboundBarcode != '') { + this.addressFocus = true; + } + }) + this.$nextTick(function(x) { + if (this.inboundBarcode != '') { + this.$u.post('/api/Task/InQualityConfirm?palletCode='+this.inboundBarcode, {}).then(res => { + // this.stockInfo = []; + this.checkStockInfo=null; + if (res.status) { + // this.stockInfo = res.data, + this.checkStockInfo = res.data; + } else { + this.inboundBarcode=''; + this.$refs.uToast.show({ + // title: "鏈壘鍒版墭鐩樹俊鎭�", + title: res.message, + type: "error" + }) + } + }) + } + }) + }, + deleteList(res) { + this.matInfos.splice(res, 1); + this.sns.splice(res, 1); + }, + submit() { + if (this.barcode == "") { + this.$refs.uToast.show({ + title: "璇锋壂鎻忔墭鐩樻潯鐮�", + type: 'error' + }) + return; + } + if (this.matInfos.length == 0) { + this.$refs.uToast.show({ + title: "璇锋壂鎻忓唴绠辨爣绛�", + type: 'error' + }) + return; + } + if (this.Test) { + if (!this.Testcheck) { + this.Testcheck = true; + if (this.warehouseId == 2) { + this.$refs.uToast.show({ + title: "璇风‘璁ゆ暟閲�", + type: 'error' + }) + } else if (this.warehouseId == 6) { + this.$refs.uToast.show({ + title: "璇风‘璁ゅ垵濮嬪鍛�", + type: 'error' + }) + } + return; + } + } + if (this.warehouseId == 2) { //娌瑰ⅷ浠撳簱鍖篒D + this.sn = this.sns[0]; + for (var i = 0; i < this.Initiallife - 1; i++) { + this.sns.push(this.sn); + } + } + let url = 'palletCode=' + this.barcode + '&initiallife=' + this.Initiallife + '&warehouseId=' + this + .warehouseId; + + this.$u.post('/api/InboundOrder/ManualMaterielGroup?' + url, this.sns).then(res => { + this.Testcheck = false; + if (res.status) { + this.$refs.uToast.show({ + title: "缁勭洏鎴愬姛", + type: "success" + }) + this.focus = false; + this.barcode = ""; + this.matInfos = []; + this.sns = []; + this.matTotal = []; + } else { + this.$refs.uToast.show({ + title: res.message, + type: "error" + }) + } + }) + } + } + } +</script> + +<style lang="scss"> + @import '@/common/uni-ui.scss'; + + .content { + display: flex; + height: 150px; + } + + .content-text { + font-size: 14px; + color: #666; + } + + .itemstyle { + margin-top: 30px; + margin-left: 5%; + } + + .headerstyle { + width: 90%; + } +</style> \ No newline at end of file diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/boxing.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/boxing.vue" index ead7682..06517fe 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/boxing.vue" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/boxing.vue" @@ -8,11 +8,11 @@ <uni-forms label-width="180"> <uni-forms-item label="鎵樼洏鏉$爜:"> <uni-easyinput type="text" placeholder="璇锋壂鎻忔墭鐩樻潯鐮�" ref='midInput' :focus="!focus" - v-model="barcode" @input="barcodeInput" /> + v-model="barcode" @confirm="barcodeInput" /> </uni-forms-item> <uni-forms-item label="鍐呯鏍囩:"> <uni-easyinput type="text" placeholder="璇锋壂鎻忓唴绠辨爣绛�" ref='midInput' :focus="focus" - v-model="materSn" @input="snInput" /> + v-model="materSn" @confirm="snInput" /> </uni-forms-item> <uni-forms-item :label="Testlabel" v-if="Test"> <uni-easyinput type="text" :placeholder="Testplaceholder" ref='midInput' @@ -61,7 +61,7 @@ <uni-forms label-width="120"> <uni-forms-item label="鎵樼洏鏉$爜"> <uni-easyinput type="text" :focus="!addressFocus" v-model="inboundBarcode" - placeholder="璇锋壂鎻忔墭鐩樻潯鐮�" ref='midInput' @input="inputChangebarcode" /> + placeholder="璇锋壂鎻忔墭鐩樻潯鐮�" ref='midInput' @confirm="inputChangebarcode" /> </uni-forms-item> <uni-forms-item label="鍦板潃鏉$爜"> <uni-easyinput type="text" v-model="address" :disabled="addressdisabled" @@ -105,7 +105,7 @@ <uni-forms label-width="180"> <uni-forms-item label="鍐呯鏍囩:"> <uni-easyinput type="text" placeholder="璇锋壂鎻忓唴绠辨爣绛�" ref='midInput' :focus="pkfocus" - v-model="pkmaterSn" @input="pksnInput" /> + v-model="pkmaterSn" @confirm="pksnInput" /> </uni-forms-item> <uni-forms-item> <button @click="pksubmit" type="primary" size="default" style="margin-top: 2%;">鍏ュ钩搴�</button> diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/raworderboxing.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/raworderboxing.vue" index 18d1f65..ad79014 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/raworderboxing.vue" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/raworderboxing.vue" @@ -10,11 +10,11 @@ </uni-forms-item> <uni-forms-item label="鎵樼洏鏉$爜:"> <uni-easyinput type="text" placeholder="璇锋壂鎻忔墭鐩樻潯鐮�" ref='midInput' :focus="!focus" - v-model="barcode" @input="barcodeInput" /> + v-model="barcode" @confirm="barcodeInput" /> </uni-forms-item> <uni-forms-item label="鍐呯鏍囩:"> <uni-easyinput type="text" placeholder="璇锋壂鎻忓唴绠辨爣绛�" ref='midInput' :focus="focus" - v-model="materSn" @input="snInput" /> + v-model="materSn" @confirm="snInput" /> </uni-forms-item> <uni-forms-item :label="Testlabel" v-if="Test"> @@ -69,7 +69,7 @@ <uni-forms label-width="120"> <uni-forms-item label="鎵樼洏鏉$爜"> <uni-easyinput type="text" :focus="!addressFocus" v-model="inboundBarcode" - placeholder="璇锋壂鎻忔墭鐩樻潯鐮�" ref='midInput' @input="inputChangebarcode" /> + placeholder="璇锋壂鎻忔墭鐩樻潯鐮�" ref='midInput' @confirm="inputChangebarcode" /> </uni-forms-item> <uni-forms-item label="鍦板潃鏉$爜"> <uni-easyinput type="text" v-model="address" :disabled="addressdisabled" @@ -107,7 +107,7 @@ <uni-forms label-width="180"> <uni-forms-item label="鍐呯鏍囩:"> <uni-easyinput type="text" placeholder="璇锋壂鎻忓唴绠辨爣绛�" ref='midInput' :focus="!pkfocus" - v-model="pkmaterSn" @input="pksnInput" /> + v-model="pkmaterSn" @confirm="pksnInput" /> </uni-forms-item> <uni-forms-item> diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/receiveorderoutbound.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/receiveorderoutbound.vue" index a74b0fd..2603ece 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/receiveorderoutbound.vue" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/receiveorderoutbound.vue" @@ -9,7 +9,7 @@ <!-- <uni-forms-item label="鍗曟嵁绫诲瀷锛氱敓浜ч鏂欏崟" style="margin-top: -20px;"></uni-forms-item> --> <uni-forms-item label="鍐呯鐮侊細" style="margin-top: -20px;"> <uni-easyinput type="text" placeholder="璇锋壂鎻忓唴绠辩爜" ref='midInput' :focus="!focus" - v-model="innerCode" @input="innercodeInput" /> + v-model="innerCode" @confirm="innercodeInput" /> </uni-forms-item> <uni-forms-item :label="PurchaseOrderNo" style="margin-top: -20px;"></uni-forms-item> <uni-forms-item :label="matCode" style="margin-top: -20px;"></uni-forms-item> -- Gitblit v1.9.3