| | |
| | | }); |
| | | }, |
| | | outbound() { |
| | | // if (this.selection.length === 0) { |
| | | // return this.$message.error("è¯·éæ©åæ®æç»"); |
| | | // } |
| | | // const platformOptions = [ |
| | | // { label: "ç«å°2", value: "2-1" }, |
| | | // { label: "ç«å°3", value: "3-1" }, |
| | | // ]; |
| | | // const mountNode = document.createElement("div"); |
| | | // document.body.appendChild(mountNode); |
| | | if (this.selection.length === 0) { |
| | | return this.$message.error("è¯·éæ©åæ®æç»"); |
| | | } |
| | | |
| | | // const formData = reactive({ |
| | | // selectedPlatform: platformOptions[0].value, |
| | | // }); |
| | | |
| | | // const vnode = createVNode( |
| | | // ElDialog, |
| | | // { |
| | | // title: "åºåºæä½ - éæ©åºåºç«å°", |
| | | // width: "500px", |
| | | // modelValue: true, |
| | | // appendToBody: true, |
| | | // "onUpdate:modelValue": (isVisible) => { |
| | | // if (!isVisible) { |
| | | // render(null, mountNode); |
| | | // document.body.removeChild(mountNode); |
| | | // } |
| | | // }, |
| | | // style: { |
| | | // padding: "20px 0", |
| | | // borderRadius: "8px", |
| | | // }, |
| | | // }, |
| | | // { |
| | | // default: () => |
| | | // h( |
| | | // ElForm, |
| | | // { |
| | | // model: formData, |
| | | // rules: { |
| | | // selectedPlatform: [ |
| | | // { required: true, message: "è¯·éæ©åºåºç«å°", trigger: "change" }, |
| | | // ], |
| | | // }, |
| | | // ref: "outboundForm", |
| | | // labelWidth: "100px", |
| | | // style: { |
| | | // padding: "0 30px", |
| | | // }, |
| | | // }, |
| | | // [ |
| | | // h(ElFormItem, { |
| | | // label: "åºåºç«å°", |
| | | // prop: "selectedPlatform", |
| | | // style: { |
| | | // marginBottom: "24px", |
| | | // }, |
| | | // }, [ |
| | | // h(ElSelect, { |
| | | // placeholder: "è¯·éæ©åºåºç«å°ï¼3-12ï¼", |
| | | // modelValue: formData.selectedPlatform, |
| | | // "onUpdate:modelValue": (val) => { |
| | | // formData.selectedPlatform = val; |
| | | // }, |
| | | // style: { |
| | | // width: "100%", |
| | | // height: "40px", |
| | | // borderRadius: "4px", |
| | | // borderColor: "#dcdfe6", |
| | | // }, |
| | | // }, platformOptions.map((platform) => |
| | | // h(ElOption, { label: platform.label, value: platform.value }) |
| | | // )), |
| | | // ]), |
| | | // h("div", { |
| | | // style: { |
| | | // textAlign: "right", |
| | | // marginTop: "8px", |
| | | // paddingRight: "4px", |
| | | // }, |
| | | // }, [ |
| | | // h(ElButton, { |
| | | // type: "text", |
| | | // onClick: () => { |
| | | // render(null, mountNode); |
| | | // document.body.removeChild(mountNode); |
| | | // ElMessage.info("åæ¶åºåºæä½"); |
| | | // }, |
| | | // style: { |
| | | // marginRight: "8px", |
| | | // color: "#606266", |
| | | // }, |
| | | // }, "åæ¶"), |
| | | // h(ElButton, { |
| | | // type: "primary", |
| | | // onClick: async () => { |
| | | // const formRef = vnode.component.refs.outboundForm; |
| | | // try { |
| | | // await formRef.validate(); |
| | | // } catch (err) { |
| | | // return; |
| | | // } |
| | | |
| | | // const keys = this.selection.map((item) => item.id); |
| | | // const requestParams = { |
| | | // detailIds: keys, |
| | | // outboundTargetLocation: formData.selectedPlatform, |
| | | // outboundQuantity: 1, |
| | | // operator: "", |
| | | // orderNo: this.row.orderNo, |
| | | // }; |
| | | |
| | | // this.http |
| | | // .post( |
| | | // "api/Outbound/ProcessPickingOutbound", |
| | | // requestParams, |
| | | // "æ°æ®å¤çä¸" |
| | | // ) |
| | | // .then((x) => { |
| | | // if (!x.status) return ElMessage.error(x.message); |
| | | // ElMessage.success("æä½æå"); |
| | | // this.showDetialBox = false; |
| | | // this.$emit("parentCall", ($vue) => { |
| | | // $vue.getData(); |
| | | // }); |
| | | // render(null, mountNode); |
| | | // document.body.removeChild(mountNode); |
| | | // }) |
| | | // // .catch(() => { |
| | | // // ElMessage.error("请æ±å¤±è´¥ï¼è¯·ç¨åéè¯"); |
| | | // // }); |
| | | // }, |
| | | // style: { |
| | | // borderRadius: "4px", |
| | | // padding: "8px 20px", |
| | | // }, |
| | | // }, "ç¡®å®åºåº"), |
| | | // ]), |
| | | // ]), |
| | | // } |
| | | // ); |
| | | |
| | | // vnode.appContext = this.$.appContext; |
| | | // render(vnode, mountNode); |
| | | const keys = this.selection.map((item) => item.id); |
| | | const requestParams = { |
| | | detailIds: keys, |
| | | outboundQuantity: 1, |
| | | operator: "", |
| | | orderNo: this.row.orderNo, |
| | | isBatch: this.isBatch |
| | | }; |
| | | console.log(requestParams); |
| | | this.$refs.DirectOutbound.open(requestParams); |
| | | }, |
| | | outboundbatch() { |
| | | if (this.selection.length === 0) { |
| | |
| | | <el-row :gutter="20"> |
| | | <el-col :span="8"> |
| | | <el-form-item label="æçç " prop="palletCode"> |
| | | <el-input ref="palletInput" v-model="scanForm.palletCode" placeholder="è¯·æ«ææçç " |
| | | size="large" clearable @keyup.enter="handlePalletScan"> |
| | | <el-input ref="palletInput" v-model="scanForm.palletCode" placeholder="è¯·æ«ææçç " size="large" |
| | | clearable @keyup.enter="handlePalletScan"> |
| | | <template #prefix> |
| | | <i class="el-icon-box"></i> |
| | | </template> |
| | |
| | | </el-dialog> |
| | | |
| | | <!-- æ´åºç¡®è®¤å¯¹è¯æ¡ --> |
| | | <el-dialog v-model="wholeOutDialogVisible" title="æ´åºæä½ç¡®è®¤" width="500px" |
| | | :before-close="handleWholeOutDialogClose" custom-class="whole-out-dialog" style="margin-right: 0px;"> |
| | | <el-dialog v-model="wholeOutDialogVisible" title="æ´åºæä½ç¡®è®¤" width="500px" :before-close="handleWholeOutDialogClose" |
| | | custom-class="whole-out-dialog" style="margin-right: 0px;"> |
| | | <div class="whole-out-content" v-if="wholeOutInfo"> |
| | | <!-- è¦åæç¤º --> |
| | | <el-alert title="该æçå
å«éè¦æ´åºçç©æ" type="warning" :closable="false" show-icon class="whole-out-alert"> |
| | |
| | | <div class="info-item"> |
| | | <label>æ´åºæ°éï¼</label> |
| | | <span class="info-value highlight">{{ wholeOutInfo.assignQuantity }} {{ wholeOutInfo.unit |
| | | }}</span> |
| | | }}</span> |
| | | </div> |
| | | <div class="info-item"> |
| | | <label>å½ååºåï¼</label> |
| | |
| | | |
| | | // æ£æ¥æ¯å¦å
嫿´åº |
| | | hasWholeOut() { |
| | | return this.unpickedData.some(item => item.assignQuantity === item.originalQuantity) && !this.matMixed; |
| | | return this.unpickedData.some(item => item.assignQuantity === item.originalQuantity) && !this.matMixed |
| | | }, |
| | | |
| | | // 计ç®å©ä½åºå |
| | |
| | | return first; |
| | | } |
| | | } |
| | | |
| | | public bool QueryLocationCount(int locationType) |
| | | { |
| | | try |
| | | { |
| | | return BaseDal.QueryData(x => x.LocationType == locationType && x.LocationStatus == (int)LocationStatusEnum.Free && x.EnableStatus == (int)EnableEnum.Enable).Any(); |
| | | } |
| | | catch (Exception) |
| | | { |
| | | return false; |
| | | } |
| | | |
| | | } |
| | | public Dt_LocationInfo? AssignLocation() |
| | | { |
| | | lock (_locker) |
| | |
| | | |
| | | Dt_LocationInfo? AssignLocation(); |
| | | |
| | | bool QueryLocationCount(int locationType); |
| | | |
| | | List<LocationTypeDto> GetLocationTypes(); |
| | | |
| | | |
| | |
| | | if (!result2.Item1) return content = WebResponseContent.Instance.Error(result2.Item2); |
| | | |
| | | bool code = _locationTypeRepository.Db.Queryable<Dt_LocationType>().Where(x => x.LocationType == materielGroupDTO.WarehouseCode).Any(); |
| | | bool statu = _locationInfoRepository.Db.Queryable<Dt_LocationInfo>().Where(x => x.LocationType == materielGroupDTO.WarehouseCode && x.LocationStatus == (int)LocationStatusEnum.Free).Any(); |
| | | bool statu = _locationInfoRepository.Db.Queryable<Dt_LocationInfo>().Where(x => x.LocationType == materielGroupDTO.WarehouseCode && x.LocationStatus == (int)LocationStatusEnum.Free && x.EnableStatus == (int)EnableEnum.Enable).Any(); |
| | | if (!statu) |
| | | { |
| | | return content = WebResponseContent.Instance.Error($"该åºåæ è´§ä½å¯åé
"); |
| | |
| | | using WIDESEA_DTO.Allocate; |
| | | using WIDESEA_DTO.Inbound; |
| | | using WIDESEA_DTO.ReturnMES; |
| | | using WIDESEA_IBasicService; |
| | | using WIDESEA_IInboundService; |
| | | using WIDESEA_IStockService; |
| | | using WIDESEA_Model.Models; |
| | |
| | | private readonly IRepository<Dt_AllocateMaterialInfo> _allocateMaterialInfo; |
| | | private readonly HttpClientHelper _httpClientHelper; |
| | | private readonly IRepository<Dt_MesReturnRecord> _mesReturnRecord; |
| | | public InboundService(IUnitOfWorkManage unitOfWorkManage, IInboundOrderDetailService inboundOrderDetailService, IInboundOrderService inbounOrderService, IRepository<Dt_InboundOrder> inboundOrderRepository, IRepository<Dt_WarehouseArea> warehouseAreaRepository, IRepository<Dt_LocationType> locationTypeRepository, IRepository<Dt_StockInfo> stockInfoRepository, IRepository<Dt_InboundOrderDetail> inboundOrderDetailRepository, IStockService stockService, IRepository<Dt_Task> taskRepository,IRepository<Dt_AllocateMaterialInfo> allocateMaterialInfo, HttpClientHelper httpClientHelper, IRepository<Dt_MesReturnRecord> mesReturnRecord) |
| | | private readonly ILocationInfoService _locationInfoService; |
| | | public InboundService(IUnitOfWorkManage unitOfWorkManage, IInboundOrderDetailService inboundOrderDetailService, IInboundOrderService inbounOrderService, IRepository<Dt_InboundOrder> inboundOrderRepository, IRepository<Dt_WarehouseArea> warehouseAreaRepository, IRepository<Dt_LocationType> locationTypeRepository, IRepository<Dt_StockInfo> stockInfoRepository, IRepository<Dt_InboundOrderDetail> inboundOrderDetailRepository, IStockService stockService, IRepository<Dt_Task> taskRepository,IRepository<Dt_AllocateMaterialInfo> allocateMaterialInfo, HttpClientHelper httpClientHelper, IRepository<Dt_MesReturnRecord> mesReturnRecord,ILocationInfoService locationInfoService) |
| | | { |
| | | _unitOfWorkManage = unitOfWorkManage; |
| | | InboundOrderDetailService = inboundOrderDetailService; |
| | |
| | | _allocateMaterialInfo = allocateMaterialInfo; |
| | | _httpClientHelper = httpClientHelper; |
| | | _mesReturnRecord = mesReturnRecord; |
| | | _locationInfoService = locationInfoService; |
| | | } |
| | | |
| | | public async Task<WebResponseContent> GroupPallet(GroupPalletDto palletDto) |
| | |
| | | if (stockInfo != null && stockInfo.Details.Count > 0 && stockInfo.Details.FirstOrDefault()?.WarehouseCode != palletDto.WarehouseType) |
| | | { |
| | | return content.Error($"该æçç»çä»åºä¸º{stockInfo.Details.FirstOrDefault()?.WarehouseCode}ä¸å½åä»åº{palletDto.WarehouseType}ä¸ä¸è´ï¼ä¸å
许ç»ç"); |
| | | } |
| | | |
| | | if (!_locationInfoService.QueryLocationCount(Convert.ToInt32(palletDto.locationType))) |
| | | { |
| | | return content.Error($"该åºåº{palletDto.locationType}ä¸åå¨ç©ºé²åºä½"); |
| | | } |
| | | |
| | | foreach (var item in details) |
| | |
| | | .Where(x => x.OrderId == inboundOrder.Id && x.OrderDetailStatus==(int)OrderDetailStatusEnum.Over && x.ReturnToMESStatus == 0) |
| | | .ToList(); |
| | | |
| | | var stocks = _stockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.StockStatus == 6) |
| | | var stocks = _stockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.StockStatus == (int)StockStatusEmun.å
¥åºå®æ) |
| | | .Where(it => SqlFunc.Subqueryable<Dt_StockInfoDetail>().Where(s => s.StockId == it.Id && s.OrderNo == inboundOrder.InboundOrderNo).Any()) |
| | | .ToList(); |
| | | |