| | |
| | | <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> |
| | |
| | | </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> |
| | |
| | | show: false, |
| | | locationTypes: [], |
| | | locationType: "", |
| | | // æ°å¢æäº¤ç¶ææ è¯ |
| | | isSubmitting: false |
| | | } |
| | | }, |
| | | methods: { |
| | |
| | | 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) => { |
| | |
| | | $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) => { |
| | |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | </script> |
| | |
| | | align: "left" |
| | | }, |
| | | { |
| | | field: "departmentName", |
| | | title: "æçº¿åç§°", |
| | | type: "string", |
| | | width: 120, |
| | | align: "left" |
| | | }, |
| | | { |
| | | field: "departmentCode", |
| | | title: "ä¿®æ¹æ¶é´", |
| | | type: "string", |
| | |
| | | |
| | | private readonly static object _locker = new object(); |
| | | static List<LocationCache> locationCaches = new List<LocationCache>(); |
| | | private int locationCacheTime = 20; |
| | | private int locationCacheTime = 10; |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | |
| | | { |
| | | if (returnRecords.Count() == returnRecords.Count(x => x.ReturnStatus == 1)) |
| | | { |
| | | outboundOrder.ReturnToMESStatus = 1; |
| | | if(outboundOrder.OrderStatus != OutOrderStatusEnum.åºåºå®æ.ObjToInt()) |
| | | { |
| | | outboundOrder.ReturnToMESStatus = 3; |
| | | } |
| | | else |
| | | { |
| | | outboundOrder.ReturnToMESStatus = 1; |
| | | } |
| | | |
| | | } |
| | | else if (returnRecords.Count(x => x.ReturnStatus == 2) > 0) |
| | | { |
| | |
| | | |
| | | public int operationType { get; set; } |
| | | |
| | | public string lineName { get; set; } |
| | | |
| | | public List<OutBoundDetailsModel> details { get; set; } |
| | | |
| | | } |
| | |
| | | { |
| | | 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}ä¸åå¨ç©ºé²åºä½"); |
| | |
| | | // åé
æ°è´§ä½ |
| | | var newLocation = _locationInfoService.AssignLocation(stock.LocationType); |
| | | |
| | | if (newLocation == null) |
| | | { |
| | | return WebResponseContent.Instance.Error("没æç©ºé²åºä½å¯ååº"); |
| | | } |
| | | |
| | | var newTask = new Dt_Task() |
| | | { |
| | | CurrentAddress = takeStockOrder.Remark, |
| | |
| | | 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ï¼æ æ³åºåº"); |
| | |
| | | { |
| | | barcodeQuantity = item.LockQuantity - item.OverOutQuantity; |
| | | allocatedQuantity -= (item.LockQuantity - item.OverOutQuantity); |
| | | if (item.ReturnToMESStatus == 0) |
| | | { |
| | | item.CurrentDeliveryQty = item.LockQuantity; |
| | | } |
| | | else |
| | | { |
| | | item.CurrentDeliveryQty += item.LockQuantity - item.OverOutQuantity; |
| | | } |
| | | item.OverOutQuantity = item.LockQuantity; |
| | | item.CurrentDeliveryQty = item.LockQuantity; |
| | | } |
| | | |
| | | updateDetails.Add(item); |
| | |
| | | // åé
æ°è´§ä½ |
| | | var newLocation = _locationInfoService.AssignLocation(stock.LocationType); |
| | | |
| | | if(newLocation == null) |
| | | { |
| | | return WebResponseContent.Instance.Error("没æç©ºé²åºä½å¯ååº"); |
| | | } |
| | | |
| | | var newTask = new Dt_Task() |
| | | { |
| | | CurrentAddress = stations.GetValueOrDefault(station) ?? "", |
| | |
| | | _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) |
| | | await _eSSApiService.MoveContainerAsync(new WIDESEA_DTO.Basic.MoveContainerRequest |
| | | { |
| | | try |
| | | { |
| | | await _eSSApiService.MoveContainerAsync(new WIDESEA_DTO.Basic.MoveContainerRequest |
| | | { |
| | | slotCode = stationCode, |
| | | containerCode = palletCode |
| | | }); |
| | | } |
| | | catch (Exception ex) { |
| | | |
| | | slotCode = stationCode, |
| | | containerCode = palletCode |
| | | }); |
| | | |
| | | } |
| | | return WebResponseContent.Instance.OK(); |
| | | } |
| | | //else |
| | | //{ |
| | | // return WebResponseContent.Instance.Error("ä¸åæºå¨äººä»»å¡å¤±è´¥ï¼"); |
| | | //} |
| | | return WebResponseContent.Instance.OK(); |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | 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); |
| | | |