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