From c72afdd7ece074901405158fce8df69ee56cd36e Mon Sep 17 00:00:00 2001 From: dengjunjie <dengjunjie@hnkhzn.com> Date: 星期日, 12 一月 2025 19:24:49 +0800 Subject: [PATCH] WMS添加指定平库出库功能 --- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Outbound.cs | 152 ++++++++++++++++++++++++++++++ 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs | 4 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderDetailService.cs | 3 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IStockService/IStockInfoService.cs | 1 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs | 4 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs | 12 ++ 代码管理/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/StockSelect.vue | 47 +++++--- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs | 1 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockInfoService.cs | 43 ++++++++ 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/StockInfoController.cs | 19 +++ 10 files changed, 260 insertions(+), 26 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/StockSelect.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/StockSelect.vue" index 86d7f1c..c4dcc64 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/StockSelect.vue" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/StockSelect.vue" @@ -10,7 +10,7 @@ <div class="box-head"> <el-alert :closable="false" style="width: 100%"> <el-row> - <el-col :span="20"> + <el-col :span="16"> <span class="less-style">鐗╂枡鍚嶇О锛� {{ row.materielName }} </span> <el-divider direction="vertical"></el-divider> <span class="less-style">鐗╂枡缂栧彿锛� {{ row.materielCode }} </span> @@ -23,24 +23,29 @@ >宸查�夋暟閲忥細 {{ selectionSum }} </span> </el-col> - <el-col :span="2"> + <el-col :span="8"> <el-link type="primary" size="small" style="float: right; height: 20px" + @click="getData(false)" + >{{ kcname }}</el-link + > + <el-link + type="primary" + size="small" + style="float: right; height: 20px; margin-right: 10px" @click="getData" >鍒锋柊</el-link - ></el-col - > - <el-col :span="2"> + > <el-link type="primary" size="small" - style="float: right; height: 20px" + style="float: right; height: 20px; margin-right: 10px" @click="revokeAssign" >鎾ら攢鍒嗛厤</el-link - ></el-col - > + > + </el-col> </el-row> </el-alert> </div> @@ -102,11 +107,14 @@ </template> <script> import VolBox from "@/components/basic/VolBox.vue"; +import { fa } from "element-plus/es/locales.mjs"; export default { components: { VolBox }, data() { return { row: null, + kcname: "", + pkcx: false, showDetialBox: false, tableData: [], tableColumns: [ @@ -179,15 +187,14 @@ }); }, outbound() { - if(this.selection.length<=0){ + if (this.selection.length <= 0) { return this.$message.error("璇峰嬀閫�"); } + let url = this.pkcx + ? "api/Task/GeneratePKOutboundTask?orderDetailId=" + : "api/Task/GenerateOutboundTask?orderDetailId="; this.http - .post( - "api/Task/GenerateOutboundTask?orderDetailId=" + this.row.id, - this.selection, - "鏁版嵁澶勭悊涓�" - ) + .post(url + this.row.id, this.selection, "鏁版嵁澶勭悊涓�") .then((x) => { if (!x.status) return this.$message.error(x.message); this.$message.success("鎿嶄綔鎴愬姛"); @@ -197,13 +204,15 @@ }); }); }, - getData() { + getData(a) { + if (!a) this.pkcx = !this.pkcx; + let url = this.pkcx + ? "api/StockInfo/GetPKStockSelectViews?materielCode=" + : "api/StockInfo/GetStockSelectViews?materielCode="; + this.kcname = this.pkcx ? "绔嬪簱搴撳瓨" : "骞冲簱搴撳瓨"; this.http .post( - "api/StockInfo/GetStockSelectViews?materielCode=" + - this.row.materielCode + - "&orderId=" + - this.row.orderId, + url + this.row.materielCode + "&orderId=" + this.row.orderId, null, "鏌ヨ涓�" ) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IStockService/IStockInfoService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IStockService/IStockInfoService.cs" index fde161f..6447126 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IStockService/IStockInfoService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IStockService/IStockInfoService.cs" @@ -16,6 +16,7 @@ IStockInfoRepository Repository { get; } List<StockSelectViewDTO> GetStockSelectViews(int orderId, string materielCode); + List<StockSelectViewDTO> GetPKStockSelectViews(int orderId, string materielCode); List<Dt_StockInfo> GetOutboundStocks(List<Dt_StockInfo> stockInfos, string materielCode, float needQuantity, out float residueQuantity); diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs" index 8d0a9e8..97fd35c 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs" @@ -218,5 +218,6 @@ /// <param name="task"></param> /// <returns></returns> WebResponseContent UpdateTaskInfo(WCSTaskDTO task); + WebResponseContent GeneratePKOutboundTask(int orderDetailId, List<StockSelectViewDTO> stockSelectViews); } } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs" index 524e624..b4686f5 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs" @@ -119,11 +119,11 @@ List<Dt_InboundOrder> dt_ReceiveOrders = new List<Dt_InboundOrder>(); if (string.IsNullOrEmpty(orderNo)) { - dt_ReceiveOrders = Db.Queryable<Dt_InboundOrder>().Where(x => x.OrderStatus < InOrderStatusEnum.鍏ュ簱瀹屾垚.ObjToInt() && x.WarehouseId == warehouseId).ToPageList(pageNo, 5); + dt_ReceiveOrders = Db.Queryable<Dt_InboundOrder>().Where(x => x.OrderStatus < InOrderStatusEnum.鍏ュ簱瀹屾垚.ObjToInt() && x.WarehouseId == warehouseId).OrderByDescending(x => x.CreateDate).ToPageList(pageNo, 5); } else { - dt_ReceiveOrders = Db.Queryable<Dt_InboundOrder>().Where(x => (x.InboundOrderNo.Contains(orderNo)) && x.OrderStatus < InOrderStatusEnum.鍏ュ簱瀹屾垚.ObjToInt() && x.WarehouseId == warehouseId).ToPageList(pageNo, 5); + dt_ReceiveOrders = Db.Queryable<Dt_InboundOrder>().Where(x => (x.InboundOrderNo.Contains(orderNo)) && x.OrderStatus < InOrderStatusEnum.鍏ュ簱瀹屾垚.ObjToInt() && x.WarehouseId == warehouseId).OrderByDescending(x => x.CreateDate).ToPageList(pageNo, 5); } content.OK(data: dt_ReceiveOrders); 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 8aa4a5d..c53d8e3 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" @@ -1,4 +1,5 @@ -锘縰sing OfficeOpenXml.FormulaParsing.Excel.Functions.RefAndLookup; +锘縰sing MailKit.Search; +using OfficeOpenXml.FormulaParsing.Excel.Functions.RefAndLookup; using System; using System.Collections.Generic; using System.Linq; 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 ba1c64e..ddaeff6 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" @@ -82,11 +82,11 @@ 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); + dt_ReceiveOrders = Db.Queryable<Dt_OutboundOrder>().Where(x => x.OrderStatus < OutLockStockStatusEnum.鍑哄簱瀹屾垚.ObjToInt() && x.WarehouseId == warehouseId).OrderByDescending(x => x.CreateDate).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); + dt_ReceiveOrders = Db.Queryable<Dt_OutboundOrder>().Where(x => (x.OrderNo.Contains(orderNo)) && x.OrderStatus < OutLockStockStatusEnum.鍑哄簱瀹屾垚.ObjToInt() && x.WarehouseId == warehouseId).OrderByDescending(x => x.CreateDate).ToPageList(pageNo, 5); } content.OK(data: dt_ReceiveOrders); diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockInfoService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockInfoService.cs" index 47bcaf4..0e31f7b 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockInfoService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockInfoService.cs" @@ -37,6 +37,12 @@ _outboundRepository = outboundRepository; } + /// <summary> + /// 鏌ヨ璁㈠崟绔嬪簱搴撳瓨瑙嗗浘 + /// </summary> + /// <param name="orderId"></param> + /// <param name="materielCode"></param> + /// <returns></returns> public List<StockSelectViewDTO> GetStockSelectViews(int orderId, string materielCode) { try @@ -71,6 +77,43 @@ } } + /// <summary> + /// 鏌ヨ璁㈠崟骞冲簱搴撳瓨瑙嗗浘 + /// </summary> + /// <param name="orderId"></param> + /// <param name="materielCode"></param> + /// <returns></returns> + public List<StockSelectViewDTO> GetPKStockSelectViews(int orderId, string materielCode) + { + try + { + Dt_OutboundOrder outboundOrder = _outboundRepository.OutboundOrderRepository.QueryFirst(x => x.Id == orderId); + if (outboundOrder == null) + { + throw new Exception($"鏈壘鍒板嚭搴撳崟淇℃伅"); + } + return BaseDal.QueryTabs<Dt_StockInfo, Dt_StockInfoDetail, StockSelectViewDTO>((a, b) => a.Id == b.StockId && a.WarehouseId == outboundOrder.WarehouseId, (a, b) => new StockSelectViewDTO + { + LocationCode = a.LocationCode, + MaterielCode = b.MaterielCode, + MaterielName = b.MaterielName, + PalletCode = a.PalletCode, + UseableQuantity = b.StockQuantity - b.OutboundQuantity + }, a => a.LocationCode == "骞冲簱浣�", b => b.StockQuantity > b.OutboundQuantity && b.MaterielCode == materielCode, x => true).GroupBy(x => x.PalletCode).Select(x => new StockSelectViewDTO + { + LocationCode = x.FirstOrDefault()?.LocationCode ?? "", + MaterielCode = x.FirstOrDefault()?.MaterielCode ?? "", + MaterielName = x.FirstOrDefault()?.MaterielName ?? "", + PalletCode = x.Key, + UseableQuantity = x.Sum(x => x.UseableQuantity) + }).ToList(); + } + catch (Exception ex) + { + return null; + } + } + public WebResponseContent StockQueryData(SaveModel saveModel) { try diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Outbound.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Outbound.cs" index 67f133f..acdd339 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Outbound.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Outbound.cs" @@ -15,6 +15,8 @@ using WIDESEA_Common.StockEnum; using WIDESEA_Common.CommonEnum; using WIDESEA_Common.LocationEnum; +using MailKit.Search; +using WIDESEA_External.Model; namespace WIDESEA_TaskInfoService { @@ -30,13 +32,13 @@ WebResponseContent content = new WebResponseContent(); try { - Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x=>x.Id==id).Includes(x=>x.Details).First(); + Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.Id == id).Includes(x => x.Details).First(); if (stockInfo == null) { return content.Error($"鏈壘鍒板簱瀛�"); } Dt_LocationInfo locationInfo = _basicRepository.LocationInfoRepository.QueryFirst(x => x.LocationCode == stockInfo.LocationCode); - if (locationInfo!=null && (locationInfo.EnableStatus == EnableStatusEnum.OnlyOut.ObjToInt() || locationInfo.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && locationInfo.LocationStatus==LocationStatusEnum.InStock.ObjToInt() && stockInfo.StockStatus==StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt()) + if (locationInfo != null && (locationInfo.EnableStatus == EnableStatusEnum.OnlyOut.ObjToInt() || locationInfo.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && locationInfo.LocationStatus == LocationStatusEnum.InStock.ObjToInt() && stockInfo.StockStatus == StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt()) { List<Dt_Task> tasks = GetTasks(new List<Dt_StockInfo>() { stockInfo }, TaskTypeEnum.Outbound); if (tasks == null || tasks.Count <= 0) @@ -253,6 +255,152 @@ } /// <summary> + /// 骞冲簱鐩存帴鍑哄簱 + /// </summary> + /// <param name="orderDetailId"></param> + /// <param name="stockSelectViews"></param> + /// <returns></returns> + public WebResponseContent GeneratePKOutboundTask(int orderDetailId, List<StockSelectViewDTO> stockSelectViews) + { + try + { + Dt_OutboundOrderDetail OrderDetail = _outboundService.OutboundOrderDetailService.Repository.QueryFirst(x => x.Id == orderDetailId); + + if (OrderDetail == null) + { + throw new Exception("鏈壘鍒板嚭搴撳崟鏄庣粏淇℃伅"); + } + if (OrderDetail.OrderDetailStatus == OrderDetailStatusEnum.Over.ObjToInt()) + throw new Exception("鍑哄簱鍗曞凡瀹屾垚"); + Dt_OutboundOrder outboundOrder = BaseDal.Db.Queryable<Dt_OutboundOrder>().Where(x => x.Id == OrderDetail.OrderId).Includes(x => x.Details).First(); + if (outboundOrder == null) + { + return WebResponseContent.Instance.Error($"鏈壘鍒板嚭搴撳崟淇℃伅"); + } + Dt_Warehouse warehouse = _basicService.WarehouseService.Repository.QueryFirst(x => x.WarehouseId == outboundOrder.WarehouseId); + List<Dt_StockInfo> outStocks = _stockService.StockInfoService.Repository.GetStockInfosByPalletCodes(stockSelectViews.Select(x => x.PalletCode).ToList()); + if (outStocks.Count < 1) return WebResponseContent.Instance.Error($"搴撳瓨涓嶈冻"); + List<Dt_OutStockLockInfo> outStockLockInfos = new List<Dt_OutStockLockInfo>(); + List<Dt_StockInfo> upStocks = new List<Dt_StockInfo>(); + List<Dt_StockInfo> deStocks = new List<Dt_StockInfo>(); + List<Dt_StockInfoDetail> upstockDetails = new List<Dt_StockInfoDetail>(); + List<Dt_StockInfoDetail> destockDetails = new List<Dt_StockInfoDetail>(); + outStocks.ForEach(x => + { + x.Details.Where(x => x.MaterielCode == OrderDetail.MaterielCode).ToList().ForEach(v => + { + float OriginalQuantity = v.StockQuantity; + float assignQuantity = 0;//鍒嗛厤鏁伴噺 + float assignAmount = OrderDetail.OrderQuantity - OrderDetail.OverOutQuantity;//寰呭嚭鏁伴噺 + if (assignAmount > 0) + { + if (v.StockQuantity >= assignAmount) + { + assignQuantity = assignAmount; + v.StockQuantity -= assignAmount; + OrderDetail.OverOutQuantity += assignAmount; + OrderDetail.LockQuantity += assignAmount; + upstockDetails.Add(v); + } + else + { + assignQuantity = v.StockQuantity; + OrderDetail.OverOutQuantity += v.StockQuantity; + OrderDetail.LockQuantity += v.StockQuantity; + v.StockQuantity = 0; + destockDetails.Add(v); + } + Dt_OutStockLockInfo outStockLockInfo = new Dt_OutStockLockInfo() + { + PalletCode = x.PalletCode, + AssignQuantity = assignQuantity, + MaterielCode = OrderDetail.MaterielCode, + BatchNo = v.BatchNo, + LocationCode = x.LocationCode, + MaterielName = v.MaterielName, + OrderDetailId = OrderDetail.Id, + OrderNo = outboundOrder.OrderNo, + OrderType = outboundOrder.OrderType, + OriginalQuantity = OriginalQuantity, + Status = OutLockStockStatusEnum.鍑哄簱瀹屾垚.ObjToInt(), + StockId = x.Id, + TaskNum = 0, + OrderQuantity = OrderDetail.OrderQuantity, + Unit = OrderDetail.Unit + }; + outStockLockInfos.Add(outStockLockInfo); + } + }); + int overCount = x.Details.Where(x => x.StockQuantity == 0).Count(); + if (overCount == x.Details.Count) deStocks.Add(x); + else upStocks.Add(x); + }); + outboundOrder.OrderStatus = OutOrderStatusEnum.鍑哄簱涓�.ObjToInt(); + OrderDetail.OrderDetailStatus = OrderDetail.OrderQuantity > OrderDetail.OverOutQuantity ? OrderDetailStatusEnum.AssignOverPartial.ObjToInt() : OrderDetailStatusEnum.Over.ObjToInt(); + if (OrderDetail.OrderDetailStatus == OrderDetailStatusEnum.Over.ObjToInt()) + { + int overCount = outboundOrder.Details.Where(x => x.OrderDetailStatus == OrderDetailStatusEnum.Over.ObjToInt()).Count(); + if (outboundOrder.Details.Count - 1 == overCount) + outboundOrder.OrderStatus = OutOrderStatusEnum.鍑哄簱瀹屾垚.ObjToInt(); + } + _unitOfWorkManage.BeginTran(); + _outboundService.OutboundStockLockInfoService.AddData(outStockLockInfos); + _outboundService.OutboundOrderService.UpdateData(outboundOrder); + _outboundService.OutboundOrderDetailService.UpdateData(OrderDetail); + _stockRepository.StockInfoRepository.UpdateData(upStocks); + _stockRepository.StockInfoRepository.DeleteData(deStocks); + _stockRepository.StockInfoDetailRepository.UpdateData(upstockDetails); + _stockRepository.StockInfoDetailRepository.DeleteData(destockDetails); + _unitOfWorkManage.CommitTran(); + + #region 涓婃姤ERP + List<ERPPickModel> eRPPickModels = new List<ERPPickModel>(); + outStockLockInfos.ForEach(x => + { + ERPPickItemModel pickItemModel = new ERPPickItemModel() + { + Lotno = x.BatchNo, + Qty = x.AssignQuantity.ToString(), + Location = warehouse.WarehouseCode + }; + ERPPickModel pickModel = new ERPPickModel() + { + Rowindex = OrderDetail.RowNo, + Material = OrderDetail.MaterielCode, + Qty = pickItemModel.Qty, + Dataitem = new List<ERPPickItemModel> { pickItemModel } + }; + eRPPickModels.Add(pickModel); + }); + ERPIssueItemModel issueItemModel = new ERPIssueItemModel() + { + Pickcode = outboundOrder.UpperOrderNo, + PickList = eRPPickModels + }; + ERPIssueModel issueModel = new ERPIssueModel() + { + UniqueTag = outboundOrder.Id.ToString(), + Code = outboundOrder.OrderNo, + WarehouseCode = warehouse.WarehouseCode, + Docremark = "", + Deptno = outboundOrder.DepartmentCode, + Deptname = outboundOrder.DepartmentName, + Createtime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), + Createuser = App.User.UserName, + Issitem = new List<ERPIssueItemModel>() { issueItemModel } + }; + _invokeERPService.InvokeOutStandardsApi(issueModel); + #endregion + + return WebResponseContent.Instance.OK(); + } + catch (Exception ex) + { + return WebResponseContent.Instance.Error(ex.Message); + } + } + + /// <summary> /// 鐢熸垚鍑哄簱浠诲姟鍚庢暟鎹洿鏂板埌鏁版嵁搴� /// </summary> /// <param name="tasks"></param> diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/StockInfoController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/StockInfoController.cs" index 530fa23..a06defd 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/StockInfoController.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/StockInfoController.cs" @@ -22,11 +22,30 @@ { } + /// <summary> + /// 鏌ヨ璁㈠崟绔嬪簱搴撳瓨瑙嗗浘 + /// </summary> + /// <param name="orderId"></param> + /// <param name="materielCode"></param> + /// <returns></returns> [HttpPost, HttpGet, Route("GetStockSelectViews")] public List<StockSelectViewDTO> GetStockSelectViews(int orderId, string materielCode) { return Service.GetStockSelectViews(orderId, materielCode); } + + /// <summary> + /// 鏌ヨ璁㈠崟骞冲簱搴撳瓨瑙嗗浘 + /// </summary> + /// <param name="orderId"></param> + /// <param name="materielCode"></param> + /// <returns></returns> + [HttpPost, HttpGet, Route("GetPKStockSelectViews")] + public List<StockSelectViewDTO> GetPKStockSelectViews(int orderId, string materielCode) + { + return Service.GetPKStockSelectViews(orderId, materielCode); + } + /// <summary> /// 鏍规嵁鎵樼洏鍜屽簱鍖烘煡璇㈠簱瀛樹俊鎭� /// </summary> diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs" index db78b1a..98f8469 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs" @@ -109,6 +109,18 @@ } /// <summary> + /// 骞冲簱鐩存帴鍑哄簱 + /// </summary> + /// <param name="orderDetailId"></param> + /// <param name="stockSelectViews"></param> + /// <returns></returns> + [HttpPost, HttpGet, Route("GeneratePKOutboundTask"), AllowAnonymous] + public WebResponseContent GeneratePKOutboundTask(int orderDetailId, [FromBody] List<StockSelectViewDTO> stockSelectViews) + { + return Service.GeneratePKOutboundTask(orderDetailId, stockSelectViews); + } + + /// <summary> /// 鐢熸垚鍑哄簱浠诲姟 /// </summary> /// <param name="keys"></param> -- Gitblit v1.9.3