From f58ce4647a1c246eb441d547cd12b9b9f417a7c1 Mon Sep 17 00:00:00 2001
From: yanjinhui <3306209981@qq.com>
Date: 星期五, 24 十月 2025 01:55:15 +0800
Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/ZhiHuiQiCe/FangCangZhiNeng
---
新建文件夹/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/DeliveryOrderServices.cs | 549 ++++++++++++------------------------------------------
1 files changed, 122 insertions(+), 427 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 04a2ab7..47dcbca 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"
@@ -3,6 +3,8 @@
using Microsoft.Data.SqlClient;
using Microsoft.IdentityModel.Tokens;
using Newtonsoft.Json;
+using OfficeOpenXml.Style;
+using Org.BouncyCastle.Asn1.X509;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -12,6 +14,7 @@
using WIDESEA_Common.LocationEnum;
using WIDESEA_Common.OrderEnum;
using WIDESEA_Common.TaskEnum;
+using WIDESEA_Common.WareHouseEnum;
using WIDESEA_Core;
using WIDESEA_Core.BaseRepository;
using WIDESEA_Core.BaseServices;
@@ -49,299 +52,6 @@
_inventoryInfoService = inventoryInfoService;
_cabinOrderServices = cabinOrderServices;
}
-
- /// <summary>
- /// 鑾峰彇涓婃父鍑哄簱鍗� 0鎴愬姛1澶辫触
- /// </summary>
- /// <param name = "searchDate" ></ param >
- /// < returns ></ returns >
- //public WebResponseContent GetUpstreamOutOrder()
- //{
- // var responseContent = new WebResponseContent();
- // try
- // {
- // var url = "http://121.37.118.63:80/GYZ2/95fck/outOrder";
- // //var url = "http://127.0.0.1:4523/m1/5660322-5340849-default/GYZ2/95fck/outOrder";
- // if (string.IsNullOrEmpty(SearchDate)) SearchDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
- // //// 璇锋眰鍙傛暟
- // var requestData = new
- // {
- // searchDate = SearchDate
- // //searchDate = "2022-10-10 20:45:16" // 姝g‘鐨勬牸寮�
- // };
- // SearchDate = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd HH:mm:ss");
-
- // var result = HttpHelper.Post(url, requestData.ToJsonString());
- // var response = JsonConvert.DeserializeObject<UpstreamResponse<UpstramOutOrderInfo>>(result);
-
- // if (response.resultCode != "0")
- // {
- // SendErrorToUpstream(3, "", response.resultMsg ?? "涓婃父鎺ュ彛杩斿洖澶辫触", "");
- // return responseContent.Error(response.resultMsg ?? "涓婃父鎺ュ彛杩斿洖澶辫触");
- // }
-
- // if (response.data == null || !response.data.Any())
- // {
- // return responseContent.OK("鏃犳柊鍑哄簱鍗曟暟鎹�");
- // }
-
- // // 宸插瓨鍦ㄥ嚭搴撳崟鍙�
- // var existingOutOrderNos = BaseDal.Db.Queryable<Dt_DeliveryOrder>()
- // .Select(x => x.Out_no)
- // .ToList();
-
- // // 鏂板嚭搴撳崟
- // var newOutOrders = response.data
- // .Where(outorder => !existingOutOrderNos.Contains(outorder.order_no))
- // .ToList();
-
- // List<string> order_no = newOutOrders.Select(x => x.order_no).ToList();
-
- // if (!newOutOrders.Any())
- // {
- // return responseContent.OK("鎵�鏈夊嚭搴撳崟宸插瓨鍦紝鏃犻渶鏂板");
- // }
-
- // Db.Ado.BeginTran();
- // try
- // {
- // List<Dt_DeliveryOrder> _DeliveryOrders = new List<Dt_DeliveryOrder>();
- // List<string> orderNos = new List<string>();
-
- // foreach (var outorder in newOutOrders)
- // {
- // bool skipOrder = false; // 鏍囪鏄惁璺宠繃璇ュ嚭搴撳崟
-
- // // 濡傛灉杩欎釜鍑哄簱鍗曠被鍨嬩笉绛変簬1锛屽睘浜庡嚭搴撻��璐э紙瑕佸叆璐т笂娓镐紶杩囨潵鐨勬暟閲忎负璐熸暟锛�
- // if (outorder.order_type != "1")
- // {
- // // 鍒涘缓鍑哄簱閫�璐у崟 - 杩欓噷闇�瑕佹牴鎹笟鍔¢�昏緫瀹炵幇
- // // 鏆傛椂璺宠繃鎴栧疄鐜伴��璐ч�昏緫
- // continue;
- // }
- // else if (outorder.order_type == "1") // 姝e父鍑哄簱鍗�
- // {
- // // 鎺掗櫎鐗规畩鑽搧,鐗规畩鑽搧鐩存帴鎻掑叆
- // 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;
- // }
- // else
- // {
- // // 绔嬪簱搴撳瓨涓嶈冻锛屾暎浠朵篃浠庡钩搴撳嚭
- // 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 = 2 // 骞冲簱
- // };
- // }
- // #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();
- // }
-
- // Db.Ado.CommitTran();
- // var tex= CreateSupplyTask(order_no);
- // if (!tex)
- // {
- // return responseContent.Error("鍒涘缓渚涘簲浠诲姟澶辫触");
- // }
- // return responseContent.OK($"鍚屾鍑哄簱鍗曟垚鍔燂紝鍏眥_DeliveryOrders.Count}鏉�");
- // }
- // catch (Exception ex)
- // {
- // Db.Ado.RollbackTran();
- // SendErrorToUpstream(3, "", ex.Message, "");
- // return responseContent.Error("鍚屾澶辫触: " + ex.Message);
- // }
- // }
- // catch (Exception ex)
- // {
- // SendErrorToUpstream(3, "", ex.Message, "");
- // return responseContent.Error("鍚屾澶辫触: " + ex.Message);
- // }
- //}
-
-
public WebResponseContent GetUpstreamOutOrder()
{
var responseContent = new WebResponseContent();
@@ -408,6 +118,7 @@
}
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"))
{
@@ -615,8 +326,60 @@
return responseContent.Error("鍚屾澶辫触: " + ex.Message);
}
}
+ /// <summary>
+ /// 鍒涘缓鍑哄簱鍗�
+ /// </summary>
+ /// <param name="outorder"></param>
+ /// <returns></returns>
+ public WebResponseContent CreateOutboundOrder(UpstramOutOrderInfo outorder)
+ {
+ WebResponseContent webResponseContent = new WebResponseContent();
+ try
+ {
+ if (outorder.warehouse_no == WarehouseEnum.楹荤簿搴�.ObjToInt().ToString("000") || outorder.warehouse_no == WarehouseEnum.鍐峰喕搴�.ObjToInt().ToString("000"))
+ {
+ #region 娣诲姞鍑哄簱鍗�
+ 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()
+ };
+ BaseDal.Db.InsertNav(entityOrder).Include(x => x.Details).ExecuteCommand();
+ #endregion
+ #region 澶勭悊搴撳瓨
+ #endregion
+
+ #region 娣诲姞鍑哄簱浠诲姟
+
+ #endregion
+ }
+ else
+ {
+
+ }
+ }
+ catch (Exception ex)
+ {
+ webResponseContent.Error(ex.Message);
+ }
+ return webResponseContent;
+ }
/// <summary>
/// 鐢熸垚鍑哄簱鍗曚换鍔�
/// </summary>
@@ -735,7 +498,7 @@
{
// 1. 鏌ヨ绗﹀悎鏉′欢鐨勮鍗曪紙琛ㄥご=鏂板缓 && 鍖呭惈鏈夋晥鏄庣粏锛�
var outOrders = BaseDal.Db.CopyNew().Queryable<Dt_DeliveryOrder>()
- .Where(o => o.OutStatus == "鏂板缓")
+ .Where(o => o.OutStatus == "鏂板缓" && o.Warehouse_no == WarehouseEnum.绔嬪簱.ObjToInt().ToString("000"))
.Includes(o => o.Details, d => d.MedicineGoods)
.ToList();
@@ -911,129 +674,41 @@
var responseContent = new WebResponseContent();
try
{
- // 鏌ユ壘鎵�鏈夆�滃紑濮嬧�濈姸鎬佺殑鍑哄簱鍗�
- var orders = BaseDal.Db.Queryable<Dt_DeliveryOrder>()
- .Where(o => o.OutStatus == "寮�濮�")
- .ToList();
-
- if (orders == null || !orders.Any())
+ #region 鏌ユ壘鎵�鏈夊凡瀹屾垚鍑哄簱鍗�
+ var outorders = BaseDal.QueryData(x => x.OutStatus == "宸插畬鎴�").Select(x => x.Out_no).Distinct().ToList();
+ foreach (var outorder in outorders)
{
- return responseContent.OK("鏆傛棤闇�瑕佸鐞嗙殑鍑哄簱鍗�");
- }
-
- int successCount = 0;
- int failCount = 0;
-
- foreach (var order in orders)
- {
- try
+ var Orders = BaseDal.Db.Queryable<Dt_DeliveryOrder>().Where(x => x.Out_no == outorder).Includes(x => x.Details).ToList();
+ if (!Orders.Where(x => x.OutStatus != "宸插畬鎴�").Any())
{
- Db.Ado.BeginTran();
-
- // 鏌ヨ璇ュ崟鐨勬槑缁�
- var details = BaseDal.Db.Queryable<Dt_DeliveryOrderDetail>()
- .Where(d => d.DeliveryOrderId == order.Id)
- .ToList();
-
- // 鍒ゆ柇鏄庣粏鏄惁鍏ㄩ儴瀹屾垚
- var completedCount = details.Count(d => d.OotDetailStatus == "宸插畬鎴�");
- var totalCount = details.Count;
-
- if (totalCount > 0 && completedCount == totalCount)
+ BaseDal.Db.Ado.BeginTran();
+ BaseDal.DeleteAndMoveIntoHty(Orders, OperateTypeEnum.鑷姩瀹屾垚);
+ foreach (var item in Orders)
{
- // 鏇存柊鐘舵�佷负宸插畬鎴�
- BaseDal.Db.Updateable<Dt_DeliveryOrder>()
- .SetColumns(o => o.OutStatus == "宸插畬鎴�")
- .Where(o => o.Id == order.Id)
- .ExecuteCommand();
-
- // 璋冪敤涓婃父鎺ュ彛
- var url = "http://121.37.118.63:80/GYZ2/95fck/outOrderOk";
- var requestDate = new
- {
- order_no = order.Out_no
- };
- var result = HttpHelper.Post(url, requestDate.ToJsonString());
- var response = JsonConvert.DeserializeObject<UpstreamOrderResponse>(result);
-
- if (response.resultCode == "0")
- {
- // 鉁� 鎻掑叆鍘嗗彶琛紙琛ㄥご + 鏄庣粏锛�
- var orderHistory = new Dt_DeliveryOrder_Hty
- {
- Id = order.Id,
- Out_no = order.Out_no,
- Out_type = order.Out_type,
- Client_no = order.Client_no,
- Client_name = order.Client_name,
- Account_time = order.Account_time,
- Warehouse_no = order.Warehouse_no,
- OutStatus = "宸插畬鎴�",
- Details = details.Select(d => new Dt_DeliveryOrderDetail
- {
- Id = d.Id,
- DeliveryOrderId = d.DeliveryOrderId,
- Reservoirarea = d.Reservoirarea,
- Goods_no = d.Goods_no,
- Order_qty = d.Order_qty,
- Batch_num = d.Batch_num,
- Exp_date = d.Exp_date,
- OotDetailStatus = d.OotDetailStatus,
- Status = d.Status
- }).ToList()
- };
-
- // 鎻掑叆琛ㄥご鍘嗗彶
- var historyId = BaseDal.Db.Insertable(orderHistory).ExecuteReturnIdentity();
-
- // 鎻掑叆鏄庣粏鍘嗗彶锛堝甫鏂板閿級
- var detailHistories = details.Select(d => new Dt_DeliveryOrderDetail_Hty
- {
- Id = d.Id,
- DeliveryOrderId = order.Id,
- Reservoirarea = d.Reservoirarea,
- Goods_no = d.Goods_no,
- Order_qty = d.Order_qty,
- Batch_num = d.Batch_num,
- Exp_date = d.Exp_date,
- OotDetailStatus = d.OotDetailStatus,
- Status = d.Status
- }).ToList();
-
- BaseDal.Db.Insertable(detailHistories).ExecuteCommand();
-
- // 鍒犻櫎鍘熷鏁版嵁锛堟槑缁� 鈫� 琛ㄥご锛�
- BaseDal.Db.Deleteable<Dt_DeliveryOrderDetail>().Where(d => d.DeliveryOrderId == order.Id).ExecuteCommand();
- BaseDal.Db.Deleteable<Dt_DeliveryOrder>().Where(o => o.Id == order.Id).ExecuteCommand();
-
- Db.Ado.CommitTran();
- successCount++;
- }
- else
- {
- Db.Ado.RollbackTran();
- failCount++;
- SendErrorToUpstream(4, "", $"涓婃父鎺ュ彛杩斿洖澶辫触: {response.resultMsg}", order.Out_no);
- }
+ _deliveryOrderDetailServices.Repository.DeleteAndMoveIntoHty(item.Details, OperateTypeEnum.鑷姩瀹屾垚);
}
+ var url = "http://121.37.118.63:80/GYZ2/95fck/outOrderOk";
+ var requestDate = new
+ {
+ order_no = outorder
+ };
+ var result = HttpHelper.Post(url, requestDate.ToJsonString());
+ var response = JsonConvert.DeserializeObject<UpstreamOrderResponse>(result);
+ if (response.resultCode == "0") BaseDal.Db.Ado.CommitTran();
else
{
- // 鏈夋湭瀹屾垚鏄庣粏锛屼笉鏇存柊
- Db.Ado.RollbackTran();
+ BaseDal.Db.Ado.RollbackTran();
+ SendErrorToUpstream(4, "", $"涓婃父鎺ュ彛杩斿洖澶辫触: {response.resultMsg}", outorder);
}
}
- catch (Exception ex)
- {
- Db.Ado.RollbackTran();
- failCount++;
- SendErrorToUpstream(1, "", ex.Message, order.Out_no);
- }
}
+ #endregion
- return responseContent.OK($"鎵归噺澶勭悊瀹屾垚锛氭垚鍔� {successCount} 鍗曪紝澶辫触 {failCount} 鍗曘��");
+ return responseContent.OK();
}
catch (Exception ex)
{
+ BaseDal.Db.Ado.RollbackTran();
return responseContent.Error("鎵归噺澶勭悊澶辫触锛�" + ex.Message);
}
}
@@ -1119,7 +794,7 @@
cabinOrder = Db.Queryable<Dt_DeliveryOrder>().Includes(x => x.Details).First(x => x.Out_no == orderNo && x.Out_type != "3");
//List<Dt_DeliveryOrderDetail>? cabinOrderDetails = cabinOrder.Details?.Where(x => x.Reservoirarea == pageNo.ToString()).ToList();
List<Dt_DeliveryOrderDetail>? cabinOrderDetails = cabinOrder.Details?.Where(x => x.Status == 2).ToList();
- content.OK(data: cabinOrderDetails);
+ content.OK(data: cabinOrderDetails);
return content;
}
@@ -1133,7 +808,20 @@
Dt_SupplyTask supplyTask = _supplyTaskService.Repository.QueryFirst(x => x.TaskId == TaskId && x.TaskStatus == SupplyStatusEnum.NewOut.ObjToInt());
if (supplyTask == null) throw new Exception("褰撳墠鍑哄簱浠诲姟宸插畬鎴�");
if (supplyTask.LocationCode != LocationCode) throw new Exception($"褰撳墠鍑哄簱璐т綅銆恵LocationCode}銆戜笌浠诲姟鍒嗛厤璐т綅涓嶅尮閰�");
- supplyTask.TaskStatus = SupplyStatusEnum.OutFinish.ObjToInt();
+ OutTaskFinish(supplyTask);
+ }
+ catch (Exception ex)
+ {
+ content.Error(ex.Message);
+ }
+ return content;
+ }
+
+ public WebResponseContent OutTaskFinish(Dt_SupplyTask supplyTask)
+ {
+ WebResponseContent content = new WebResponseContent();
+ try
+ {
Dt_DeliveryOrder cabinOrder = BaseDal.Db.Queryable<Dt_DeliveryOrder>().Where(x => x.Out_no == supplyTask.OrderNo && x.Warehouse_no == supplyTask.WarehouseCode).Includes(x => x.Details).First();
if (cabinOrder == null) return WebResponseContent.Instance.Error($"鍑哄簱鍗曞凡瀹屾垚");
@@ -1147,7 +835,7 @@
return WebResponseContent.Instance.Error($"鍑哄簱鏁伴噺涓嶅彲瓒呭嚭鍗曟嵁鏁伴噺");
- #region 澶勭悊鍑哄簱鍗曪紝璐т綅锛屽簱瀛橈紝搴撳瓨鎵规淇℃伅
+ #region 澶勭悊鍑哄簱鍗曪紝璐т綅锛屽簱瀛橈紝搴撳瓨鎵规淇℃伅,鍑哄簱浠诲姟
_unitOfWorkManage.BeginTran();
#region 鍑哄簱鍗�
@@ -1156,21 +844,20 @@
if (cabinOrderDetail.Order_Outqty == cabinOrderDetail.Order_qty)
{
cabinOrderDetail.OotDetailStatus = "宸插畬鎴�";
- _deliveryOrderDetailServices.Repository.DeleteAndMoveIntoHty(cabinOrderDetail, OperateTypeEnum.鑷姩瀹屾垚);
+ //_deliveryOrderDetailServices.Repository.DeleteAndMoveIntoHty(cabinOrderDetail, OperateTypeEnum.鑷姩瀹屾垚);
}
- else
- {
- _deliveryOrderDetailServices.Repository.UpdateData(cabinOrderDetail);
- }
- var cabinOrder1 = BaseDal.Db.Queryable<Dt_DeliveryOrder>().Where(x => x.Out_no == cabinOrder.Out_no && x.Out_type != "3").Includes(x => x.Details).First();
- if (cabinOrder1.Details == null || cabinOrder1.Details.Count < 1) cabinOrder.OutStatus = "宸插畬鎴�";
+ _deliveryOrderDetailServices.Repository.UpdateData(cabinOrderDetail);
+ var cabinOrder1 = BaseDal.Db.Queryable<Dt_DeliveryOrder>().Where(x => x.Out_no == cabinOrder.Out_no && x.Warehouse_no == supplyTask.WarehouseCode && x.Out_type != "3").Includes(x => x.Details).First();
+ if (!cabinOrder1.Details.Where(x => x.OotDetailStatus != "宸插畬鎴�").Any())
+ cabinOrder.OutStatus = "宸插畬鎴�";
Repository.UpdateData(cabinOrder);
#endregion
#region 搴撳瓨
- Dt_InventoryInfo inventoryInfo = _inventoryInfoService.Repository.QueryFirst(x => x.BatchNo == cabinOrderDetail.Batch_num && x.MaterielCode == cabinOrderDetail.Goods_no && x.LocationCode == LocationCode);
- if (inventoryInfo == null) return WebResponseContent.Instance.Error($"鏈壘鍒拌揣浣嶃�恵LocationCode}銆戠殑搴撳瓨淇℃伅");
+ Dt_InventoryInfo inventoryInfo = _inventoryInfoService.Repository.QueryFirst(x => x.BatchNo == cabinOrderDetail.Batch_num && x.MaterielCode == cabinOrderDetail.Goods_no && x.LocationCode == supplyTask.LocationCode);
+ if (inventoryInfo == null) return WebResponseContent.Instance.Error($"鏈壘鍒拌揣浣嶃�恵supplyTask.LocationCode}銆戠殑搴撳瓨淇℃伅");
inventoryInfo.StockQuantity -= supplyTask.StockQuantity;
+ inventoryInfo.OutboundQuantity -= supplyTask.StockQuantity;
if (inventoryInfo.StockQuantity <= 0)
_inventoryInfoService.DeleteData(inventoryInfo);
else
@@ -1178,39 +865,47 @@
#endregion
#region 璐т綅
- var location = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == LocationCode);
- if (location == null) return WebResponseContent.Instance.Error($"璇风淮鎶よ揣浣嶇紪鍙枫�恵LocationCode}銆戠殑璐т綅淇℃伅");
- if (location.EnableStatus == EnableStatusEnum.Disable.ObjToInt())
- return WebResponseContent.Instance.Error($"璐т綅缂栧彿銆恵LocationCode}銆戝凡绂佺敤锛岃鎭㈠姝e父鍐嶄娇鐢�");
- Dt_InventoryInfo inventoryInfo1 = _inventoryInfoService.Repository.QueryFirst(x => x.LocationCode == LocationCode);
- if (inventoryInfo1 == null)
+ if (supplyTask.WarehouseCode != WarehouseEnum.绔嬪簱.ObjToInt().ToString("000"))
{
- location.LocationStatus = LocationStatusEnum.Free.ObjToInt();
- _basicService.LocationInfoService.UpdateData(location);
+ var location = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == supplyTask.LocationCode);
+ if (location == null)
+ return WebResponseContent.Instance.Error($"璇风淮鎶よ揣浣嶇紪鍙枫�恵supplyTask.LocationCode}銆戠殑璐т綅淇℃伅");
+ //if (location.EnableStatus == EnableStatusEnum.Disable.ObjToInt())
+ // return WebResponseContent.Instance.Error($"璐т綅缂栧彿銆恵supplyTask.LocationCode}銆戝凡绂佺敤锛岃鎭㈠姝e父鍐嶄娇鐢�");
+ Dt_InventoryInfo inventoryInfo1 = _inventoryInfoService.Repository.QueryFirst(x => x.LocationCode == supplyTask.LocationCode);
+ if (inventoryInfo1 == null)
+ {
+ location.LocationStatus = LocationStatusEnum.Free.ObjToInt();
+ _basicService.LocationInfoService.UpdateData(location);
+ }
}
#endregion
- _supplyTaskService.UpdateData(supplyTask);
+ //_supplyTaskService.UpdateData(supplyTask);
+ supplyTask.TaskNum = cabinOrderDetail.Id;
+ supplyTask.TaskStatus = SupplyStatusEnum.OutFinish.ObjToInt();
+ _supplyTaskService.Repository.DeleteAndMoveIntoHty(supplyTask, OperateTypeEnum.浜哄伐瀹屾垚);
#region 搴撳瓨鎵规
Dt_Inventory_Batch inventory_Batch = _inventory_BatchServices.Repository.QueryFirst(x => x.BatchNo == inventoryInfo.BatchNo && x.MaterielCode == inventoryInfo.MaterielCode);
if (inventory_Batch != null)
{
inventory_Batch.StockQuantity -= supplyTask.StockQuantity;
+ inventory_Batch.OutboundQuantity -= supplyTask.StockQuantity;
if (inventory_Batch.StockQuantity <= 0)
_inventory_BatchServices.DeleteData(inventory_Batch);
else
_inventory_BatchServices.UpdateData(inventory_Batch);
}
#endregion
-
+ if (supplyTask.WarehouseCode == WarehouseEnum.绔嬪簱.ObjToInt().ToString("000"))
+ CreateAllocatInOut(materielInfo);//鍒涘缓璋冩嫧浠诲姟
_unitOfWorkManage.CommitTran();
#endregion
content.OK();
}
catch (Exception ex)
{
- _unitOfWorkManage.RollbackTran();
content.Error(ex.Message);
}
return content;
--
Gitblit v1.9.3