From 5e39811c50a51a5b1c9af0f2f8dda4a21a28c677 Mon Sep 17 00:00:00 2001 From: dengjunjie <dengjunjie@hnkhzn.com> Date: 星期六, 11 一月 2025 14:52:57 +0800 Subject: [PATCH] 添加WMS和PDA平库出库功能 --- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IOutboundOrderDetailService.cs | 2 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IOutboundOrderService.cs | 1 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderDetailService.cs | 16 + 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutboundOrderDetailController.cs | 14 + 代码管理/淮安PDA/pages/stash/AGVFinish.vue | 2 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Common/StockEnum/StockStatusEmun.cs | 3 代码管理/淮安PDA/pages/stash/outboundorder.vue | 177 ++++++++++++++++ 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs | 62 ++++- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_UserService.cs | 1 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutboundOrderController.cs | 13 + 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/PalletCodeInfoService.cs | 39 ++ 代码管理/淮安PDA/pages/stash/outraworderboxing.vue | 275 +++++++++++++++++++++++++ 12 files changed, 570 insertions(+), 35 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/PalletCodeInfoService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/PalletCodeInfoService.cs" index e93ce7b..e40f51a 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/PalletCodeInfoService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/PalletCodeInfoService.cs" @@ -58,15 +58,33 @@ string uplen = ""; switch (_Warehouse.WarehouseCode) { - "HA57" => "B", - "HA58" => "P", - "HA152" => "G", - "HA64" => "S", - "闃荤剨浠�" => "Z", - "HA153" => "Y", - "HA71" => "C", - "HA60" => "F", - _ => "N" + case "HA57": + uplen = "B"; + break; + case "HA58": + uplen = "P"; + break; + case "HA152": + uplen = "G"; + break; + case "HA64": + uplen = "S"; + break; + case "闃荤剨浠�": + uplen = "Z"; + break; + case "HA153": + uplen = "Y"; + break; + case "HA71": + uplen = "C"; + break; + case "HA60": + uplen = "F"; + break; + default: + uplen = "N"; + break; }; for (int i = 0; i < count; i++) { @@ -87,6 +105,7 @@ return base.AddData(palletCodeInfos); } } + public WebResponseContent AddData(int warehouseId, int count, int palletTypeId) { @@ -133,7 +152,7 @@ } return WebResponseContent.Instance.OK(); } - catch(Exception ex) + catch (Exception ex) { return WebResponseContent.Instance.Error(ex.Message); } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/StockEnum/StockStatusEmun.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/StockEnum/StockStatusEmun.cs" index fa899a9..fa3067a 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/StockEnum/StockStatusEmun.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/StockEnum/StockStatusEmun.cs" @@ -50,6 +50,9 @@ [Description("鎵嬪姩缁勭洏鍏ュ簱纭")] 鎵嬪姩缁勭洏鍏ュ簱纭 = 13, + [Description("鎷i�夊畬鎴�")] + 鎷i�夊畬鎴� =14, + [Description("缁勭洏鎾ら攢")] 缁勭洏鎾ら攢 = 99, diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IOutboundOrderDetailService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IOutboundOrderDetailService.cs" index 389c745..35688b4 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IOutboundOrderDetailService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IOutboundOrderDetailService.cs" @@ -17,7 +17,7 @@ public interface IOutboundOrderDetailService : IService<Dt_OutboundOrderDetail> { IOutboundOrderDetailRepository Repository { get; } - + WebResponseContent GetOutboundOrderDetails(SaveModel saveModel); /// <summary> /// 閿佸畾鍑哄簱搴撳瓨 /// </summary> diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IOutboundOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IOutboundOrderService.cs" index 5bfb6a0..0720448 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IOutboundOrderService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IOutboundOrderService.cs" @@ -17,6 +17,7 @@ { IOutboundOrderRepository Repository { get; } + WebResponseContent GetOutboundOrders(SaveModel saveModel); WebResponseContent ReceiveOutOrder(ErpOutOrderDTO model); WebResponseContent TestOutUpload(int id,List<Dt_OutStockLockInfo>? outStockLockInfos=null); } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderDetailService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderDetailService.cs" index 5c1ea82..8aa4a5d 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderDetailService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderDetailService.cs" @@ -47,7 +47,21 @@ _basicService = basicService; _recordService = recordService; } - + public WebResponseContent GetOutboundOrderDetails(SaveModel saveModel) + { + WebResponseContent content = new WebResponseContent(); + try + { + string orderNo = saveModel.MainData["orderNo"].ToString(); + Dt_OutboundOrder inboundOrder = Db.Queryable<Dt_OutboundOrder>().Where(x => x.OrderNo == orderNo).Includes(x => x.Details).First(); + content.OK(data: inboundOrder.Details); + } + catch (Exception ex) + { + content.Error(ex.Message); + } + return content; + } /// <summary> /// 閿佸畾搴撳瓨锛岀敱绯荤粺鍒嗛厤(浠呴�昏緫杩愮畻锛屼笉鐢熸垚浠诲姟锛屼笉淇敼鏁版嵁搴撴暟鎹�) /// </summary> diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs" index 7bfa3f1..483ba11 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs" @@ -45,7 +45,7 @@ private readonly IOutStockLockInfoService _outStockLockInfoService; private readonly IOutboundOrderRepository _outboundOrderRepository; - public OutboundOrderService(IOutboundOrderRepository BaseDal, IMapper mapper,IUnitOfWorkManage unitOfWorkManage, IBasicService basicService, IOutboundOrderDetailRepository outboundOrderDetailRepository, IStockInfoService stockInfoService, + public OutboundOrderService(IOutboundOrderRepository BaseDal, IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IBasicService basicService, IOutboundOrderDetailRepository outboundOrderDetailRepository, IStockInfoService stockInfoService, IStockInfoRepository stockInfoRepository, IInvokeERPService invokeERPService, IOutStockLockInfoService outStockLockInfoService, IOutboundOrderRepository outboundOrderRepository) : base(BaseDal) { @@ -71,6 +71,32 @@ } saveModel.DetailData[0].Add("orderDetailStatus", OrderDetailStatusEnum.New.ObjToInt()); return base.AddData(saveModel); + } + public WebResponseContent GetOutboundOrders(SaveModel saveModel) + { + WebResponseContent content = new WebResponseContent(); + try + { + int pageNo = saveModel.MainData["pageNo"].ObjToInt(); + string? orderNo = saveModel.MainData["orderNo"].ToString(); + int warehouseId = saveModel.MainData["warehouseId"].ObjToInt(); + List<Dt_OutboundOrder> dt_ReceiveOrders = new List<Dt_OutboundOrder>(); + if (string.IsNullOrEmpty(orderNo)) + { + dt_ReceiveOrders = Db.Queryable<Dt_OutboundOrder>().Where(x => x.OrderStatus < OutLockStockStatusEnum.鍑哄簱瀹屾垚.ObjToInt() && x.WarehouseId == warehouseId).ToPageList(pageNo, 5); + } + else + { + dt_ReceiveOrders = Db.Queryable<Dt_OutboundOrder>().Where(x => (x.OrderNo.Contains(orderNo)) && x.OrderStatus < OutLockStockStatusEnum.鍑哄簱瀹屾垚.ObjToInt() && x.WarehouseId == warehouseId).ToPageList(pageNo, 5); + } + + content.OK(data: dt_ReceiveOrders); + } + catch (Exception ex) + { + content.Error(ex.Message); + } + return content; } public WebResponseContent ReceiveOutOrder(ErpOutOrderDTO model) { @@ -127,11 +153,11 @@ MaterielName = materielInfo.MaterielName, OrderDetailStatus = OrderDetailStatusEnum.New.ObjToInt(), OrderQuantity = model.Qty, - Unit=materielInfo.MaterielUnit + Unit = materielInfo.MaterielUnit }; Dt_OutboundOrder outboundOrder = new Dt_OutboundOrder() { - OrderNo=model.OrderNo, + OrderNo = model.OrderNo, UpperOrderNo = model.OrderNo, OrderStatus = OutOrderStatusEnum.鏈紑濮�.ObjToInt(), OrderType = OutOrderTypeEnum.Issue.ObjToInt(), @@ -188,22 +214,22 @@ } } //涓婃姤鍑哄簱瀹屾垚 - public WebResponseContent TestOutUpload(int id,List<Dt_OutStockLockInfo>? outStockLockInfos) + public WebResponseContent TestOutUpload(int id, List<Dt_OutStockLockInfo>? outStockLockInfos) { try { - Dt_OutboundOrder outboundOrder = Db.Queryable<Dt_OutboundOrder>().Where(x=>x.Id==id).Includes(x=>x.Details).First(); + Dt_OutboundOrder outboundOrder = Db.Queryable<Dt_OutboundOrder>().Where(x => x.Id == id).Includes(x => x.Details).First(); Dt_Warehouse warehouse = _basicService.WarehouseService.Repository.QueryFirst(x => x.WarehouseId == outboundOrder.WarehouseId); ERPIssueModel issueModel = new ERPIssueModel(); List<Dt_StockInfo> stockInfos = new List<Dt_StockInfo>(); - List<Dt_OutStockLockInfo> _OutStockLockInfos=new List<Dt_OutStockLockInfo>(); + List<Dt_OutStockLockInfo> _OutStockLockInfos = new List<Dt_OutStockLockInfo>(); int overCount = outboundOrder.Details.Where(x => x.OrderDetailStatus == OrderDetailStatusEnum.Over.ObjToInt()).Count(); if (outboundOrder.Details.Count == overCount) { outboundOrder.OrderStatus = OutOrderStatusEnum.鍑哄簱瀹屾垚.ObjToInt(); _outboundOrderRepository.UpdateData(outboundOrder); } - if (outboundOrder==null) + if (outboundOrder == null) { return WebResponseContent.Instance.Error("鍑哄簱鍗曚笉瀛樺湪"); } @@ -212,21 +238,21 @@ return WebResponseContent.Instance.OK(); } //娴嬭瘯鏋跺簱缁橢RP涓婃姤鍑哄簱瀹屾垚 - if (warehouse.WarehouseCode==WarehouseEnum.HA64.ToString()) + if (warehouse.WarehouseCode == WarehouseEnum.HA64.ToString()) { stockInfos = TestOutStocksUpdate(warehouse).Data as List<Dt_StockInfo> ?? new List<Dt_StockInfo>(); - List<ERPPickItemModel> eRPOutPick =new List<ERPPickItemModel>(); + List<ERPPickItemModel> eRPOutPick = new List<ERPPickItemModel>(); for (int i = 0; i < stockInfos.Count; i++) { ERPPickItemModel pickItemModel = new ERPPickItemModel() { - Lotno= stockInfos[i].Details[0].BatchNo, - Qty= stockInfos[i].Details[0].StockQuantity.ObjToInt().ToString(), - Location= warehouse.WarehouseCode + Lotno = stockInfos[i].Details[0].BatchNo, + Qty = stockInfos[i].Details[0].StockQuantity.ObjToInt().ToString(), + Location = warehouse.WarehouseCode }; eRPOutPick.Add(pickItemModel); } - + ERPPickModel pickModel = new ERPPickModel() { Rowindex = outboundOrder.Details[0].RowNo, @@ -255,8 +281,8 @@ } else { - List<ERPPickModel> eRPPickModels= new List<ERPPickModel>(); - + List<ERPPickModel> eRPPickModels = new List<ERPPickModel>(); + //鑾峰彇鍑哄簱璇︽儏鍗� foreach (var item in outStockLockInfos) { @@ -275,7 +301,7 @@ Qty = pickItemModel.Qty, Dataitem = new List<ERPPickItemModel> { pickItemModel } }; - if (item.OrderQuantity==item.AssignQuantity) + if (item.OrderQuantity == item.AssignQuantity) { item.Status = OutLockStockStatusEnum.鍑哄簱瀹屾垚.ObjToInt(); } @@ -300,7 +326,7 @@ Issitem = new List<ERPIssueItemModel>() { issueItemModel }, }; } - + if (stockInfos.Count > 0) { _stockInfoRepository.UpdateData(stockInfos); @@ -330,7 +356,7 @@ { //鑾峰彇鍑哄簱鍗曞簱瀛� List<Dt_StockInfo> stockInfos = _stockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.WarehouseId == warehouse.WarehouseId).Includes(x => x.Details).ToList(); - if (stockInfos.Count<=0) + if (stockInfos.Count <= 0) { return WebResponseContent.Instance.Error($"搴撳瓨涓嶈冻"); } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_UserService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_UserService.cs" index 9dbed5c..414f91a 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_UserService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_UserService.cs" @@ -19,6 +19,7 @@ using MailKit.Search; using OrderByType = SqlSugar.OrderByType; using System.Drawing.Printing; +using WIDESEA_Core.HostedService; namespace WIDESEA_SystemService { diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutboundOrderController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutboundOrderController.cs" index c34fdbc..ac85e2f 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutboundOrderController.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutboundOrderController.cs" @@ -22,11 +22,20 @@ { } - [HttpPost,Route("TestOutUpload"),AllowAnonymous] + [HttpPost, Route("TestOutUpload"), AllowAnonymous] public WebResponseContent TestOutUpload(int id) { return Service.TestOutUpload(id); } - + /// <summary> + /// 鑾峰彇鍑哄簱鍗� + /// </summary> + /// <param name="saveModel"></param> + /// <returns></returns> + [HttpPost, Route("GetOutboundOrders"), AllowAnonymous] + public WebResponseContent GetOutboundOrders([FromBody]SaveModel saveModel) + { + return Service.GetOutboundOrders(saveModel); + } } } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutboundOrderDetailController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutboundOrderDetailController.cs" index a61e949..79c67d7 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutboundOrderDetailController.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutboundOrderDetailController.cs" @@ -1,4 +1,5 @@ -锘縰sing Microsoft.AspNetCore.Http; +锘縰sing Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using WIDESEA_Core; using WIDESEA_Core.BaseController; @@ -18,6 +19,15 @@ public OutboundOrderDetailController(IOutboundOrderDetailService service) : base(service) { } - + /// <summary> + /// 鑾峰彇鍑哄簱鍗曡鎯� + /// </summary> + /// <param name="saveModel"></param> + /// <returns></returns> + [HttpPost, Route("GetOutboundOrderDetails"), AllowAnonymous] + public WebResponseContent GetOutboundOrderDetails([FromBody] SaveModel saveModel) + { + return Service.GetOutboundOrderDetails(saveModel); + } } } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/AGVFinish.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/AGVFinish.vue" index ba5b96f..0797403 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/AGVFinish.vue" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/AGVFinish.vue" @@ -48,7 +48,7 @@ }) return; } - this.$u.post('http://127.0.0.1:9291/api/CTU_AGV/AGVFinish?&barcode=' + this.barcode).then( + this.$u.post('http://10.30.4.92:9291/api/CTU_AGV/AGVFinish?barcode=' + this.barcode).then( res => { if (res.status) { this.$refs.uToast.show({ diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/outboundorder.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/outboundorder.vue" new file mode 100644 index 0000000..782dd89 --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/outboundorder.vue" @@ -0,0 +1,177 @@ +<template> + <view> + <u-sticky> + <view style="background-color: #ffffff;"> + <uni-search-bar @confirm="search" v-model="searchValue"></uni-search-bar> + </view> + </u-sticky> + <uni-list :border="true"> + <uni-list-item direction="column" clickable @click="groupClick(item.orderNo)" link + :to="page+item.orderNo" v-for="item in allReceivingOrders" :key="item.orderNo"> + <template v-slot:body> + <uni-group margin-top="20"> + <view> 鍗曞彿:{{item.orderNo}} </view> + <view> 鍒涘缓浜�:{{item.creater}} </view> + <view> 鏃ユ湡:{{item.createDate}} </view> + </uni-group> + </template> + </uni-list-item> + + </uni-list> + <uni-load-more :status="status" v-if="loadVisible"></uni-load-more> + + <u-back-top :scroll-top="scrollTop" top="400"></u-back-top> + </view> +</template> + +<script> + export default { + data() { + return { + page: "/pages/stash/outraworderboxing?", + loadVisible: false, + searchValue: "", + status: "more", + allReceivingOrders: [], + pageNo: 1, + scrollTop: 0, + warehouseId: "" + } + }, + onLoad(res) { + this.warehouseId = res.warehouseId; + this.page = this.page + "warehouseId=" + this.warehouseId + "&orderNo="; + this.getData(); + }, + onReachBottom() { + this.pageNo += 1; + this.getData(); + }, + onPageScroll(e) { + this.scrollTop = e.scrollTop; + }, + methods: { + search(res) { + this.getData(); + }, + groupClick() { + + }, + getData() { + var postData = { + MainData: { + warehouseId: this.warehouseId, + orderNo: this.searchValue, + pageNo: this.pageNo + }, + } + this.$u.post('/api/OutboundOrder/GetOutboundOrders', postData).then((res) => { + if (res.status) { + if (res.data.length > 0) { + if (this.searchValue == '') { + this.allReceivingOrders = this.allReceivingOrders.concat(res.data); + // this.allReceivingOrders = res.data; + if (this.allReceivingOrders.length > 3) { + this.loadVisible = true; + } else { + this.loadVisible = false; + } + } else { + this.allReceivingOrders = res.data; + if (this.allReceivingOrders.length > 3) { + this.loadVisible = true; + } else { + this.loadVisible = false; + } + } + } else { + this.status = 'noMore'; + //this.allReceivingOrders = []; + this.loadVisible = true; + } + } + }) + } + } + } +</script> + +<style lang="scss"> + @import '@/common/uni-ui.scss'; + + page { + display: flex; + flex-direction: column; + box-sizing: border-box; + background-color: #efeff4; + min-height: 100%; + height: auto; + } + + .tips { + color: #67c23a; + font-size: 14px; + line-height: 40px; + text-align: center; + background-color: #f0f9eb; + height: 0; + opacity: 0; + transform: translateY(-100%); + transition: all 0.3s; + } + + .tips-ani { + transform: translateY(0); + height: 40px; + opacity: 1; + } + + .content { + width: 100%; + display: flex; + } + + .list-picture { + width: 100%; + height: 145px; + } + + .thumb-image { + width: 100%; + height: 100%; + } + + .ellipsis { + display: flex; + overflow: hidden; + } + + .uni-ellipsis-1 { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + } + + .uni-ellipsis-2 { + overflow: hidden; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + } + + .customcss { + display: flex; + position: fixed; + width: 100%; + top: 10px; + text-align: center; + z-index: 999; + left: 30px; + height: 20%; + } + + .footer { + padding-top: 50%; + } +</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/outraworderboxing.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/outraworderboxing.vue" new file mode 100644 index 0000000..1bc1830 --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/outraworderboxing.vue" @@ -0,0 +1,275 @@ +<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 style="margin-left: 2%;margin-top: 20px;" label-width="180"> + <uni-forms-item :label="label" style="margin-top: -20px;"></uni-forms-item> + <!-- <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="snInput" /> + </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> + <uni-forms-item :label="LotNo" style="margin-top: -20px;"></uni-forms-item> + <uni-forms-item :label="ProductionDate" style="margin-top: -20px;"></uni-forms-item> + <uni-forms-item :label="EffectiveDate" style="margin-top: -20px;"></uni-forms-item> + <uni-forms-item :label="orderQty" style="margin-top: -20px;"></uni-forms-item> + <uni-forms-item :label="remaindQty" style="margin-top: -20px;"> --> + <uni-list> + <uni-list-item direction="column" v-for="item in matInfos" :key="item.palletCode"> + <template v-slot:body> + <view class="uni-content"> + <view>鍗曟嵁缂栧彿锛歿{item.orderNo}}</view> + <view>鎵樼洏缂栧彿锛歿{item.palletCode}}</view> + <view>鐗╂枡鎵规锛歿{item.batchNo}}</view> + <view>鐗╂枡缂栫爜锛歿{item.materielCode}}</view> + <view>鐗╂枡鍚嶇О锛歿{item.materielName}}</view> + <view>鍗曟嵁鏁伴噺锛歿{item.orderQuantity}}</view> + <view>鍘熷搴撳瓨锛歿{item.originalQuantity}}</view> + <view>鍒嗛厤搴撳瓨锛歿{item.assignQuantity}}</view> + <view>鍓╀綑搴撳瓨锛歿{item.originalQuantity-item.assignQuantity}}</view> + </view> + </template> + </uni-list-item> + </uni-list> + <uni-forms-item label="鍑哄簱鏁伴噺锛�" style="margin-top: -20px;"> + <uni-easyinput type="text" placeholder="璇疯緭鍏ュ嚭搴撴暟閲�" ref='midInput' :focus="focus" + v-model="outQty" /> + </uni-forms-item> + </uni-forms-item> + </uni-forms> + <uni-forms-item> + <button @click="submit" type="primary" size="default" style="margin-top: 2%;">纭鍑哄簱</button> + </uni-forms-item> + </view> + </view> + <view v-if="current === 1" 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>鍗曟嵁鍙凤細{{orderNo}}</view> + <view>鐗╂枡缂栫爜锛歿{item.materielCode}}</view> + <view>鐗╂枡鍚嶇О锛歿{item.materielName}}</view> + <view>鏁伴噺锛歿{item.orderQuantity+item.unit}}</view> + <view>鍑哄簱鏁伴噺锛歿{item.orderQuantity}}</view> + <view>宸插嚭鏁伴噺锛歿{item.overOutQuantity}}</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: "", + outQty: "", + orderInfo: [], + focus: false, + pkfocus: false, + barcode: "", + materSn: "", + Initiallife: 1000, + sns: [], + pksns: [], + addressFocus: false, + inboundBarcode: "", + address: "", + check: true, + value: "", + matInfo: [], + value2: "", + matTotals: [], + warehouseId: "", + Test: false, + Testlabel: "", + Testplaceholder: "", + Testcheck: false, + pkmaterSn: "", + pkmatInfos: [] + } + }, + onShow() {}, + onLoad(res) { + this.focus = false; + this.addressFocus = false; + this.orderNo = res.orderNo; + this.warehouseId = res.warehouseId; + this.label = "鍗曟嵁缂栧彿锛�" + this.orderNo; + this.getData(); + }, + methods: { + voiceSpeech(src) { + innerAudioContext.src = src; // '../../static/success.mp3'; + innerAudioContext.play(); + }, + getData() { + var postData = { + MainData: { + orderNo: this.orderNo + }, + } + this.$u.post('/api/OutboundOrderDetail/GetOutboundOrderDetails', 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(); + } + } + }, + //鎵爜 + 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) { + this.sns.push(res.data.serialNumber); + + this.matInfos.push(res.data); + if (res.message) { + 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); + } + }) + } + }) + }, + 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; + } + } + this.$u.post('/api/InboundOrder/MaterielGroup', { + MainData: { + "palletCode": this.barcode, + "orderNo": this.orderNo, + "initiallife": this.Initiallife, + // "isFull": this.check + "warehouseId": this.warehouseId + }, + DelKeys: 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 -- Gitblit v1.9.3