From e5316b19ae5f33d29d6e9410e894caed30eebf29 Mon Sep 17 00:00:00 2001
From: wankeda <Administrator@DESKTOP-HAU3ST3>
Date: 星期二, 18 二月 2025 09:11:51 +0800
Subject: [PATCH] PP仓输送线,堆垛机交互
---
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs | 102 +++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 82 insertions(+), 20 deletions(-)
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 c5d0066..132956c 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"
@@ -71,7 +71,13 @@
return WebResponseContent.Instance.Error($"{upperOrderNo}棰嗘枡鍗曞彿宸插瓨鍦�");
}
}
- saveModel.DetailData[0].Add("orderDetailStatus", OrderDetailStatusEnum.New.ObjToInt());
+ if (saveModel.DetailData.Count>0)
+ {
+ for (int i = 0; i < saveModel.DetailData.Count; i++)
+ {
+ saveModel.DetailData[i].Add("orderDetailStatus", OrderDetailStatusEnum.New.ObjToInt());
+ }
+ }
return base.AddData(saveModel);
}
public WebResponseContent GetOutboundOrders(SaveModel saveModel)
@@ -204,7 +210,8 @@
_unitOfWorkManage.CommitTran();
#region 鍑哄簱瀹屾垚涓婃姤ERP
- if (outboundOrder.OrderStatus == OutOrderStatusEnum.鍑哄簱瀹屾垚.ObjToInt())
+ //鐢熶骇棰嗘枡,鐮斿彂棰嗘枡锛屾爣鍑嗛鏂欙紝鎺ㄩ�丒RP鍑哄簱
+ if (outboundOrder.OrderStatus == OutOrderStatusEnum.鍑哄簱瀹屾垚.ObjToInt() && outboundOrder.OrderType==OutOrderTypeEnum.Issue.ObjToInt())
_invokeERPService.InvokeOutStandardsApi(GetERPIssueModel(outboundOrder, warehouse.WarehouseCode));
#endregion
content.OK();
@@ -247,6 +254,9 @@
Pickcode = outboundOrder.UpperOrderNo,
PickList = eRPPickModels
};
+ string Createuser = "";
+ if (!string.IsNullOrEmpty(App.User.UserName)) Createuser = App.User.UserName;
+ else Createuser = stockLockInfos.FirstOrDefault().Creater;
issueModel = new ERPIssueModel()
{
UniqueTag = outboundOrder.Id.ToString(),
@@ -256,9 +266,12 @@
Deptno = outboundOrder.DepartmentCode,
Deptname = outboundOrder.DepartmentName,
Createtime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
- Createuser = App.User.UserName ?? stockLockInfos.FirstOrDefault().Creater,
+ Createuser = string.IsNullOrEmpty(Createuser) ? Createuser : "admin",
Issitem = new List<ERPIssueItemModel>() { issueItemModel },
};
+ //鏇存柊鍙戞枡鍗曞彿
+ outboundOrder.UpFLOrderNo = issueModel.Code;
+ BaseDal.UpdateData(outboundOrder);
}
catch (Exception ex)
{
@@ -304,6 +317,7 @@
BatchNo = model.MLot,
MaterielCode = model.MCode,
MaterielName = materielInfo.MaterielName,
+ MaterielSpec=materielInfo.MaterielSpec,
OrderDetailStatus = OrderDetailStatusEnum.New.ObjToInt(),
OrderQuantity = model.Qty,
OrderId = oldOutboundOrder.Id
@@ -318,6 +332,7 @@
RowNo = Convert.ToInt32(model.RowNo),
BatchNo = model.MLot,
MaterielCode = model.MCode,
+ MaterielSpec = materielInfo.MaterielSpec,
MaterielName = materielInfo.MaterielName,
OrderDetailStatus = OrderDetailStatusEnum.New.ObjToInt(),
OrderQuantity = model.Qty,
@@ -334,7 +349,16 @@
DepartmentName = model.DepartmentName,
Details = new List<Dt_OutboundOrderDetail> { outboundOrderDetail },
Remark = model.Node
-
+ };
+ outboundOrder.OrderType = model.OType switch
+ {
+ 1 or 2 or 3=> OutOrderTypeEnum.Issue.ObjToInt(),
+ 4=>OutOrderTypeEnum.Quality.ObjToInt(),
+ 5=>OutOrderTypeEnum.Allocate.ObjToInt(),
+ 6=>OutOrderTypeEnum.MaintenanceIssue.ObjToInt(),
+ 7=>OutOrderTypeEnum.SaleOut.ObjToInt(),
+ 8=>OutOrderTypeEnum.Rework.ObjToInt(),
+ _=>0
};
Db.InsertNav(outboundOrder).Include(x => x.Details).ExecuteCommand();
}
@@ -359,6 +383,7 @@
RowNo = Convert.ToInt32(model.RowNo),
BatchNo = model.MLot,
MaterielCode = model.MCode,
+ MaterielSpec = materielInfo.MaterielSpec,
MaterielName = materielInfo.MaterielName,
OrderDetailStatus = OrderDetailStatusEnum.New.ObjToInt(),
OrderQuantity = model.Qty,
@@ -373,6 +398,10 @@
{
return WebResponseContent.Instance.Error($"鏈壘鍒拌鍑哄簱鍗�");
}
+ _unitOfWorkManage.BeginTran();
+ BaseDal.DeleteData(oldOutboundOrder);
+ _outboundOrderDetailRepository.DeleteData(oldOutboundOrder.Details);
+ _unitOfWorkManage.CommitTran();
}
return WebResponseContent.Instance.OK();
@@ -454,6 +483,9 @@
Createuser = outboundOrder.Creater,
Issitem = new List<ERPIssueItemModel>() { issueItemModel },
};
+ //鏇存柊鍙戞枡鍗曞彿
+ outboundOrder.UpFLOrderNo = issueModel.Code;
+ BaseDal.UpdateData(outboundOrder);
_invokeERPService.InvokeOutStandardsApi(issueModel);
}
else
@@ -515,21 +547,20 @@
// Issitem = new List<ERPIssueItemModel>() { issueItemModel },
//};
#endregion
- }
-
- if (stockInfos.Count > 0)
- {
- _stockService.StockInfoService.Repository.UpdateData(stockInfos);
- }
- else
- {
- _outStockLockInfoService.Repository.UpdateData(_OutStockLockInfos);
- }
- //鍑哄簱瀹屾垚涓婃姤ERP 娴嬭瘯娉ㄩ噴
- if (outboundOrder.OrderStatus == OutOrderStatusEnum.鍑哄簱瀹屾垚.ObjToInt())
- {
- issueModel = GetERPIssueModel(outboundOrder, warehouse.WarehouseCode);
- _invokeERPService.InvokeOutStandardsApi(issueModel);
+ if (stockInfos.Count > 0)
+ {
+ _stockService.StockInfoService.Repository.UpdateData(stockInfos);
+ }
+ else
+ {
+ _outStockLockInfoService.Repository.UpdateData(_OutStockLockInfos);
+ }
+ //鍑哄簱瀹屾垚涓婃姤ERP 娴嬭瘯娉ㄩ噴
+ if (outboundOrder.OrderStatus == OutOrderStatusEnum.鍑哄簱瀹屾垚.ObjToInt())
+ {
+ issueModel = GetERPIssueModel(outboundOrder, warehouse.WarehouseCode);
+ _invokeERPService.InvokeOutStandardsApi(issueModel);
+ }
}
return WebResponseContent.Instance.OK();
}
@@ -553,7 +584,7 @@
throw new ArgumentNullException(nameof(ruleCode));
SqlSugarClient sugarClient = new SqlSugarClient(new ConnectionConfig
{
- IsAutoCloseConnection = false,
+ IsAutoCloseConnection = true,
DbType = DbType.SqlServer,
ConnectionString = DBContext.ConnectionString
});
@@ -625,5 +656,36 @@
return WebResponseContent.Instance.Error(ex.Message);
}
}
+ /// <summary>
+ /// 鏍规嵁鍑哄簱鍗曟帹閫丒RP绯荤粺
+ /// </summary>
+ /// <param name="outId"></param>
+ /// <param name="WarehouseCode"></param>
+ /// <returns></returns>
+ public WebResponseContent PushERPOutBound(int outId, string WarehouseCode)
+ {
+ WebResponseContent content=new WebResponseContent();
+ try
+ {
+ //鑾峰彇鍑哄簱鍗�
+ Dt_OutboundOrder outboundOrder = Db.Queryable<Dt_OutboundOrder>().Where(x => x.Id == outId).Includes(x => x.Details).First();
+ if (outboundOrder == null)
+ {
+ return content.Error("鍑哄簱鍗曚笉瀛樺湪");
+ }
+ if (outboundOrder.Details.Count!=(outboundOrder.Details.Where(x=>x.OrderDetailStatus==OrderDetailStatusEnum.Over.ObjToInt()).ToList().Count)||outboundOrder.OrderStatus!=OutOrderStatusEnum.鍑哄簱瀹屾垚.ObjToInt())
+ {
+ return content.Error("璇ュ嚭搴撳崟鏈畬鎴�");
+ }
+ ERPIssueModel issueModel = GetERPIssueModel(outboundOrder, WarehouseCode);
+ string response=_invokeERPService.InvokeOutStandardsApi(issueModel);
+ return content.OK(response);
+ }
+ catch (Exception ex)
+ {
+ content.Error(ex.Message);
+ }
+ return content;
+ }
}
}
--
Gitblit v1.9.3