From f2b3c45b78bb9fc021869c4ae35e6de039b50bbf Mon Sep 17 00:00:00 2001
From: chengsc <Demo@DESKTOP-CPA90BF>
Date: 星期五, 18 十月 2024 18:40:52 +0800
Subject: [PATCH] 修改问题
---
Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs | 401 ++++++++++++++++++++++++++++++++++-----------------------
1 files changed, 239 insertions(+), 162 deletions(-)
diff --git a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
index e40b61e..bccc202 100644
--- a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
+++ b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
@@ -41,7 +41,7 @@
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
- public bool ErpAddExportNotice(SoInfo model)
+ public void HttpAddExportNotice(SoInfo model)
{
try
{
@@ -139,8 +139,8 @@
}
else
{
- stocks = stockList.Where(m=> m.SkuNo == d.SkuNo && !string.IsNullOrWhiteSpace(m.LotNo)).OrderBy(s => s.LotNo).ToList();
-
+ stocks = stockList.Where(m => m.SkuNo == d.SkuNo && !string.IsNullOrWhiteSpace(m.LotNo)).OrderBy(s => s.LotNo).ToList();
+
foreach (var demo in stocks)
{
if (q1 >= d.Qty)
@@ -148,7 +148,7 @@
continue;
}
var q2 = demo.Qty - demo.LockQty - demo.FrozenQty;
-
+
if (q2 > d.Qty - q1)
{
q1 += d.Qty - q1;
@@ -157,9 +157,9 @@
else
{
q1 += q2;
- dic.Add(demo.Id,q2);
+ dic.Add(demo.Id, q2);
}
-
+
}
if (d.Qty >= q1)
{
@@ -185,7 +185,7 @@
throw new Exception($"鎬诲簱瀛樹腑鍑哄簱鐗╂枡淇℃伅:{d.SkuNo} 搴撳瓨鏁伴噺涓嶈冻");
}
}
-
+
foreach (var s in dic)
{
var st = stockList.First(a => a.Id == s.Key);
@@ -214,19 +214,19 @@
CreateUser = 0,
};
list.Add(item);
-
+
st.LockQty += s.Value;//閿佸畾鏁伴噺
var i = Db.Updateable(st).UpdateColumns(it => new { it.LockQty })
.ExecuteCommand();
}
-
+
}
var notice = new BllExportNotice()
{
SONo = billNo,
Type = model.SoType,
Status = "0",
- Origin = "WMS",
+ Origin = model.Origin,
CustomerNo = model.Customer,
CustomerName = customer.CustomerName,
LogisticsId = logisticsId,
@@ -242,12 +242,10 @@
if (n <= 0 || m <= 0)
{
- Db.RollbackTran();
- return false;
+ throw new Exception("鍏ュ簱鍗曟垨鏄庣粏娣诲姞淇濆瓨澶辫触");
}
Db.CommitTran();
- return true;
-
+
}
catch (Exception ex)
{
@@ -259,7 +257,6 @@
}
catch (Exception ex)
{
- Db.RollbackTran();
throw new Exception(ex.Message);
}
}
@@ -363,31 +360,31 @@
.LeftJoin<SysUserInfor>((a, b, c, d, e) => a.CheckUser == e.Id)
.Select((a, b, c, d, e) => new ExportNoticeDto()
{
- Id = a.Id,
- SONo = a.SONo,
- Type = a.Type,
- Status = a.Status,
- Origin = a.Origin,
- CustomerNo = a.CustomerNo,
- CustomerName = a.CustomerName,
- LotNo = a.LotNo,
- LotText = a.LotText,
- SupplierLot = a.SupplierLot,
- LogisticsId = a.LogisticsId,
+ //Id = a.Id,
+ //SONo = a.SONo,
+ //Type = a.Type,
+ //Status = a.Status,
+ //Origin = a.Origin,
+ //CustomerNo = a.CustomerNo,
+ //CustomerName = a.CustomerName,
+ //LotNo = a.LotNo,
+ //LotText = a.LotText,
+ //SupplierLot = a.SupplierLot,
+ //LogisticsId = a.LogisticsId,
LogisticsName = b.CarrierName,
- IsWave = a.IsWave,
- WaveNo = a.WaveNo,
- IsDespatch = a.IsDespatch,
- Demo = a.Demo,
+ //IsWave = a.IsWave,
+ //WaveNo = a.WaveNo,
+ //IsDespatch = a.IsDespatch,
+ //Demo = a.Demo,
CreateUserName = c.RealName,
UpdateUserName = c.RealName,
- CreateTime = a.CreateTime,
- UpdateTime = a.UpdateTime,
+ //CreateTime = a.CreateTime,
+ //UpdateTime = a.UpdateTime,
CheckUserName = e.RealName,
- CheckTime = a.CheckTime
- })
+ //CheckTime = a.CheckTime
+ },true)
.OrderByDescending(a => a.CreateTime)
.ToOffsetPage(page, limit, ref total);
count = total;
@@ -436,16 +433,16 @@
inspectStatus = "0";
break;
case "4"://涓嶅悎鏍煎搧鍑哄簱
- skuType = "(0,1,2,3)";
+ skuType = "(0,1,2,3,4)";
inspectStatus = "2";
break;
case "5"://涓棿鍝佸嚭搴�
skuType = "(4)";
- inspectStatus = "0,1";
+ inspectStatus = "1";
break;
case "6"://浠e偍鍑哄簱
- skuType = "(0,1,2,3)";
- inspectStatus = "0,1";
+ skuType = "(0,1,2,3,4)";
+ inspectStatus = "0,1,2";
break;
case "8"://瀵勫瓨鍑哄簱
skuType = "(0,1,2,3)";
@@ -462,7 +459,7 @@
throw new Exception("鏈煡鍒板搴斿嚭搴撶被鍨嬬殑鐗╂枡");
}
- if (type!="8")
+ if (type != "8")
{
skuList = skuList.Where(m => m != "100088").ToList();
}
@@ -478,6 +475,7 @@
.AndIF(!string.IsNullOrWhiteSpace(inspectStatus), it => inspectStatus.Contains(it.InspectStatus))
.And(m => skuList.Contains(m.SkuNo))
.AndIF(type == "6", m => m.OwnerNo == ownerNo)//浠e偍鍑哄簱闇�瑕佸叧鑱旇揣涓�
+ .AndIF(type != "6", m=> string.IsNullOrWhiteSpace(m.OwnerNo))
.AndIF(!string.IsNullOrWhiteSpace(msg), it => (it.SkuNo.Contains(msg) || it.SkuName.Contains(msg) || it.LotNo.Contains(msg)))
.And(it => (it.Qty - it.LockQty - it.FrozenQty) > 0)
.And(it => (it.Status == "0" || it.Status == "1"))
@@ -506,7 +504,8 @@
SkuName = it.SkuName,
LotNo = it.LotNo,
Standard = it.Standard,
- Qty = type == "4" ? it.Qty : it.Qty - it.LockQty - it.FrozenQty
+ //Qty = type == "4" ? it.Qty : it.Qty - it.LockQty - it.FrozenQty,
+ Qty = it.Qty - it.LockQty - it.FrozenQty,
}).ToList();
@@ -644,7 +643,7 @@
//}
//if (d.Qty >= q1)
//{
- stocks = stockList.Where(s => s.SkuNo == d.SkuNo && string.IsNullOrWhiteSpace(s.LotNo)).ToList();
+ stocks = stockList.Where(s => s.SkuNo == d.SkuNo && string.IsNullOrWhiteSpace(s.LotNo)).ToList();
// if (stocks.Count == 0)
// {
// throw new Exception($"鎬诲簱瀛樹腑鍑哄簱鐗╂枡淇℃伅:{d.SkuNo}搴撳瓨鏁伴噺涓嶈冻");
@@ -666,7 +665,7 @@
// throw new Exception($"鎬诲簱瀛樹腑鍑哄簱鐗╂枡淇℃伅:{d.SkuNo} 搴撳瓨鏁伴噺涓嶈冻");
//}
}
-
+
var item = new BllExportNoticeDetail()
{
SONo = billNo,
@@ -693,7 +692,7 @@
};
list.Add(item);
-
+
stocks.First().LockQty += d.Qty;//閿佸畾鏁伴噺
var i = Db.Updateable(stocks.First()).UpdateColumns(it => new { it.LockQty })
.ExecuteCommand();
@@ -2162,6 +2161,10 @@
{
str += "3.瑕佸嚭搴撶殑鎵樼洏姝e湪鍏ュ簱銆�";
}
+ if (string.IsNullOrWhiteSpace(str))
+ {
+ str += "鎵樼洏鍙墽琛岋紝鏃犻渶涓嬪彂鍑哄簱浠诲姟";
+ }
if (outDto1.Count > 0)
{
// 姝e紡杩愯绋嬪簭鏀惧紑
@@ -2171,23 +2174,23 @@
try
{
- //var time1 = DateTime.Now;//鍙戦�佹椂闂� .ToString("yyyy-MM-dd HH:mm:ss")
- //response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橶CS鍑哄簱鍛戒护", "WCS");
- //var time2 = DateTime.Now;//杩斿洖鏃堕棿 .ToString("yyyy-MM-dd HH:mm:ss")
+ var time1 = DateTime.Now;//鍙戦�佹椂闂� .ToString("yyyy-MM-dd HH:mm:ss")
+ response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橶CS鍑哄簱鍛戒护", "WCS");
+ var time2 = DateTime.Now;//杩斿洖鏃堕棿 .ToString("yyyy-MM-dd HH:mm:ss")
//////瑙f瀽杩斿洖鏁版嵁
- //var wcsModel = JsonConvert.DeserializeObject<WcsModel>(response);
- //if (wcsModel.StatusCode == 0)
- //{
- // //鏇存敼浠诲姟鐨勫彂閫佽繑鍥炴椂闂�//
- // new TaskServer().EditTaskIssueOk(list2, time1, time2);
- // str += "涓嬪彂鎴愬姛";
- //}
- //if (wcsModel.StatusCode == -1)
- //{
- // new TaskServer().EditTaskIssueNo(list2, time1, time2, wcsModel.Msg);
- // throw new Exception(wcsModel.Msg);
- //}
+ var wcsModel = JsonConvert.DeserializeObject<WcsModel>(response);
+ if (wcsModel.StatusCode == 0)
+ {
+ //鏇存敼浠诲姟鐨勫彂閫佽繑鍥炴椂闂�//
+ new TaskServer().EditTaskIssueOk(list2, time1, time2);
+ str += "涓嬪彂鎴愬姛";
+ }
+ if (wcsModel.StatusCode == -1)
+ {
+ new TaskServer().EditTaskIssueNo(list2, time1, time2, wcsModel.Msg);
+ throw new Exception(wcsModel.Msg);
+ }
}
catch (Exception ex)
{
@@ -2454,7 +2457,7 @@
//閲嶆柊涓嬪彂鍑哄簱浠诲姟
- public OutCommandDto AgainSendSoTask(string taskNo, int userId, string url)
+ public OutCommandDto AgainSendSoTask(string taskNo, string Receiver, int userId, string url)
{
try
{
@@ -2505,22 +2508,42 @@
{
//绋嬪簭姝e紡鍙戝竷鍚庢斁寮�
var time1 = DateTime.Now;//鍙戦�佹椂闂� .ToString("yyyy-MM-dd HH:mm:ss")
- var response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橶CS鍑哄簱鍛戒护", "WCS");
+ var response = HttpHelper.DoPost(url, jsonData, Receiver == "WCS" ? "涓嬪彂缁橶CS鍑哄簱鍛戒护" : "涓嬪彂缁橝GV鍑哄簱鍛戒护", "WCS");
var time2 = DateTime.Now;//杩斿洖鏃堕棿 .ToString("yyyy-MM-dd HH:mm:ss")
- ////瑙f瀽杩斿洖鏁版嵁
- var wcsModel = JsonConvert.DeserializeObject<WcsModel>(response);
- if (wcsModel.StatusCode == 0)
+ if (Receiver == "WCS")
{
- //鏇存敼浠诲姟鐨勫彂閫佽繑鍥炴椂闂�//
- new TaskServer().EditTaskIssueOk(list, time1, time2);
+ ////瑙f瀽杩斿洖鏁版嵁
+ var wcsModel = JsonConvert.DeserializeObject<WcsModel>(response);
+ if (wcsModel.StatusCode == 0)
+ {
+ //鏇存敼浠诲姟鐨勫彂閫佽繑鍥炴椂闂�//
+ new TaskServer().EditTaskIssueOk(list, time1, time2);
+ }
+ if (wcsModel.StatusCode == -1)
+ {
+ new TaskServer().EditTaskIssueNo(list, time1, time2, wcsModel.Msg);
+ throw new Exception($"wcs杩斿洖鐘舵�佸紓甯革細{wcsModel.Msg}");
+ }
}
- if (wcsModel.StatusCode == -1)
+ else if (Receiver == "AGV")
{
- new TaskServer().EditTaskIssueNo(list, time1, time2, wcsModel.Msg);
- throw new Exception($"wcs杩斿洖鐘舵�佸紓甯革細{wcsModel.Msg}");
+ ////瑙f瀽杩斿洖鏁版嵁
+ var agvModel = JsonConvert.DeserializeObject<OutCommanAgvDto>(response);
+ if (agvModel.Code == "0")
+ {
+ //鏇存敼浠诲姟鐨勫彂閫佽繑鍥炴椂闂�//
+ new TaskServer().EditTaskIssueOk(list, time1, time2);
+
+ }
+ if (agvModel.Code == "1")
+ {
+ new TaskServer().EditTaskIssueNo(list, time1, time2, agvModel.Message);
+ throw new Exception($"agv杩斿洖鐘舵�佸紓甯革細{agvModel.Message}");
+ }
}
+
}
catch (Exception ex)
{
@@ -2548,6 +2571,38 @@
{
throw new Exception("鏈煡璇㈠埌浠诲姟淇℃伅");
}
+ //鑾峰彇瀵瑰簲搴撲綅淇℃伅
+ var startlocat = Db.Queryable<SysStorageLocat>().First(a => a.IsDel == "0" && a.WareHouseNo == "W01" && a.LocatNo == task.StartLocat);
+ if (startlocat == null)
+ {
+ throw new Exception("鏈煡璇㈠埌鍌ㄤ綅淇℃伅");
+ }
+ startlocat.Status = "0";//淇敼鍒嗛厤淇℃伅鐘舵��
+ //鑾峰彇鍌ㄤ綅淇℃伅
+ var locat = Db.Queryable<SysStorageLocat>().First(a => a.IsDel == "0" && a.WareHouseNo == "W01" && a.LocatNo == task.StartLocat);
+ //鑾峰彇绉诲簱浠籨鍔″搴旂洰鏍囧偍浣嶄俊鎭�
+ SysStorageLocat endlocat = new SysStorageLocat();
+ if (task.Type == "2")
+ {
+ endlocat = Db.Queryable<SysStorageLocat>().First(a => a.IsDel == "0" && a.WareHouseNo == "W01" && a.LocatNo == task.EndLocat);
+ if (endlocat == null)
+ {
+ throw new Exception("鏈煡璇㈠埌鐩爣鍌ㄤ綅淇℃伅");
+ }
+ }
+ if (locat == null)
+ {
+ Db.RollbackTran();
+ throw new Exception("鏈煡璇㈠埌鍌ㄤ綅淇℃伅锛岃鏍稿疄锛�");
+ }
+ locat.Status = "1"; //鏈夌墿鍝�
+ Db.Updateable(locat).ExecuteCommand();
+ if (endlocat != null)
+ {
+ endlocat.Status = "0"; //绌哄偍浣� 0
+ Db.Updateable(endlocat).ExecuteCommand();
+ }
+
//淇敼浠诲姟
task.IsSuccess = 1;
task.IsSend = 0;
@@ -2571,31 +2626,6 @@
noticeDetail.FactQty -= item.Qty; //淇敼鍑哄簱鍗曟槑缁嗙殑涓嬫灦鏁伴噺
Db.Updateable(noticeDetail).ExecuteCommand();
-
- //鑾峰彇鍌ㄤ綅淇℃伅
- var locat = Db.Queryable<SysStorageLocat>().First(a => a.IsDel == "0" && a.WareHouseNo == "W01" && a.LocatNo == task.StartLocat);
- //鑾峰彇绉诲簱浠诲姟瀵瑰簲鐩爣鍌ㄤ綅淇℃伅
- SysStorageLocat endlocat = new SysStorageLocat();
- if (task.Type == "2")
- {
- endlocat = Db.Queryable<SysStorageLocat>().First(a => a.IsDel == "0" && a.WareHouseNo == "W03" && a.LocatNo == task.EndLocat);
- if (endlocat == null)
- {
- throw new Exception("鏈煡璇㈠埌鐩爣鍌ㄤ綅淇℃伅");
- }
- }
- if (locat == null)
- {
- Db.RollbackTran();
- throw new Exception("鏈煡璇㈠埌鍌ㄤ綅淇℃伅锛岃鏍稿疄锛�");
- }
- locat.Status = "1"; //鏈夌墿鍝�
- Db.Updateable(locat).ExecuteCommand();
- if (endlocat != null)
- {
- endlocat.Status = "0"; //绌哄偍浣� 0
- Db.Updateable(endlocat).ExecuteCommand();
- }
if (noticeDetail.FactQty == 0)
{
@@ -2838,7 +2868,7 @@
}
else
{
- stockDetail = stockDetail.Where(m => m.SkuNo == detail.SkuNo && m.IsDel == "0").ToList(); //&& string.IsNullOrWhiteSpace(m.LotNo)
+ stockDetail = stockDetail.Where(m => m.SkuNo == detail.SkuNo && m.IsDel == "0" && string.IsNullOrWhiteSpace(m.LotNo)).ToList(); //
}
if (stockDetail.Count < 1)
@@ -2846,11 +2876,11 @@
throw new Exception("搴撳瓨涓嶈冻,鏃犲彲鍑哄簱搴撳瓨");
}
//0:鎴愬搧鍑哄簱銆�1:棰嗘枡鍑哄簱銆�2:鎶芥鍑哄簱銆�3锛氱墿鏂欏彇鏍峰嚭搴撱��4:涓嶅悎鏍煎搧鍑哄簱銆�5:涓棿鍝佸嚭搴撱��6:浠e偍鍑哄簱銆�7:鍏朵粬鍑哄簱銆�8:瀵勫瓨鍑哄簱
- if (notice.Type == "0" || notice.Type == "1" )//鎴愬搧銆佸師杈呮枡鍑哄簱
+ if (notice.Type == "0" || notice.Type == "1")//鎴愬搧銆佸師杈呮枡鍑哄簱
{
stockDetail = stockDetail.Where(m => m.InspectStatus == "1").ToList();
}
- else if (notice.Type == "3" )//鍙栨牱鍑哄簱
+ else if (notice.Type == "3")//鍙栨牱鍑哄簱
{
stockDetail = stockDetail.Where(m => m.InspectStatus == "0").ToList();
}
@@ -2861,46 +2891,48 @@
else if (notice.Type == "4")//涓嶅悎鏍煎嚭搴�
{
stockDetail = stockDetail.Where(m => m.InspectStatus == "2").ToList();
- }
+ }
#region 鍖呰淇℃伅
var pack = packList.FirstOrDefault(p => p.PackagNo == detail.PackagNo);
- if (pack == null)
- {
- throw new Exception("鏈煡璇㈠埌鐗╂枡鍖呰");
- }
var pNum = 0;//鎵樼洏鐗╁搧鏁伴噺
var bNum = 0;//绠辩墿鍝佹暟閲�
- if (pack.L5Num.HasValue)
+ if (pack != null)
{
- pNum = Convert.ToInt32(pack.L5Num);
- bNum = Convert.ToInt32(pack.L4Num);
+ //throw new Exception("鏈煡璇㈠埌鐗╂枡鍖呰");
+ if (pack.L5Num.HasValue)
+ {
+ pNum = Convert.ToInt32(pack.L5Num);
+ bNum = Convert.ToInt32(pack.L4Num);
+ }
+ else if (pack.L4Num.HasValue)
+ {
+ pNum = Convert.ToInt32(pack.L4Num);
+ bNum = Convert.ToInt32(pack.L3Num);
+ }
+ else if (pack.L3Num.HasValue)
+ {
+ pNum = Convert.ToInt32(pack.L3Num);
+ bNum = Convert.ToInt32(pack.L2Num);
+ }
+ else if (pack.L2Num.HasValue)
+ {
+ pNum = Convert.ToInt32(pack.L2Num);
+ bNum = Convert.ToInt32(pack.L1Num);
+ }
+ else if (pack.L1Num.HasValue)
+ {
+ pNum = Convert.ToInt32(pack.L1Num);
+ bNum = Convert.ToInt32(pack.L1Num);
+ }
}
- else if (pack.L4Num.HasValue)
- {
- pNum = Convert.ToInt32(pack.L4Num);
- bNum = Convert.ToInt32(pack.L3Num);
- }
- else if (pack.L3Num.HasValue)
- {
- pNum = Convert.ToInt32(pack.L3Num);
- bNum = Convert.ToInt32(pack.L2Num);
- }
- else if (pack.L2Num.HasValue)
- {
- pNum = Convert.ToInt32(pack.L2Num);
- bNum = Convert.ToInt32(pack.L1Num);
- }
- else if (pack.L1Num.HasValue)
- {
- pNum = Convert.ToInt32(pack.L1Num);
- bNum = Convert.ToInt32(pack.L1Num);
- }
- if (pNum == 0)
- {
- throw new Exception("鏈煡璇㈠埌鐗╂枡鍖呰鎵樼鍏崇郴淇℃伅");
- }
+
+
+ //if (pNum == 0)
+ //{
+ // throw new Exception("鏈煡璇㈠埌鐗╂枡鍖呰鎵樼鍏崇郴淇℃伅");
+ //}
#endregion
//鍙栧悎閫傚簱瀛樺晢鍝�
Dictionary<int, decimal> stockQtyDic = new Dictionary<int, decimal>();//鎵樺嚭搴撶墿鍝佹暟
@@ -3115,7 +3147,7 @@
// {
// d.LotNo = "";
// }
-
+
//}
}
notice.Status = "0";
@@ -3185,26 +3217,63 @@
{
throw new Exception("鑾峰彇澶辫触锛屾湭鎵惧埌鎸囧畾鍑哄簱鍗曪紒");
}
- if (detail.Status != "0" && detail.Status != "1" && detail.AllotQty >= detail.Qty)
- {
- throw new Exception("鑾峰彇澶辫触锛屽嚭搴撳崟鐘舵�佷笉鏄瓑寰呮墽琛屾垨鍒嗛厤涓紒");
- }
- if (detail.AllotQty >= detail.Qty)
- {
- throw new Exception("鑾峰彇澶辫触锛屽嚭搴撳崟宸插垎閰嶅畬鎴�!");
- }
+
var notice = Db.Queryable<BllExportNotice>().First(a => a.SONo == detail.SONo);
if (notice == null)
{
throw new Exception("鑾峰彇澶辫触锛屾湭鎵惧埌鎸囧畾鍑哄簱鍗�!");
}
- if (notice.Status == "3" && detail.AllotQty >= detail.Qty || notice.Status == "4" || notice.Status == "5")
+ if (notice.Type != "1" && notice.Type != "2" && notice.Type != "3")
{
- throw new Exception("鑾峰彇澶辫触锛屽嚭搴撳崟鐘舵�佷笉鍏佽!");
+ if (detail.Status != "0" && detail.Status != "1" && detail.AllotQty >= detail.Qty)
+ {
+ throw new Exception("鑾峰彇澶辫触锛屽嚭搴撳崟鐘舵�佷笉鏄瓑寰呮墽琛屾垨鍒嗛厤涓紒");
+ }
+ if (detail.AllotQty >= detail.Qty)
+ {
+ throw new Exception("鑾峰彇澶辫触锛屽嚭搴撳崟宸插垎閰嶅畬鎴�!");
+ }
+
+ if (notice.Status == "3" && detail.AllotQty >= detail.Qty || notice.Status == "4" || notice.Status == "5")
+ {
+ throw new Exception("鑾峰彇澶辫触锛屽嚭搴撳崟鐘舵�佷笉鍏佽!");
+ }
+ }
+ string inspectStatus = string.Empty;
+ switch (notice.Type)//0锛氬師鏂� 1锛氬寘鏉� 2锛氭垚鍝� 3锛氳�楁潗 4锛氬崐鎴愬搧
+ {
+ case "0"://鎴愬搧鍑哄簱
+ inspectStatus = "1";
+ break;
+ case "1"://棰嗘枡鍑哄簱
+ inspectStatus = "1";
+ break;
+ case "2"://鎶芥鍑哄簱
+ inspectStatus = "0,1,2";
+ break;
+ case "3"://鐗╂枡鍙栨牱鍑哄簱
+ inspectStatus = "0";
+ break;
+ case "4"://涓嶅悎鏍煎搧鍑哄簱
+ inspectStatus = "2";
+ break;
+ case "5"://涓棿鍝佸嚭搴�
+ inspectStatus = "1";
+ break;
+ case "6"://浠e偍鍑哄簱
+ inspectStatus = "0,1,2";
+ break;
+ case "8"://瀵勫瓨鍑哄簱
+ inspectStatus = "0,1";
+ break;
+ default: //鍏跺畠鍑哄簱
+ inspectStatus = "0,1";
+ break;
}
#endregion
Expression<Func<DataStockDetail, bool>> item = Expressionable.Create<DataStockDetail>()
+ .AndIF(!string.IsNullOrWhiteSpace(inspectStatus), m => inspectStatus.Contains(m.InspectStatus))
.AndIF(!string.IsNullOrWhiteSpace(houseNo), m => m.WareHouseNo == houseNo)
.AndIF(!string.IsNullOrWhiteSpace(roadwayNo), m => m.RoadwayNo == roadwayNo)
.AndIF(!string.IsNullOrWhiteSpace(locateNo), m => m.LocatNo == locateNo)
@@ -3252,29 +3321,36 @@
{
throw new Exception("鎿嶄綔澶辫触锛屾湭鎵惧埌鎸囧畾鍑哄簱鍗曡鎯咃紒");
}
- if (detail.AllotQty >= detail.Qty || (detail.Status != "0" && detail.Status != "1"))
- {
- throw new Exception("鎿嶄綔澶辫触锛屽嚭搴撳崟宸插垎閰嶅畬鎴愶紒");
- }
var notice = Db.Queryable<BllExportNotice>().First(a => a.IsDel == "0" && a.SONo == detail.SONo);
if (notice == null)
{
throw new Exception("鎿嶄綔澶辫触锛屾湭鎵惧埌鎸囧畾鍑哄簱鍗曪紒");
}
- if (notice.Status == "3" && detail.AllotQty >= detail.Qty || notice.Status == "4" || notice.Status == "5")
+ if (notice.Type != "1" && notice.Type != "2" && notice.Type !="3")
{
- throw new Exception("鎿嶄綔澶辫触锛屽嚭搴撳崟宸插垎閰嶅畬鎴愶紒");
+ if (detail.AllotQty >= detail.Qty || (detail.Status != "0" && detail.Status != "1"))
+ {
+ throw new Exception("鎿嶄綔澶辫触锛屽嚭搴撳崟宸插垎閰嶅畬鎴愶紒");
+ }
+
+ if (notice.Status == "3" && detail.AllotQty >= detail.Qty || notice.Status == "4" || notice.Status == "5")
+ {
+ throw new Exception("鎿嶄綔澶辫触锛屽嚭搴撳崟宸插垎閰嶅畬鎴愶紒");
+ }
+
+ //鍗曟嵁鏄庣粏闇�瑕佺殑鍑哄簱鏁伴噺
+ var needQty = detail.Qty - detail.AllotQty;
+ //鍒嗛厤鐨勫嚭搴撴暟閲�
+ var outQty = model.StockList.Select(s => s.Qty).ToList().Sum();
+ if (outQty != needQty)
+ {
+ throw new Exception("鎿嶄綔澶辫触锛屽嚭搴撴暟閲忎笌璁″垝鏁伴噺涓嶄竴鑷达紒");
+ }
}
+
#endregion
- //鍗曟嵁鏄庣粏闇�瑕佺殑鍑哄簱鏁伴噺
- var needQty = detail.Qty - detail.AllotQty;
- //鍒嗛厤鐨勫嚭搴撴暟閲�
- var outQty = model.StockList.Select(s => s.Qty).ToList().Sum();
- if (outQty != needQty)
- {
- throw new Exception("鎿嶄綔澶辫触锛屽嚭搴撴暟閲忎笌璁″垝鏁伴噺涓嶄竴鑷达紒");
- }
+
var stockIds = model.StockList.Select(a => a.StockId).ToList();
//搴撳瓨鏄庣粏
var stockList = Db.Queryable<DataStockDetail>().Where(a => stockIds.Contains(a.Id)).ToList();
@@ -3283,10 +3359,10 @@
var allots = Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && m.SODetailNo == detail.Id && m.Status == "0").ToList();
//搴撳瓨鎬昏〃
- //var stockz = Db.Queryable<DataStock>().First(d => d.IsDel == "0" && d.SkuNo == detail.SkuNo && d.LotNo == detail.LotNo);
+ var stockz = Db.Queryable<DataStock>().First(d => d.IsDel == "0" && d.SkuNo == detail.SkuNo && d.LotNo == detail.LotNo);
var allotList = new List<BllExportAllot>();
- var outQtys = 0;
+ decimal outQtys = 0;
foreach (var st in model.StockList)
{
var stock = stockList.First(a => a.Id == st.StockId);
@@ -3320,7 +3396,7 @@
IsBelt = stock.IsBelt,
Qty = st.Qty,
CompleteQty = 0,
- Status = "0",
+ Status = notice.Status == "4"? "2":"0",
LogisticsId = notice.LogisticsId,
IsAdvance = "0",
OutMode = "",//鍑哄簱鍙�
@@ -3335,15 +3411,16 @@
bl.Qty += st.Qty;
Db.Updateable(bl).ExecuteCommand();
}
-
+
//搴撳瓨鏄庣粏
stock.LockQty += st.Qty;
stock.Status = stock.LockQty == stock.Qty ? "2" : "1";
-
- //搴撳瓨鎬昏〃
- //stockz.LockQty += st.Qty;
- //Db.Updateable(stockz).ExecuteCommand();
-
+ if (detail.AllotQty+ st.Qty > detail.Qty)
+ {
+ //搴撳瓨鎬昏〃
+ stockz.LockQty += (decimal)detail.AllotQty + st.Qty - detail.Qty;
+ Db.Updateable(stockz).ExecuteCommand();
+ }
Db.Updateable(stock).UpdateColumns(it => new { it.LockQty, it.Status }).ExecuteCommand();
outQtys += st.Qty;
--
Gitblit v1.8.0