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 ++++++++------------------------------
新建文件夹/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/CabinOrderServices.cs | 31 -
新建文件夹/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/InventoryServices.cs | 246 ++++++++++-------
新建文件夹/WIDESEA_WMSServer/WIDESEA_ISquareCabinServices/IDeliveryOrderServices.cs | 1
新建文件夹/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_LocationInfo.cs | 10
新建文件夹/PDA/pages/stash/raworderboxing.vue | 3
6 files changed, 285 insertions(+), 555 deletions(-)
diff --git "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/PDA/pages/stash/raworderboxing.vue" "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/PDA/pages/stash/raworderboxing.vue"
index e1ac0c7..e9dd604 100644
--- "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/PDA/pages/stash/raworderboxing.vue"
+++ "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/PDA/pages/stash/raworderboxing.vue"
@@ -137,6 +137,7 @@
matInfos: [],
orderNo: "",
batchNo: "",
+ materielCode:"",
orderqty: 0,
Inqty: 0,
goods_no: "",
@@ -178,6 +179,7 @@
this.Inqty = res.order_Inqty;
this.orderqty = res.order_qty;
this.batchNo = res.batchNo;
+ this.materielCode=res.goods_no;
this.warehouseId = res.warehouseId;
this.label = "鍗曟嵁缂栧彿锛�" + this.orderNo;
this.batch_num = "鎵规鍙凤細" + res.batchNo;
@@ -460,6 +462,7 @@
"LocationCode": this.barcode,
"warehouseCode": this.warehouseId,
"orderNo": this.orderNo,
+ "materielCode":this.materielCode,
"Inqty": this.materSn,
"batchNo": this.batchNo,
},
diff --git "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_ISquareCabinServices/IDeliveryOrderServices.cs" "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_ISquareCabinServices/IDeliveryOrderServices.cs"
index cf91c47..07bf254 100644
--- "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_ISquareCabinServices/IDeliveryOrderServices.cs"
+++ "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_ISquareCabinServices/IDeliveryOrderServices.cs"
@@ -82,5 +82,6 @@
/// <returns></returns>
WebResponseContent CheckFinish(SaveModel saveModel);
WebResponseContent GetCheckOutTasks(SaveModel saveModel);
+ WebResponseContent OutTaskFinish(Dt_SupplyTask supplyTask);
}
}
diff --git "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_LocationInfo.cs" "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_LocationInfo.cs"
index 88f5cf6..286db34 100644
--- "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_LocationInfo.cs"
+++ "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_LocationInfo.cs"
@@ -21,10 +21,16 @@
public int Id { get; set; }
/// <summary>
+ /// 搴撴埧id
+ /// </summary>
+ [SugarColumn(IsNullable = false, ColumnDescription = "搴撴埧id")]
+ public int WarehouseId { get; set; }
+
+ /// <summary>
/// 搴撴埧缂栧彿
/// </summary>
- [SugarColumn(IsNullable = false, ColumnDescription = "搴撴埧缂栧彿")]
- public int WarehouseId { get; set; }
+ [SugarColumn(IsNullable = true, Length = 30, ColumnDescription = "搴撴埧缂栧彿")]
+ public string WarehouseCode { get; set; }
/// <summary>
/// 璐т綅缂栧彿
diff --git "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/CabinOrderServices.cs" "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/CabinOrderServices.cs"
index f24f1aa..0c0e69f 100644
--- "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/CabinOrderServices.cs"
+++ "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/CabinOrderServices.cs"
@@ -120,12 +120,13 @@
var LocationCode = saveModel.MainData["LocationCode"].ToString();
var orderNo = saveModel.MainData["orderNo"].ToString();
var batchNo = saveModel.MainData["batchNo"].ToString();
+ var materielCode = saveModel.MainData["materielCode"].ToString();
var Inqty = saveModel.MainData["Inqty"].ObjToInt();
var warehouseCode = saveModel.MainData["warehouseCode"].ToString();
Dt_CabinOrder cabinOrder = BaseDal.Db.Queryable<Dt_CabinOrder>().Where(x => x.Order_no == orderNo && x.Warehouse_no == warehouseCode).Includes(x => x.Details).First();
if (cabinOrder == null || cabinOrder.OdrderStatus == "宸插畬鎴�")
return WebResponseContent.Instance.Error($"鍏ュ簱鍗曞凡瀹屾垚");
- Dt_CabinOrderDetail cabinOrderDetail = cabinOrder.Details.Where(x => x.Batch_num == batchNo && x.Status == 2).First();
+ Dt_CabinOrderDetail cabinOrderDetail = cabinOrder.Details.Where(x => x.Goods_no == materielCode && x.Batch_num == batchNo && x.Status == 2).First();
if (cabinOrderDetail == null || cabinOrderDetail.OrderDetailStatus == "宸插畬鎴�")
return WebResponseContent.Instance.Error($"鍏ュ簱鍗曟槑缁嗗凡瀹屾垚");
Dt_MaterielInfo materielInfo = _basicService.MaterielInfoService.Repository.QueryFirst(x => x.MaterielCode == cabinOrderDetail.Goods_no);
@@ -143,28 +144,9 @@
if (cabinOrderDetail.Order_Inqty == cabinOrderDetail.Order_qty)
{
cabinOrderDetail.OrderDetailStatus = "宸插畬鎴�";
- //_cabinOrderDetailServices.Repository.DeleteAndMoveIntoHty(cabinOrderDetail, OperateTypeEnum.鑷姩瀹屾垚);
-
- //Dt_CabinOrderDetail_Hty hty = new Dt_CabinOrderDetail_Hty
- //{
- // Id = cabinOrderDetail.OrderId,
- // Reservoirarea = cabinOrderDetail.Reservoirarea,
- // Goods_no = cabinOrderDetail.Goods_no,
- // Order_qty = cabinOrderDetail.Order_qty,
- // Order_Inqty = cabinOrderDetail.Order_Inqty,
- // Batch_num = cabinOrderDetail.Batch_num,
- // Exp_date = cabinOrderDetail.Exp_date,
- // OrderDetailStatus = cabinOrderDetail.OrderDetailStatus,
- // Status = cabinOrderDetail.Status,
- // Creater = cabinOrderDetail.Creater,
- // CreateDate = cabinOrderDetail.CreateDate,
- // Modifier = App.User.UserName,
- // ModifyDate = DateTime.Now
- //};
- //var i = BaseDal.Db.Insertable(hty).ExecuteCommand();
}
_cabinOrderDetailServices.Repository.UpdateData(cabinOrderDetail);
- var cabinOrder1 = BaseDal.Db.Queryable<Dt_CabinOrder>().Where(x => x.Order_no == cabinOrder.Order_no).Includes(x => x.Details).First();
+ var cabinOrder1 = BaseDal.Db.Queryable<Dt_CabinOrder>().Where(x => x.Order_no == cabinOrder.Order_no && x.Warehouse_no == warehouseCode).Includes(x => x.Details).First();
if (!cabinOrder1.Details.Where(x => x.OrderDetailStatus != "宸插畬鎴�").Any()) cabinOrder.OdrderStatus = "宸插畬鎴�";
Repository.UpdateData(cabinOrder);
#endregion
@@ -174,6 +156,8 @@
if (location == null) return WebResponseContent.Instance.Error($"璇风淮鎶よ揣浣嶇紪鍙枫�恵LocationCode}銆戠殑璐т綅淇℃伅");
if (location.EnableStatus == EnableStatusEnum.Disable.ObjToInt())
return WebResponseContent.Instance.Error($"璐т綅缂栧彿銆恵LocationCode}銆戝凡绂佺敤锛岃鎭㈠姝e父鍐嶄娇鐢�");
+ if (location.WarehouseCode != cabinOrderDetail.Reservoirarea)
+ return WebResponseContent.Instance.Error($"璐т綅缂栧彿銆恵LocationCode}銆戞墍灞炲簱鎴夸笌褰撳墠鍏ュ簱鍗曟墍灞炲簱鎴夸笉鍖归厤");
if (location.LocationStatus == LocationStatusEnum.Free.ObjToInt())
{
location.LocationStatus = LocationStatusEnum.InStock.ObjToInt();
@@ -187,6 +171,7 @@
{
inventoryInfo.StockQuantity += Inqty;
inventoryInfo.AvailableQuantity += Inqty;
+ inventoryInfo.InDate = DateTime.Now;
_inventoryInfoService.UpdateData(inventoryInfo);
}
else
@@ -586,7 +571,7 @@
//鏌ュ嚭鍖呭惈鍏ㄩ儴鐨勫叆搴撳崟锛屽寘鍚叏閮ㄦ槑缁�+涓�涓槑缁嗗搴斾竴涓晢鍝�
var orders = BaseDal.Db.CopyNew()
.Queryable<Dt_CabinOrder>()
- .Where(o => o.OdrderStatus == "鏂板缓")
+ .Where(o => o.OdrderStatus == "鏂板缓" && o.Warehouse_no == WarehouseEnum.绔嬪簱.ObjToInt().ToString("000"))
.Includes(o => o.Details, d => d.MedicineGoods)
.ToList();
// 3. 鍐嶈繃婊ゆ帀涓嶇鍚堟潯浠剁殑鏄庣粏锛堝彧淇濈暀 Status=0锛�
@@ -698,7 +683,7 @@
try
{
#region 鏌ユ壘鎵�鏈夊凡瀹屾垚鍏ュ簱鍗�
- var inorders = BaseDal.QueryData(x => x.OdrderStatus == "宸插畬鎴�").Select(x => x.Order_no).ToList();
+ var inorders = BaseDal.QueryData(x => x.OdrderStatus == "宸插畬鎴�").Select(x => x.Order_no).Distinct().ToList();
foreach (var inorder in inorders)
{
//var Orders = BaseDal.QueryData(x => x.Order_no == inorder);
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;
diff --git "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/InventoryServices.cs" "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/InventoryServices.cs"
index 1d72719..a4d154b 100644
--- "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/InventoryServices.cs"
+++ "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/InventoryServices.cs"
@@ -1,16 +1,22 @@
锘縰sing HslCommunication;
+using MailKit.Search;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using WIDESEA_Common.StockEnum;
+using WIDESEA_Common.TaskEnum;
+using WIDESEA_Common.WareHouseEnum;
using WIDESEA_Core;
using WIDESEA_Core.BaseRepository;
using WIDESEA_Core.BaseServices;
+using WIDESEA_Core.Enums;
using WIDESEA_Core.Helper;
using WIDESEA_DTO.SquareCabin;
using WIDESEA_ISquareCabinServices;
+using WIDESEA_IWMsInfoServices;
using WIDESEA_Model.Models;
using static WIDESEA_DTO.SquareCabin.OrderDto;
using static WIDESEA_DTO.SquareCabin.TowcsDto;
@@ -81,8 +87,6 @@
-
-
/// <summary>
/// wcs鍥炰紶缁欐垜璋冪敤鎴戠殑鏂规硶 涓嶇鏄叆搴� 鍑哄簱 鐩樼偣閮戒細璋冪敤杩欎釜鎺ュ彛
/// </summary>
@@ -91,111 +95,159 @@
public ApiResponse<Dt_InventoryInfo> OrderFeedback(EdiOrderCallbackRequest request)
{
try
- {
+ {
// 1锔忊儯 鏍¢獙璇锋眰
if (request == null || request.details == null || !request.details.Any())
{
return new ApiResponse<Dt_InventoryInfo> { code = "500", msg = "璇锋眰鍙傛暟鏃犳晥" };
}
- //鏌ユ壘鍒板叏閮ㄧ殑
-
+ // 2锔忊儯 寮�鍚簨鍔�
+ BaseDal.Db.Ado.BeginTran();
foreach (var detail in request.details)
{
+ #region 鏌ヨ鐗╂枡淇℃伅銆佽绠楁�诲拰
+ //鏌ヨ鐗╂枡琛�
var goods = Db.Queryable<Dt_MaterielInfo>().Where(x => x.MaterielCode == detail.productCode).First();
-
+ if (goods == null) throw new Exception($"鏈壘鍒扮墿鏂欑紪鐮併�恵detail.productCode}銆戠殑鐗╂枡淇℃伅");
// 3锔� 璁$畻鍏ュ簱鏁伴噺锛堝彇姝o級閬嶅巻 orderDetails 涓殑姣忎釜 EdiOrderBoxDto 瀵硅薄
decimal orderQty = detail.orderDetails?
.Sum(x => decimal.TryParse(x.quantity, out var q) ? Math.Abs(q) : 0)
?? 0;
-
- // 5锔忊儯 鏌ヨ搴撳瓨璇︽儏
- var entity = BaseDal.Db.Queryable<Dt_InventoryInfo>()
- .First(x => x.MaterielCode == detail.productCode && x.BatchNo == detail.batchNo && x.LocationCode == "绔嬪簱");
- //鏌ヨ鐗╂枡琛�
- var Goods = BaseDal.Db.Queryable<Dt_MaterielInfo>().First(x => x.MaterielCode == detail.productCode);
-
- if (entity == null)
- {
- entity = new Dt_InventoryInfo
- {
- PalletCode = detail.orderDetails?.FirstOrDefault()?.palletCode ?? "",
- WarehouseCode = "001",
- LocationCode = "绔嬪簱",
- StockStatus = 1,
- MaterielCode = detail.productCode ?? detail.productName,
- MaterielName = detail.productName ?? "",
- MaterielSpec = detail.productSpecifications ?? "",
- BatchNo = detail.batchNo,
- StockQuantity = 0,
- OutboundQuantity = 0,
- SupplyQuantity = 0,
- AvailableQuantity = 0,
- InDate = DateTime.Now,
- ProductionDate = detail.finishDate.ToString("yyyy-MM-dd"),
- ShelfLife = 0,
- ValidityPeriod = "",
- Remark = "WCS鍥炰紶鍒涘缓"
- };
- }
-
- // 6锔忊儯 鏌ヨ搴撳瓨鎵规淇℃伅
- var batch = BaseDal.Db.Queryable<Dt_Inventory_Batch>()
- .First(x => x.MaterielCode == detail.productCode && x.BatchNo == detail.batchNo);
-
- if (batch == null)
- {
- batch = new Dt_Inventory_Batch
- {
- MaterielCode = detail.productCode ?? detail.productName,
- MaterielName = detail.productName ?? "",
- MaterielSpec = detail.productSpecifications ?? "",
- BatchNo = detail.batchNo,
- StockQuantity = 0,
- OutboundQuantity = 0,
- AvailableQuantity = 0,
- SupplyQuantity = 0,
- ERPStockQuantity = 0,
- Status = false,
- ProductionDate = detail.finishDate.ToString("yyyy-MM-dd"),
- ValidityPeriod = DateTime.Now.AddYears(1).ToString("yyyy-MM-dd"),
- Remark = "鑷姩鍒涘缓"
- };
- }
+ #endregion
// 7锔忊儯 鎸夎鍗曠被鍨嬫墽琛屼笉鍚岄�昏緫
switch (request.orderType)
{
case "1": //鍏ュ簱
- entity.StockQuantity = orderQty; //瀹為檯搴撳瓨
- entity.AvailableQuantity = orderQty;
- entity.InDate = DateTime.Now;
- entity.Remark = "鍏ュ簱鍗曞洖浼�";
+ {
+ #region 澶勭悊鍏ュ簱璁㈠崟
+ Dt_CabinOrder cabinOrder = BaseDal.Db.Queryable<Dt_CabinOrder>().Where(x => x.Order_no == request.orderNo && x.Warehouse_no == WarehouseEnum.绔嬪簱.ObjToInt().ToString("000")).Includes(x => x.Details).First();
+ if (cabinOrder == null || cabinOrder.OdrderStatus == "宸插畬鎴�")
+ throw new Exception($"鍏ュ簱鍗曞凡瀹屾垚");
+ Dt_CabinOrderDetail cabinOrderDetail = cabinOrder.Details.Where(x => x.Goods_no == detail.productCode && x.Batch_num == detail.batchNo && x.Status == 1).First();
+ if (cabinOrderDetail == null || cabinOrderDetail.OrderDetailStatus == "宸插畬鎴�")
+ throw new Exception($"鍏ュ簱鍗曟槑缁嗗凡瀹屾垚");
+ cabinOrderDetail.Order_Inqty += orderQty;
+ if (cabinOrderDetail.Order_Inqty > cabinOrderDetail.Order_qty)
+ throw new Exception($"鍏ュ簱鏁伴噺涓嶅彲瓒呭嚭鍗曟嵁鏁伴噺");
+ cabinOrder.OdrderStatus = "寮�濮�";
+ cabinOrderDetail.OrderDetailStatus = "寮�濮�";
+ if (cabinOrderDetail.Order_Inqty == cabinOrderDetail.Order_qty)
+ cabinOrderDetail.OrderDetailStatus = "宸插畬鎴�";
+ BaseDal.Db.Updateable(cabinOrderDetail).ExecuteCommand();
+ var cabinOrder1 = BaseDal.Db.Queryable<Dt_CabinOrder>().Where(x => x.Order_no == cabinOrder.Order_no && x.Warehouse_no == WarehouseEnum.绔嬪簱.ObjToInt().ToString("000")).Includes(x => x.Details).First();
+ if (!cabinOrder1.Details.Where(x => x.OrderDetailStatus != "宸插畬鎴�").Any())
+ cabinOrder.OdrderStatus = "宸插畬鎴�";
+ BaseDal.Db.Updateable(cabinOrder).ExecuteCommand();
+ #endregion
+ #region 鍒涘缓搴撳瓨淇℃伅
+ // 5锔忊儯 鏌ヨ搴撳瓨璇︽儏
+ var inventoryInfo = BaseDal.Db.Queryable<Dt_InventoryInfo>()
+ .First(x => x.MaterielCode == cabinOrderDetail.Goods_no && x.BatchNo == cabinOrderDetail.Batch_num && x.LocationCode == "绔嬪簱");
+ if (inventoryInfo != null)
+ {
+ inventoryInfo.StockQuantity += orderQty;
+ inventoryInfo.AvailableQuantity += orderQty;
+ inventoryInfo.InDate = DateTime.Now;
+ BaseDal.Db.Updateable(inventoryInfo).ExecuteCommand();
+ }
+ else
+ {
+ inventoryInfo = new Dt_InventoryInfo
+ {
+ PalletCode = detail.orderDetails?.FirstOrDefault()?.palletCode ?? "",
+ WarehouseCode = "001",
+ LocationCode = "绔嬪簱",
+ StockStatus = StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt(),
+ MaterielCode = goods.MaterielCode,
+ MaterielName = goods.MaterielName,
+ MaterielSpec = goods.MaterielSpec,
+ BatchNo = detail.batchNo,
+ StockQuantity = orderQty,
+ OutboundQuantity = 0,
+ SupplyQuantity = 0,
+ AvailableQuantity = orderQty,
+ InDate = DateTime.Now,
+ ProductionDate = detail.finishDate.ToString("yyyy-MM-dd"),
+ ShelfLife = 0,
+ ValidityPeriod = cabinOrderDetail.Exp_date,
+ Remark = "WCS鍥炰紶鍒涘缓"
+ };
+ BaseDal.Db.Insertable(inventoryInfo).ExecuteCommand();
+ }
+ #endregion
- batch.StockQuantity = orderQty;
- batch.AvailableQuantity = orderQty;
- batch.Remark = "鍏ュ簱鍗曞洖浼�";
- UpdateInboundOrderDetailStatus(detail.batchNo, detail.productCode);
- break;
+ #region 鍒涘缓搴撳瓨鎵规淇℃伅
+ // 6锔忊儯 鏌ヨ搴撳瓨鎵规淇℃伅
+ var inventory_Batch = BaseDal.Db.Queryable<Dt_Inventory_Batch>()
+ .First(x => x.MaterielCode == inventoryInfo.MaterielCode && x.BatchNo == inventoryInfo.BatchNo);
- case "2": // 鍑哄簱 鎬�100 鍑�20
- decimal actualOutQty = entity.StockQuantity - orderQty;// 璁$畻鏈瀹為檯鍑哄簱鏁伴噺 20
- entity.StockQuantity=orderQty; //瀹為檯搴撳瓨鏁� 100
- entity.OutboundQuantity =Math.Max(0,entity.OutboundQuantity-actualOutQty); //寰呭嚭搴撴暟閲�
- entity.AvailableQuantity = entity.StockQuantity - entity.OutboundQuantity;//鍙敤搴撳瓨
- if (entity.StockQuantity < 0) entity.StockQuantity = 0;
- entity.Remark = "鍑哄簱鍗曞洖浼�";
+ if (inventory_Batch != null)
+ {
+ inventory_Batch.StockQuantity += orderQty;
+ inventory_Batch.AvailableQuantity += orderQty;
+ BaseDal.Db.Updateable(inventory_Batch).ExecuteCommand();
+ }
+ else
+ {
+ inventory_Batch = new Dt_Inventory_Batch
+ {
+ MaterielCode = inventoryInfo.MaterielCode,
+ MaterielName = inventoryInfo.MaterielName,
+ MaterielSpec = inventoryInfo.MaterielSpec,
+ BatchNo = inventoryInfo.BatchNo,
+ StockQuantity = inventoryInfo.StockQuantity,
+ OutboundQuantity = inventoryInfo.OutboundQuantity,
+ AvailableQuantity = inventoryInfo.AvailableQuantity,
+ SupplyQuantity = inventoryInfo.SupplyQuantity,
+ ERPStockQuantity = 0,
+ Status = false,
+ ProductionDate = detail.finishDate.ToString("yyyy-MM-dd"),
+ ValidityPeriod = inventoryInfo.ValidityPeriod,
+ Remark = "鑷姩鍒涘缓"
+ };
+ BaseDal.Db.Insertable(inventory_Batch).ExecuteCommand();
+ }
+ #endregion
+ #region 娣诲姞鍏ュ簱浠诲姟鍘嗗彶
+ Dt_SupplyTask_Hty supplyTask_Hty = new Dt_SupplyTask_Hty()
+ {
+ WarehouseCode = inventoryInfo.WarehouseCode,
+ TaskNum = cabinOrderDetail.Id,
+ OperateType = OperateTypeEnum.鑷姩瀹屾垚.ToString(),
+ InsertTime = DateTime.Now,
+ TaskStatus = SupplyStatusEnum.InFinish.ObjToInt(),
+ BatchNo = inventoryInfo.BatchNo,
+ MaterielName = inventoryInfo.MaterielName,
+ MaterielCode = inventoryInfo.MaterielCode,
+ MaterielSpec = inventoryInfo.MaterielSpec,
+ TaskType = TaskTypeEnum.InPick.ObjToInt(),
+ CreateDate = DateTime.Now,
+ Creater = App.User.UserName,
+ LocationCode = inventoryInfo.LocationCode,
+ OrderNo = cabinOrder.Order_no,
+ StockQuantity = orderQty,
+ SupplyQuantity = 0,
+ Remark = "鍏ュ簱"
+ };
+ BaseDal.Db.Insertable(supplyTask_Hty).ExecuteCommand();
+ #endregion
- batch.StockQuantity = orderQty;
- batch.OutboundQuantity =Math.Max(0,batch.OutboundQuantity-actualOutQty);//寰呭嚭搴撴暟閲�
- batch.AvailableQuantity = batch.StockQuantity - batch.OutboundQuantity; //鍙敤搴撳瓨
- if (batch.StockQuantity < 0) batch.StockQuantity = 0;
- batch.Remark = "鍑哄簱鍗曞洖浼�";
- UpdateOutboundOrderDetailStatus(detail.batchNo, detail.productCode);
- //璋冩嫧浠诲姟
- _deliveryOrderServices.CreateAllocatInOut(goods);
+ //UpdateInboundOrderDetailStatus(request.orderNo, detail.batchNo, detail.productCode);
+ break;
+ }
+ case "2":
+ #region 鎵惧嚭搴撲换鍔�
+ Dt_SupplyTask supplyTask = Db.Queryable<Dt_SupplyTask>().Where(x => x.MaterielCode == detail.productCode && x.BatchNo == detail.batchNo && x.OrderNo == request.orderNo && x.WarehouseCode == WarehouseEnum.绔嬪簱.ObjToInt().ToString("000") && x.TaskStatus == SupplyStatusEnum.NewOut.ObjToInt()).First();
+ if (supplyTask == null) throw new Exception($"鏈壘鍒拌鍗曞彿銆恵request.orderNo}銆戠墿鏂欑紪鍙枫�恵detail.productCode}銆戠殑鍑哄簱浠诲姟");
+ #endregion
+
+ #region 澶勭悊鍑哄簱鍗曘�佸簱瀛樹俊鎭�佸嚭搴撲换鍔°�佽皟鎷ㄤ换鍔�
+ _deliveryOrderServices.OutTaskFinish(supplyTask);
+ #endregion
break;
case "3": // 鐩樼偣
@@ -204,33 +256,21 @@
if (flag == 1) // 鐩樹簭
{
//搴撳瓨鏁�-宸紓鏁�=鐩樹簭
- batch.SupplyQuantity +=( batch.StockQuantity - diff);
- batch.Remark = "鐩樼偣鍗曞洖浼� - 鐩樹簭";
+ //batch.SupplyQuantity += (batch.StockQuantity - diff);
+ //batch.Remark = "鐩樼偣鍗曞洖浼� - 鐩樹簭";
}
else if (flag == 2) // 鐩樼泩
{
//搴撳瓨鏁�+宸紓鏁�=鐩樼泩
- batch.SupplyQuantity +=(batch.StockQuantity + diff);
- batch.Remark = "鐩樼偣鍗曞洖浼� - 鐩樼泩";
+ //batch.SupplyQuantity += (batch.StockQuantity + diff);
+ //batch.Remark = "鐩樼偣鍗曞洖浼� - 鐩樼泩";
}
else // 鐩樹腑
{
- batch.Remark = "鐩樼偣鍗曞洖浼� - 鐩樹腑";
+ //batch.Remark = "鐩樼偣鍗曞洖浼� - 鐩樹腑";
}
break;
}
- // 2锔忊儯 寮�鍚簨鍔�
- BaseDal.Db.Ado.BeginTran();
- // 8锔忊儯 淇濆瓨鏁版嵁
- if (entity.Id == 0)
- BaseDal.Db.Insertable(entity).ExecuteCommand();
- else
- BaseDal.Db.Updateable(entity).ExecuteCommand();
-
- if (batch.Id == 0)
- BaseDal.Db.Insertable(batch).ExecuteCommand();
- else
- BaseDal.Db.Updateable(batch).ExecuteCommand();
}
// 9锔忊儯 鎻愪氦浜嬪姟
@@ -261,7 +301,7 @@
/// </summary>
/// <param name="batchNo">鎵规鍙�</param>
/// <param name="productCode">鐗╂枡鍚嶇紪鐮�/param>
- public void UpdateInboundOrderDetailStatus(string batchNo,string productCode)
+ public void UpdateInboundOrderDetailStatus(string orderNo, string batchNo, string productCode)
{
try
{
@@ -300,7 +340,7 @@
throw;
}
-
+
}
--
Gitblit v1.9.3