ÏîÄ¿´úÂë/WIDESEA_WMSClient/src/extension/outbound/extend/EmptyTrayOutbound.vue
@@ -4,7 +4,10 @@ <el-form ref="form" :model="form" label-width="90px"> <el-form-item label="åºåºåºå:"> <el-select v-model="locationType" placeholder="è¯·éæ©åºåºåºå"> <el-option v-for="item in locationTypes" :key="item.locationType" :label="item.locationTypeDesc.toString()" <el-option v-for="item in locationTypes" :key="item.locationType" :label="item.locationTypeDesc.toString()" :value="item.locationType"> </el-option> </el-select> @@ -12,17 +15,34 @@ </el-form> <el-form ref="form" :model="form" label-width="90px"> <el-form-item label="åºåºæ°é:"> <el-input-number v-model="num" :min="1" :max="999" :controls="true" placeholder="è¯·éæ©åºåºæ°é" style="width: 100%;"></el-input-number> <el-input-number v-model="num" :min="1" :max="999" :controls="true" placeholder="è¯·éæ©åºåºæ°é" style="width: 100%;"> </el-input-number> </el-form-item> </el-form> </template> <template #footer> <div> <el-button type="danger" size="small" plain @click="submit"> <!-- æ·»å loadingç¶æådisabled屿§ --> <el-button type="danger" size="small" plain @click="submit" :loading="isSubmitting" :disabled="isSubmitting"> <i class="el-icon-check">确认</i> </el-button> <el-button size="small" type="primary" plain @click="() => { this.show = false }"> <el-button size="small" type="primary" plain @click="() => { this.show = false }"> <i class="el-icon-close">å ³é</i> </el-button> </div> @@ -42,6 +62,8 @@ show: false, locationTypes: [], locationType: "", // æ°å¢æäº¤ç¶ææ è¯ isSubmitting: false } }, methods: { @@ -50,6 +72,15 @@ this.getData(); }, submit() { // 1. éªè¯å¿ 填项 if (!this.locationType) { this.$message.warning('è¯·éæ©åºåºåºå'); return; } // 2. 设置æäº¤ç¶æä¸ºtrueï¼ç¦ç¨æé® this.isSubmitting = true; this.$emit('parentCall', ($vue) => { this.http.post(`/api/Task/PalletOutboundTask?num=${this.num}&locationType=${this.locationType}`, {}, 'æ°æ®å¤çä¸...') .then((x) => { @@ -61,9 +92,17 @@ $vue.refresh(); } }) .catch((error) => { // æè·è¯·æ±å¼å¸¸ï¼æç¤ºç¨æ· this.$message.error('请æ±å¤±è´¥ï¼è¯·ç¨åéè¯'); console.error('æäº¤å¤±è´¥:', error); }) .finally(() => { // 3. 请æ±å®æï¼æå/失败ï¼åéç½®æäº¤ç¶æ this.isSubmitting = false; }); }) }, getData() { this.http.post("api/LocationInfo/GetLocationTypes", null, "æ¥è¯¢ä¸") .then((x) => { ÏîÄ¿´úÂë/WIDESEA_WMSClient/src/views/outbound/outboundOrder.vue
@@ -206,6 +206,13 @@ align: "left" }, { field: "departmentName", title: "æçº¿åç§°", type: "string", width: 120, align: "left" }, { field: "departmentCode", title: "ä¿®æ¹æ¶é´", type: "string", ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_BasicService/LocationInfoService.cs
@@ -116,7 +116,7 @@ private readonly static object _locker = new object(); static List<LocationCache> locationCaches = new List<LocationCache>(); private int locationCacheTime = 20; private int locationCacheTime = 10; /// <summary> /// /// </summary> ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_BasicService/MESOperation/FeedbackMesService.cs
@@ -109,8 +109,16 @@ { if (returnRecords.Count() == returnRecords.Count(x => x.ReturnStatus == 1)) { if(outboundOrder.OrderStatus != OutOrderStatusEnum.åºåºå®æ.ObjToInt()) { outboundOrder.ReturnToMESStatus = 3; } else { outboundOrder.ReturnToMESStatus = 1; } } else if (returnRecords.Count(x => x.ReturnStatus == 2) > 0) { outboundOrder.ReturnToMESStatus = 4; ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_DTO/Outbound/OutboundOrderAddDTO.cs
@@ -75,6 +75,8 @@ public int operationType { get; set; } public string lineName { get; set; } public List<OutBoundDetailsModel> details { get; set; } } ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_InboundService/InboundService.cs
@@ -167,7 +167,11 @@ { return content.Error($"该æçç»çä»åºä¸º{stockInfo.Details.FirstOrDefault()?.WarehouseCode}ä¸å½åä»åº{palletDto.WarehouseType}ä¸ä¸è´ï¼ä¸å 许ç»ç"); } var isWarehouse = _inboundOrderDetailRepository.QueryFirst(x => x.OrderId == inboundOrder.Id && !string.IsNullOrEmpty(x.WarehouseCode)); if (isWarehouse != null && inboundOrder.BusinessType == "11" && isWarehouse.WarehouseCode != palletDto.WarehouseType) { return content.Error($"ä¸ä¸ªéè´åæ®éé¢ä¸å 许ç»ç两个ä»åºï¼è¯·éæ°éæ©ä»åºï¼ä¸ä¸ä¸ªç»çä»åºä¸º{isWarehouse.WarehouseCode}"); } if (!_locationInfoService.QueryLocationCount(Convert.ToInt32(palletDto.locationType))) { return content.Error($"该åºåº{palletDto.locationType}ä¸åå¨ç©ºé²åºä½"); ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_InboundService/TakeStockOrderService.cs
@@ -259,6 +259,11 @@ // åé æ°è´§ä½ var newLocation = _locationInfoService.AssignLocation(stock.LocationType); if (newLocation == null) { return WebResponseContent.Instance.Error("没æç©ºé²åºä½å¯ååº"); } var newTask = new Dt_Task() { CurrentAddress = takeStockOrder.Remark, ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundService.cs
@@ -209,7 +209,7 @@ string responseMsg = totalActualAllocate == totalNeedAllocate ? "忣任å¡åé æå" : $"忣任å¡åé 宿ï¼å®é åé {totalActualAllocate}ï¼éæ±{totalNeedAllocate}ï¼åºåä¸è¶³é¨åæªåé ï¼"; if(totalActualAllocate == 0) if(totalActualAllocate == 0 && !outboundOrder.Details.Any(x=>x.LockQuantity >0)) { UpdateOutboundOrderStatus(request.OrderNo, (int)OutOrderStatusEnum.æªå¼å§); return WebResponseContent.Instance.Error("åé åºåæ°é为0ï¼æ æ³åºåº"); @@ -1490,8 +1490,15 @@ { barcodeQuantity = item.LockQuantity - item.OverOutQuantity; allocatedQuantity -= (item.LockQuantity - item.OverOutQuantity); item.OverOutQuantity = item.LockQuantity; if (item.ReturnToMESStatus == 0) { item.CurrentDeliveryQty = item.LockQuantity; } else { item.CurrentDeliveryQty += item.LockQuantity - item.OverOutQuantity; } item.OverOutQuantity = item.LockQuantity; } updateDetails.Add(item); @@ -2022,6 +2029,11 @@ // åé æ°è´§ä½ var newLocation = _locationInfoService.AssignLocation(stock.LocationType); if(newLocation == null) { return WebResponseContent.Instance.Error("没æç©ºé²åºä½å¯ååº"); } var newTask = new Dt_Task() { CurrentAddress = stations.GetValueOrDefault(station) ?? "", ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Inbound.cs
@@ -133,52 +133,14 @@ _stockRepository.UpdateData(stockInfo); _unitOfWorkManage.CommitTran(); } //TaskModel esstask = new TaskModel() //{ // taskType = "putaway", // taskGroupCode = "", // groupPriority = 0, // tasks = new List<TasksType> // { // new() // { // taskCode=newTask.TaskNum.ToString(), // taskPriority=0, // taskDescribe=new TaskDescribeType{ // containerCode=palletCode, // containerType= "CT_KUBOT_STANDARD", // fromLocationCode=stations.GetValueOrDefault(stationCode)??"", // toStationCode="", // toLocationCode=locationInfo.LocationCode, // deadline=0,storageTag="" // } // } // } //}; //var result = await _eSSApiService.CreateTaskAsync(esstask); //_logger.LogInformation("å建任å¡è¿å: " + result); //if (result) { try { await _eSSApiService.MoveContainerAsync(new WIDESEA_DTO.Basic.MoveContainerRequest { slotCode = stationCode, containerCode = palletCode }); } catch (Exception ex) { } return WebResponseContent.Instance.OK(); } //else //{ // return WebResponseContent.Instance.Error("ä¸åæºå¨äººä»»å¡å¤±è´¥ï¼"); //} } catch (Exception ex) { ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutboundOrderController.cs
@@ -64,6 +64,7 @@ dt_OutboundOrder.IsBatch = model.isBatch; dt_OutboundOrder.FactoryArea = model.factoryArea; dt_OutboundOrder.CreateType = OrderCreateTypeEnum.UpperSystemPush.ObjToInt(); dt_OutboundOrder.DepartmentName = model.lineName??""; var content =await Service.ReceiveOutboundOrder(dt_OutboundOrder, model.operationType);