From c7f255af77f13a52e6f01c8ec81482dc9ae07f68 Mon Sep 17 00:00:00 2001
From: yanjinhui <3306209981@qq.com>
Date: 星期五, 24 十月 2025 22:06:00 +0800
Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/ZhiHuiQiCe/FangCangZhiNeng
---
新建文件夹/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/DeliveryOrderServices.cs | 231 +++++++++++----------------------------------------------
1 files changed, 44 insertions(+), 187 deletions(-)
diff --git "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/DeliveryOrderServices.cs" "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/DeliveryOrderServices.cs"
index 1df1691..9f4cf27 100644
--- "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/DeliveryOrderServices.cs"
+++ "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/DeliveryOrderServices.cs"
@@ -34,7 +34,7 @@
{
public partial class DeliveryOrderServices : ServiceBase<Dt_DeliveryOrder, IRepository<Dt_DeliveryOrder>>, IDeliveryOrderServices
{
- static string SearchDate = "";
+
private readonly IBasicService _basicService;
private readonly IUnitOfWorkManage _unitOfWorkManage;
private readonly IInventory_BatchServices _inventory_BatchServices;
@@ -55,6 +55,9 @@
_cabinOrderServices = cabinOrderServices;
_tacticsService = tacticsService;
}
+
+
+ static string SearchDate = "2025-09-10 00:00:00";
public WebResponseContent GetUpstreamOutOrder()
{
var responseContent = new WebResponseContent();
@@ -117,203 +120,52 @@
{
// 鍒涘缓鍑哄簱閫�璐у崟 - 杩欓噷闇�瑕佹牴鎹笟鍔¢�昏緫瀹炵幇
// 鏆傛椂璺宠繃鎴栧疄鐜伴��璐ч�昏緫
- continue;
+ //continue;
+ #region 杞崲鎴愬叆搴撳崟
+ UpstreamOrderInfo order = new UpstreamOrderInfo()
+ {
+ order_no = outorder.order_no,
+ order_type = outorder.order_type,
+ warehouse_no = outorder.warehouse_no,
+ details = new List<UpstreamOrderDetail>()
+ };
+ foreach (var item in outorder.details)
+ {
+ UpstreamOrderDetail detail = new UpstreamOrderDetail()
+ {
+ batch_num = item.batch_num,
+ goods_no = item.goods_no,
+ order_qty = item.order_qty,
+ exp_date = item.exp_date,
+ };
+ order.details.Add(detail);
+ }
+ responseContent = _cabinOrderServices.CreateInboundOrder(order);
+ List<Dt_CabinOrder>? dt_CabinOrders = responseContent.Data as List<Dt_CabinOrder>;
+ if (dt_CabinOrders != null && dt_CabinOrders.Count > 0)
+ BaseDal.Db.InsertNav(dt_CabinOrders).Include(x => x.Details).ExecuteCommand();
+ #endregion
}
else if (outorder.order_type == "1") // 姝e父鍑哄簱鍗�
{
CreateOutboundOrder(outorder);//鍒涘缓鍑哄簱鍗曘�佸鐞嗗簱瀛樸�佹坊鍔犲嚭搴撲换鍔�
- // 鎺掗櫎鐗规畩鑽搧,鐗规畩鑽搧鐩存帴鎻掑叆
- if (outorder.warehouse_no != "001" && (outorder.warehouse_no == "010" || outorder.warehouse_no == "003" || outorder.warehouse_no == "017"))
- {
- var entityOrder = new Dt_DeliveryOrder
- {
- Out_no = outorder.order_no,
- Out_type = outorder.order_type,
- Client_no = outorder.client_no,
- Client_name = outorder.client_name,
- Account_time = outorder.account_time,
- Warehouse_no = outorder.warehouse_no,
- OutStatus = "鏂板缓",
- Details = outorder.details.Select(d => new Dt_DeliveryOrderDetail
- {
- Goods_no = d.goods_no,
- Order_qty = Math.Abs(d.order_qty), // 鍑哄簱鏁伴噺杞负姝f暟
- Batch_num = d.batch_num,
- Exp_date = d.exp_date,
- OotDetailStatus = "鏂板缓",
- Status = 2, // pad骞冲簱锛屾棤闇�鍚屾
- }).ToList()
- };
- _DeliveryOrders.Add(entityOrder);
- }
- else // 甯歌鑽搧001鎴跨粰绔嬪簱,瑕佹槸鏈夋暣绠卞氨缁欏钩搴�
- {
- var entityOrder = new Dt_DeliveryOrder
- {
- Out_no = outorder.order_no,
- Out_type = outorder.order_type,
- Client_no = outorder.client_no,
- Client_name = outorder.client_name,
- Account_time = outorder.account_time,
- Warehouse_no = outorder.warehouse_no,
- OutStatus = "鏂板缓",
- Details = new List<Dt_DeliveryOrderDetail>()
- };
-
- // 閬嶅巻鍑哄簱鏄庣粏
- foreach (var item in outorder.details)
- {
- // 灏嗕笂娓稿嚭搴撴暟閲忚浆涓烘鏁�
- decimal orderQty = Math.Abs((decimal)item.order_qty);
-
- #region 鏍规嵁鐗╂枡缂栫爜鏌ヨ鐗╂枡淇℃伅
- var medication = BaseDal.Db.Queryable<Dt_MaterielInfo>()
- .Where(m => m.MaterielCode == item.goods_no)
- .First();
-
- // 濡傛灉鐗╂枡淇℃伅涓嶅瓨鍦紝璺宠繃鏁翠釜鍑哄簱鍗�
- if (medication == null)
- {
- skipOrder = true;
- Console.WriteLine($"璺冲嚭澶勫簱鍗� {outorder.order_no}锛屽師鍥狅細鏈壘鍒板晢鍝� [{item.goods_no}] 鐨勭墿鏂欎俊鎭��");
- break;
- }
-
- // 鑻ョ墿鏂欎笉瀛樺湪鎴� MaterielSourceType 涓虹┖锛屽垯璺宠繃鏁翠釜鍑哄簱鍗�
- if (medication == null || !Enum.IsDefined(typeof(MaterielSourceTypeEnum), medication.MaterielSourceType))
- {
- skipOrder = true;
- break;
- }
- #endregion
-
- /// 鏍规嵁鐗╂枡淇℃伅澶у皬浠跺睘鎬у尯鍒嗘槸鍚︿粠绔嬪簱鍑哄簱 // 澶т欢浠庡钩搴撳嚭搴�
- if (medication.MaterielSourceType == MaterielSourceTypeEnum.PurchasePart) // 濡傛灉鐗╂枡鏄ぇ浠�
- {
- var orderDetail = new Dt_DeliveryOrderDetail()
- {
- Reservoirarea = outorder.warehouse_no,
- Goods_no = item.goods_no,
- Order_qty = orderQty,
- Batch_num = item.batch_num,
- Exp_date = item.exp_date,
- OotDetailStatus = "鏂板缓",
- Status = 2 // 骞冲簱锛屾棤闇�鍚屾
- };
- entityOrder.Details.Add(orderDetail);
- }
- else
- {
- Dt_DeliveryOrderDetail orderDetail = null;
-
- // 璁$畻鏁寸鍜屾暎浠舵暟閲�
- var ys = orderQty % medication.BoxQty; // 涓嶈兘鏁撮櫎绠辫鐨勬暎浠舵暟
- var xs = (int)(orderQty / medication.BoxQty); // 鏁寸鏁伴噺锛堜繚鐣欐暣鏁帮級
-
- #region 浠庣珛搴撳嚭搴撴暎浠�
-
- #region 鍒ゆ柇鏄惁鏈夋暎浠�
- if (ys > 0 && medication.Business_qty >= ys)
- {
- orderDetail = new Dt_DeliveryOrderDetail()
- {
- Reservoirarea = outorder.warehouse_no,
- Goods_no = item.goods_no,
- Order_qty = ys,
- Batch_num = item.batch_num,
- Exp_date = item.exp_date,
- OotDetailStatus = "鏂板缓",
- Status = 0 // 绔嬪簱锛岄渶瑕佸悓姝ョ粰WCS
- };
- medication.Business_qty -= ys;
- }
- #endregion
-
- #region 鍒ゆ柇绔嬪簱搴撳瓨鏄惁瓒冲鍑烘暣绠�
- while (medication.Business_qty >= medication.BoxQty && xs > 0)
- {
- xs--;
- if (orderDetail == null)
- {
- orderDetail = new Dt_DeliveryOrderDetail()
- {
- Reservoirarea = outorder.warehouse_no,
- Goods_no = item.goods_no,
- Order_qty = medication.BoxQty,
- Batch_num = item.batch_num,
- Exp_date = item.exp_date,
- OotDetailStatus = "鏂板缓",
- Status = 0 // 绔嬪簱
- };
- medication.Business_qty -= medication.BoxQty;
- }
- else
- {
- orderDetail.Order_qty += medication.BoxQty;
- medication.Business_qty -= medication.BoxQty;
- }
- }
-
- if (orderDetail != null)
- entityOrder.Details.Add(orderDetail);
- #endregion
-
- #endregion
-
- #region 鍓╀綑鏁翠欢浠庡钩搴撳嚭搴�
- if (xs > 0)
- {
- orderDetail = new Dt_DeliveryOrderDetail()
- {
- Reservoirarea = outorder.warehouse_no,
- Goods_no = item.goods_no,
- Order_qty = medication.BoxQty * xs,
- Batch_num = item.batch_num,
- Exp_date = item.exp_date,
- OotDetailStatus = "鏂板缓",
- Status = 2 // 骞冲簱
- };
- entityOrder.Details.Add(orderDetail);
- }
- #endregion
- }
-
- // 鏇存柊鐗╂枡淇℃伅
- _basicService.MaterielInfoService.Repository.UpdateData(medication);
-
- }
-
- // 濡傛灉璺宠繃璇ュ崟锛屽垯鐩存帴continue锛屼笉淇濆瓨
- if (skipOrder)
- {
- Console.WriteLine($"璺冲嚭澶勫簱鍗� {outorder.order_no}锛屽洜涓哄瓨鍦ㄦ湭瀹氫箟鐗╂枡灞炴�х殑鍟嗗搧銆�");
- continue;
- }
-
- // 纭繚鍑哄簱鍗曟湁鏄庣粏鎵嶆坊鍔�
- if (entityOrder.Details.Any())
- {
- _DeliveryOrders.Add(entityOrder);
- orderNos.Add(outorder.order_no);
- }
- }
}
}
// 鎵归噺鎻掑叆鍑哄簱鍗曞拰鏄庣粏
- if (_DeliveryOrders.Any())
- {
- BaseDal.Db.InsertNav(_DeliveryOrders).Include(x => x.Details).ExecuteCommand();
- }
+ //if (_DeliveryOrders.Any())
+ //{
+ // BaseDal.Db.InsertNav(_DeliveryOrders).Include(x => x.Details).ExecuteCommand();
+ //}
//涓嬪彂鍑哄簱鍗曚换鍔$粰wcs
Db.Ado.CommitTran();
- var tex = CreateSupplyTask(order_no);
- if (!tex)
- {
- return responseContent.Error("鍒涘缓渚涘簲浠诲姟澶辫触");
- }
+ //var tex = CreateSupplyTask(order_no);
+ //if (!tex)
+ //{
+ // return responseContent.Error("鍒涘缓渚涘簲浠诲姟澶辫触");
+ //}
return responseContent.OK($"鍚屾鍑哄簱鍗曟垚鍔燂紝鍏眥_DeliveryOrders.Count}鏉�");
}
catch (Exception ex)
@@ -1220,7 +1072,12 @@
}
#endregion
if (supplyTask.WarehouseCode == WarehouseEnum.绔嬪簱.ObjToInt().ToString("000"))
- CreateAllocatInOut(materielInfo);//鍒涘缓璋冩嫧浠诲姟
+ {
+ materielInfo.Business_qty -= supplyTask.StockQuantity;
+ _basicService.MaterielInfoService.Repository.UpdateData(materielInfo);
+ if (materielInfo.Business_qty < materielInfo.MinQty)
+ CreateAllocatInOut(materielInfo);//鍒涘缓璋冩嫧浠诲姟
+ }
_unitOfWorkManage.CommitTran();
#endregion
content.OK();
--
Gitblit v1.9.3