´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task_Hty.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,18 @@ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WIDESEAWCS_Core.DB.Models; namespace WIDESEAWCS_Model.Models { public class Dt_Task_Hty : Dt_Task, IBaseHistoryEntity { public int SourceId { get; set; } public string OperateType { get; set; } public DateTime InsertTime { get; set; } } } ´úÂë¹ÜÀí/WMS/WIDESEA_WMSClient/src/extension/stock/stockInfo.js
@@ -17,6 +17,7 @@ methods: { //ä¸é¢è¿äºæ¹æ³å¯ä»¥ä¿çä¹å¯ä»¥å é¤ onInit() { }, onInited() { //æ¡æ¶åå§åé ç½®å ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_Common/StockEnum/StockStatusEmun.cs
@@ -23,14 +23,8 @@ [Description("ç»çæå")] ç»çæå = 1, [Description("ç»çæ¤é")] ç»çæ¤é = 2, [Description("å ¥åºç¡®è®¤")] å ¥åºç¡®è®¤ = 3, [Description("å ¥åºæ¤é")] å ¥åºæ¤é = 4, [Description("å ¥åºå®æ")] å ¥åºå®æ = 6, @@ -49,5 +43,17 @@ [Description("éåº")] éåº = 11, [Description("æå¨ç»çæå")] æå¨ç»çæå = 12, [Description("æå¨ç»çå ¥åºç¡®è®¤")] æå¨ç»çå ¥åºç¡®è®¤ = 13, [Description("ç»çæ¤é")] ç»çæ¤é = 99, [Description("å ¥åºæ¤é")] å ¥åºæ¤é = 199, } } ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_Core/Middlewares/ApiLogMiddleware.cs
@@ -61,7 +61,7 @@ ms.Position = 0; await ms.CopyToAsync(originalBody); if (!((context.Request.Path.Value?.Contains("get")) ?? true) && !((context.Request.Path.Value?.Contains("Get")) ?? true) && !((context.Request.Path.Value?.Contains("query")) ?? true) && !((context.Request.Path.Value?.Contains("Query")) ?? true)) if (!((context.Request.Path.Value?.Contains("get")) ?? true) && !((context.Request.Path.Value?.Contains("Get")) ?? true) && !((context.Request.Path.Value?.Contains("query")) ?? true) && !((context.Request.Path.Value?.Contains("Query")) ?? true) && !((context.Request.Path.Value?.Contains("DownLoadApp")) ?? true) && !((context.Request.Path.Value?.Contains("downLoadApp")) ?? true) && !((context.Request.Path.Value?.Contains("UploadApp")) ?? true) && !((context.Request.Path.Value?.Contains("uploadApp")) ?? true)) Logger.Add(requestParam, responseParam); } catch (Exception ex) ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/IInboundOrderService.cs
@@ -20,7 +20,7 @@ WebResponseContent GetInboundOrders(SaveModel saveModel); WebResponseContent MaterielGroup(int inboundOrderId, string palletCode, string serNum); WebResponseContent MaterielGroup(int inboundOrderId, string palletCode, List<string> serNums); WebResponseContent MaterielGroup(string palletCode, int Initiallife, int warehouseId, List<string> serNums); WebResponseContent FeedbackInboundOrder(int id); ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs
@@ -1,5 +1,6 @@ using AutoMapper; using HslCommunication.WebSocket; using Microsoft.AspNetCore.Mvc.RazorPages; using Newtonsoft.Json; using SqlSugar; using System; @@ -415,31 +416,16 @@ return content; } public WebResponseContent MaterielGroup(int inboundOrderId, string palletCode, List<string> serNums) public WebResponseContent MaterielGroup(string palletCode, int Initiallife, int warehouseId, List<string> serNums) { WebResponseContent content = new WebResponseContent(); try { Dt_InboundOrder inboundOrder = BaseDal.Db.Queryable<Dt_InboundOrder>().Where(x => x.Id == inboundOrderId).Includes(x => x.Details).First(); if (inboundOrder == null) Dt_Warehouse warehouse = _warehouseService.Repository.QueryFirst(x => x.WarehouseId == warehouseId); if (warehouse == null) { return WebResponseContent.Instance.Error($"æªæ¾å°å ¥åºåä¿¡æ¯"); return WebResponseContent.Instance.Error($"æªæ¾å°è¯¥ä»åºä¿¡æ¯"); } if (inboundOrder.Details == null || inboundOrder.Details.Count <= 0) { return WebResponseContent.Instance.Error($"æªæ¾å°å ¥åºåæç»ä¿¡æ¯"); } Dt_ReceiveOrder receiveOrder = _inboundRepository.ReceiveOrderRepository.Db.Queryable<Dt_ReceiveOrder>().Where(x => x.ReceiveOrderNo == inboundOrder.UpperOrderNo).Includes(x => x.Details).First(); if (receiveOrder == null) { return WebResponseContent.Instance.Error($"æªæ¾å°å¯¹åºçæ¶è´§å"); } if (receiveOrder.Details == null || receiveOrder.Details.Count <= 0) { return WebResponseContent.Instance.Error($"æªæ¾å°å¯¹åºçæ¶è´§åæç»"); } List<string> purchaseOrderNos = receiveOrder.Details.Select(x => x.PurchaseOrderNo).ToList(); List<MatSerNumAnalysisModel> models = CodeAnalysisHelper.CodeAnalysis<MatSerNumAnalysisModel>(AnalysisCodeEnum.MatSerNumAnalysis, serNums); @@ -455,17 +441,6 @@ return WebResponseContent.Instance.Error($"æªæ¾å°è¯¥ç©æçä¿¡æ¯"); } List<Dt_InboundOrderDetail> inboundOrderDetails = inboundOrder.Details.Where(x => x.MaterielCode == materielCode).ToList(); if (inboundOrderDetails == null || inboundOrderDetails.Count <= 0) { return WebResponseContent.Instance.Error($"æªå¨å ¥åºåæç»ä¸æ¾å°è¯¥ç©æä¿¡æ¯"); } if (receiveOrder.Details.FirstOrDefault(x => x.MaterielCode == materielCode) == null) { return WebResponseContent.Instance.Error($"æªå¨æ¶è´§åæç»ä¸æ¾å°è¯¥ç©æä¿¡æ¯"); } float beforeQuantity = 0; Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.PalletCode == palletCode).Includes(x => x.Details).First(); @@ -474,50 +449,43 @@ stockInfo = new Dt_StockInfo() { PalletCode = palletCode, StockStatus = StockStatusEmun.ç»çæå.ObjToInt(), WarehouseId = inboundOrder.WarehouseId, StockStatus = StockStatusEmun.æå¨ç»çæå.ObjToInt(), WarehouseId = warehouse.WarehouseId, PalletType = PalletTypeEnum.SmallPallet.ObjToInt(), Details = new List<Dt_StockInfoDetail>() }; } else { if (stockInfo.StockStatus != StockStatusEmun.ç»çæå.ObjToInt()) if (stockInfo.StockStatus != StockStatusEmun.ç»çæå.ObjToInt() && stockInfo.StockStatus != StockStatusEmun.æå¨ç»çæå.ObjToInt()) { return WebResponseContent.Instance.Error($"æçå·éå¤"); } beforeQuantity = stockInfo.Details.Sum(x => x.StockQuantity); } if (warehouse.WarehouseCode == WarehouseEnum.HA64.ToString()) { stockInfo.Remark = Initiallife.ToString(); } List<Dt_StockInfoDetail> stockInfoDetails = new List<Dt_StockInfoDetail>(); List<int> detailKeys = new List<int>(); foreach (var model in models) { if (purchaseOrderNos.FirstOrDefault(x => x == model.PurchaseOrderNo) == null) { return WebResponseContent.Instance.Error($"æªå¨æ¶è´§åæç»ä¸æ¾å°è¯¥éè´å"); } Dt_InboundOrderDetail? notGroupDetail = inboundOrderDetails.Where(x => x.OrderDetailStatus == OrderDetailStatusEnum.New.ObjToInt() && x.OrderQuantity == model.Quantity && !detailKeys.Contains(x.Id) && x.OrderQuantity > x.ReceiptQuantity).FirstOrDefault(); if (notGroupDetail == null) { return WebResponseContent.Instance.Error($"è¯¥ç©æå¨è¯¥å ¥åºåä¸å·²å ¨é¨ç»ç宿"); } detailKeys.Add(notGroupDetail.Id); Dt_StockInfoDetail stockInfoDetail = new Dt_StockInfoDetail() { BatchNo = model.LotNo, MaterielCode = materielInfo.MaterielCode, MaterielName = materielInfo.MaterielName, OrderNo = inboundOrder.InboundOrderNo, OrderNo = "", SerialNumber = model.SerialNumber, StockQuantity = model.Quantity, OutboundQuantity = 0, Status = StockStatusEmun.ç»çæå.ObjToInt(), ProductionDate = model.ProductionDate, EffectiveDate = model.EffectiveDate, InboundOrderRowNo = notGroupDetail.RowNo, InboundOrderRowNo = 0, }; if (stockInfo.Id > 0) @@ -527,14 +495,9 @@ stockInfo.Details.Add(stockInfoDetail); stockInfoDetails.Add(stockInfoDetail); notGroupDetail.ReceiptQuantity = model.Quantity; notGroupDetail.OrderDetailStatus = OrderDetailStatusEnum.GroupAndInbound.ObjToInt(); } float totalQuantity = stockInfo.Details.Sum(x => x.StockQuantity); inboundOrder.OrderStatus = InOrderStatusEnum.å ¥åºä¸.ObjToInt(); _unitOfWorkManage.BeginTran(); if (stockInfo.Id == 0) @@ -545,19 +508,18 @@ { _stockRepository.StockInfoRepository.Db.UpdateNav(stockInfo).Include(x => x.Details, new UpdateNavOptions() { OneToManyInsertOrUpdate = true }).ExecuteCommand(); } _inboundRepository.InboundOrderDetailRepository.UpdateData(inboundOrderDetails); _inboundRepository.InboundOrderRepository.UpdateData(inboundOrder); _recordService.StockQuantityChangeRecordService.AddStockChangeRecord(stockInfo, stockInfoDetails, beforeQuantity, totalQuantity, StockChangeTypeEnum.MaterielGroup); _unitOfWorkManage.CommitTran(); return WebResponseContent.Instance.OK(); content.OK(); } catch (Exception ex) { _unitOfWorkManage.RollbackTran(); return WebResponseContent.Instance.Error(ex.Message); content.Error(ex.Message); } return content; } /// <summary> /// å ¥åºå®æä¸æ¥ERP /// </summary> @@ -575,13 +537,13 @@ { return WebResponseContent.Instance.Error($"å ¥åºåæ®å·²å®æ"); } Dt_Warehouse warehouse = _warehouseService.Repository.QueryFirst(x => x.WarehouseId == stockInfo.WarehouseId); if (warehouse == null) { return WebResponseContent.Instance.Error($"æªæ¾å°ä»åºä¿¡æ¯"); } ERPInboundModel model = new ERPInboundModel() { Code = inboundOrder.InboundOrderNo, ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs
@@ -163,7 +163,7 @@ LocationStatusEnum lastStatus = (LocationStatusEnum)locationInfo.LocationStatus; locationInfo.LocationStatus = LocationStatusEnum.InStock.ObjToInt(); Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseId == task.WarehouseId); stockInfo.LocationCode = locationInfo.LocationCode; Dt_InboundOrder? inboundOrder = _inboundRepository.InboundOrderRepository.Db.Queryable<Dt_InboundOrder>().Where(x => x.InboundOrderNo == stockInfo.Details.FirstOrDefault().OrderNo).Includes(x => x.Details).First(); List<Dt_InboundOrderDetail> inboundOrderDetails = new List<Dt_InboundOrderDetail>(); @@ -176,7 +176,7 @@ } List<ERPInboundDetailModel> detailModels = new List<ERPInboundDetailModel>(); foreach (var item in stockInfo.Details) { Dt_InboundOrderDetail? inboundOrderDetail = inboundOrder.Details.FirstOrDefault(x => x.RowNo == item.InboundOrderRowNo); @@ -213,13 +213,13 @@ { inboundOrder.OrderStatus = InOrderStatusEnum.å ¥åºå®æ.ObjToInt(); } if (!_inboundOrderService.FeedbackInboundOrder(stockInfo, inboundOrder, detailModels).Status) if (!_inboundOrderService.FeedbackInboundOrder(stockInfo, inboundOrder, detailModels).Status)//todo ä¿®æ¹å¤ç { return WebResponseContent.Instance.Error($"å ¥åºåæ¥Erp失败"); } } //æµè¯æ¶å ¥åºåºåç¶æ if (task.TaskType == TaskTypeEnum.Inbound.ObjToInt() && warehouse.WarehouseCode == WarehouseEnum.HA64.ToString()) if (task.TaskType == TaskTypeEnum.Inbound.ObjToInt() && warehouse.WarehouseCode == WarehouseEnum.HA64.ToString() && stockInfo.StockStatus != StockStatusEmun.æå¨ç»çå ¥åºç¡®è®¤.ObjToInt()) { stockInfo.StockStatus = StockStatusEmun.å ¥åºå®ææªå»ºåºåºå.ObjToInt(); } @@ -239,8 +239,11 @@ _stockRepository.StockInfoDetailRepository.UpdateData(stockInfo.Details); _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, lastStatus, LocationChangeType.InboundCompleted); _recordService.StockQuantityChangeRecordService.AddStockChangeRecord(stockInfo, stockInfo.Details, stockInfo.Details.Sum(x => x.StockQuantity), stockInfo.Details.Sum(x => x.StockQuantity), StockChangeTypeEnum.Inbound, taskNum); _inboundRepository.InboundOrderDetailRepository.UpdateData(inboundOrderDetails); _inboundRepository.InboundOrderRepository.UpdateData(inboundOrder); if (inboundOrder != null) { _inboundRepository.InboundOrderDetailRepository.UpdateData(inboundOrderDetails); _inboundRepository.InboundOrderRepository.UpdateData(inboundOrder); } _unitOfWorkManage.CommitTran(); return WebResponseContent.Instance.OK(); } @@ -301,7 +304,7 @@ } } } if (warehouse.WarehouseCode != WarehouseEnum.HA64.ToString()) { //æ¨éåºåºå®æ ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Inbound.cs
@@ -44,7 +44,7 @@ { return WebResponseContent.Instance.Error($"æªæ¾å°ç»çä¿¡æ¯"); } if (stockInfo.StockStatus != StockStatusEmun.ç»çæå.ObjToInt()) if (stockInfo.StockStatus != StockStatusEmun.ç»çæå.ObjToInt() && stockInfo.StockStatus != StockStatusEmun.æå¨ç»çæå.ObjToInt()) { return WebResponseContent.Instance.Error($"该æçç¶æä¸æ£ç¡®,ä¸å¯ç³è¯·å ¥åº"); } @@ -71,10 +71,17 @@ WarehouseId = stockInfo.WarehouseId, PalletType = stockInfo.PalletType }; stockInfo.StockStatus = StockStatusEmun.å ¥åºç¡®è®¤.ObjToInt(); _unitOfWorkManage.BeginTran(); if (stockInfo.StockStatus == StockStatusEmun.æå¨ç»çæå.ObjToInt()) { stockInfo.StockStatus = StockStatusEmun.æå¨ç»çå ¥åºç¡®è®¤.ObjToInt(); } else { stockInfo.StockStatus = StockStatusEmun.å ¥åºç¡®è®¤.ObjToInt(); } _unitOfWorkManage.BeginTran(); int taskId = BaseDal.AddData(newTask); newTask.TaskId = taskId; _stockRepository.StockInfoRepository.UpdateData(stockInfo); ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/InboundOrderController.cs
@@ -75,5 +75,11 @@ { return Service.FeedbackInboundOrder(id); } [HttpPost, HttpGet, Route("ManualMaterielGroup")] public WebResponseContent MaterielGroup(string palletCode, int initiallife, int warehouseId, [FromBody] List<string> serNums) { return Service.MaterielGroup(palletCode, initiallife, warehouseId, serNums); } } } ´úÂë¹ÜÀí/»´°²PDA/pages.json
@@ -43,6 +43,14 @@ "enablePullDownRefresh": false } }, { "path": "pages/stash/boxing", "style": { "navigationBarTitleText": "WMSå ¥åº", "enablePullDownRefresh": false } }, { "path": "pages/stash/pickingMat", "style": { ´úÂë¹ÜÀí/»´°²PDA/pages/stash/boxing.vue
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,514 @@ <template> <view> <uni-segmented-control :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="åå§å¯¿å½:" v-if="Test"> <uni-easyinput type="text" placeholder="请è¾å ¥åå§å¯¿å½" ref='midInput' v-model="Initiallife" /> </uni-forms-item> <!-- <uni-forms-item> <checkbox checked="check">æ¯å¦æ»¡ç</checkbox> </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 in matTotal" :key="item.matCode"> <template v-slot:body> <view class="uni-list-box"> <view class="uni-content"> <view class="uni-title-sub uni-ellipsis-2">ç©æç¼ç ï¼{{item.matCode}}</view> <view class="uni-title-sub uni-ellipsis-2">æ°éï¼{{item.matQuantity}}</view> </view> </view> </template> </uni-list-item> --> <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 === 1" 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' @input="inputChangebarcode" /> </uni-forms-item> <uni-forms-item label="å°åæ¡ç "> <uni-easyinput type="text" v-model="address" 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 v-if="current === 2" class="headerstyle"> <view class="itemstyle"> <uni-list :border="true"> <uni-list-item direction="column" v-for="(item,index) in orderInfo" :key="index"> <template v-slot:body> <view class="uni-list-box"> <view class="uni-content"> <view style="font-size: 18px;">åæ®å·ï¼{{orderNo}}</view> <view style="font-size: 18px;">ç©æç¼ç ï¼{{item.materielCode}}</view> <!-- <view style="font-size: 18px;">ç©æåç§°ï¼{{item.matName}}</view> --> <view style="font-size: 18px;">æ°éï¼{{item.orderQuantity}}</view> <view style="font-size: 18px;">åä½ï¼{{item.unit}}</view> <view style="font-size: 18px;">ç»çæ°éï¼{{item.receiptQuantity}}</view> </view> </view> </template> </uni-list-item> </uni-list> </view> </view> <view v-if="current === 3" class="headerstyle"> <view class="itemstyle"> <uni-forms label-width="120"> <uni-forms-item> <uni-easyinput type="text" @input="releaseboxInput" v-model="value" placeholder="请æ«ç " ref='midInput' :focus="true" /> </uni-forms-item> <uni-forms-item> <button @click="releasebox" type="primary" size="default">è§£ç</button> </uni-forms-item> </uni-forms> <uni-list> <uni-list-item direction="column" v-if="value2"> <template v-slot:body> <view class="uni-list-box"> <view class="uni-content"> <view class="uni-title-sub uni-ellipsis-2">æçå·ï¼{{value2}}</view> </view> </view> </template> </uni-list-item> <uni-list-item direction="column" v-for="item in matTotal" :key="item.matCode"> <template v-slot:body> <view class="uni-list-box"> <view class="uni-content"> <view class="uni-title-sub uni-ellipsis-2">ç©æç¼ç ï¼{{item.matCode}}</view> <view class="uni-title-sub uni-ellipsis-2">æ°éï¼{{item.matQuantity}}</view> </view> </view> </template> </uni-list-item> <uni-list-item direction="column" v-for="(item,index) in matInfo" :key="index"> <template v-slot:body> <view class="uni-list-box"> <view class="uni-content"> <view class="uni-title-sub uni-ellipsis-2" style="font-size: 1.1em;"> ç©æç¼ç ï¼{{item.matCode}} </view> <view class="uni-title-sub uni-ellipsis-2" style="font-size: 1.1em;"> ç©æåç§°ï¼{{item.matName}} </view> <view class="uni-title-sub uni-ellipsis-2" style="font-size: 1.1em;"> æ°éï¼{{item.matQty}} </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: ['ç»ç', 'å ¥åº'], //, 'åæ®ä¿¡æ¯', 'è§£ç' current: 0, matTotal: [], matInfos: [], orderNo: "", label: "", orderInfo: [], focus: false, barcode: "", materSn: "", Initiallife: 1000, sns: [], addressFocus: false, inboundBarcode: "", address: "", check: true, value: "", matInfo: [], value2: "", matTotals: [], warehouseId: "", Test: false, Testcheck: false, } }, onShow() {}, onLoad(res) { this.focus = false; this.addressFocus = false; this.orderNo = res.orderNo; this.warehouseId = res.warehouseId; this.Test = this.warehouseId == 6; //æµè¯æ¶ä»åºåºID this.label = "åæ®ç¼å·ï¼" + this.orderNo; this.getData(); }, methods: { voiceSpeech(src) { innerAudioContext.src = src; // '../../static/success.mp3'; innerAudioContext.play(); }, //è§£ç 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('è§£çæå!') 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.materSn != "") { this.focus = false; var matSn = this.materSn; setTimeout(() => { this.materSn = ""; }, 10); this.$u.post('/api/MaterielInfo/CodeAnalysis?serNum=' + matSn, {}).then((res) => { this.Testcheck = false; if (res.status) { // debugger // this.matTotal.push({ // matCode: res.data.materielCode, // matQuantity: parseInt(res.data.quantity) // }); this.sns.push(res.data.serialNumber); // this.matInfos.splice(0, this.matInfos.length); this.matInfos.push(res.data); if (res.message) { this.$refs.uToast.show({ title: res.message, type: "error" }) // setTimeout(this.updateFocus,200); setTimeout(() => { this.voiceSpeech('../../static/fail.mp3'); }, 100); return; } // setTimeout(this.updateFocus,200); setTimeout(() => { this.voiceSpeech('../../static/success.mp3'); }, 100); } else { // this.innerCode = ""; this.$refs.uToast.show({ title: res.message, type: "error" }) // setTimeout(this.updateFocus,200); 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) { uni.$showMsg(res.message); this.inboundBarcode = ""; this.address = ""; setTimeout(() => { this.addressFocus = false; }, 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; } }) }, 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; this.$refs.uToast.show({ title: "请确认åå§å¯¿å½", type: 'error' }) return; } } 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> ´úÂë¹ÜÀí/»´°²PDA/static/iconfont.css
@@ -1,77 +1,82 @@ @font-face { font-family: "custom-icon"; src: url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'); font-family: "custom-icon"; src: url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'); } .custom-icon { font-family: "custom-icon" !important; font-size: 16px; font-style: normal; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; font-family: "custom-icon" !important; font-size: 16px; font-style: normal; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } .custom-icon-_WMS_rukuyewu:before { content: "\e70f"; } .custom-icon-chuku:before { content: "\e602"; content: "\e602"; } .custom-icon-ruku:before { content: "\e606"; content: "\e606"; } .custom-icon-zhijin:before { content: "\e652"; content: "\e652"; } .custom-icon-shouhuo:before { content: "\e60f"; content: "\e60f"; } .custom-icon-kucunpandian-:before { content: "\e646"; content: "\e646"; } .custom-icon-ppt:before { content: "\e734"; content: "\e734"; } .custom-icon-chengpinchuku:before { content: "\e62f"; content: "\e62f"; } .custom-icon-jianxuandan:before { content: "\e62b"; content: "\e62b"; } .custom-icon-kucunchaxun:before { content: "\e681"; content: "\e681"; } .custom-icon-zhuangxiangruku1:before { content: "\e601"; content: "\e601"; } .custom-icon-chanpin-youmotuliao:before { content: "\e682"; content: "\e682"; } .custom-icon-bancaiwuliao:before { content: "\e676"; content: "\e676"; } .custom-icon-ceshijiaguanli:before { content: "\e678"; content: "\e678"; } .custom-icon-lingliaozupan:before { content: "\e77d"; content: "\e77d"; } .custom-icon-chengpincangku:before { content: "\e6f9"; content: "\e6f9"; } .custom-icon-fuliaocangku:before { content: "\e6fa"; } content: "\e6fa"; }