From 5ce969ed34e91c931cce38e2feb5d2c208633a96 Mon Sep 17 00:00:00 2001
From: chengsc <Demo@DESKTOP-CPA90BF>
Date: 星期日, 03 十一月 2024 18:34:53 +0800
Subject: [PATCH] 修改问题
---
Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs | 148 ++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 122 insertions(+), 26 deletions(-)
diff --git a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
index 34dfe6f..d7eeeee 100644
--- a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
+++ b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
@@ -20,6 +20,8 @@
using WMS.BLL.SysServer;
using System.Threading.Tasks;
using System.Security.Policy;
+using WMS.Entity.DataEntity;
+using WMS.Entity.BllQualityEntity;
namespace WMS.BLL.BllAsnServer
{
@@ -129,7 +131,7 @@
}
//鑾峰彇鍏ュ簱鍗曟槑缁嗗墿浣欐墦鍗版暟閲�
- public string GetAsnDetailQtyList(int id)
+ public LabelPrintInfoDto GetAsnDetailQtyList(int id)
{
try
{
@@ -138,11 +140,29 @@
{
throw new Exception("鏈煡璇㈠埌鍏ュ簱鍗曟槑缁�");
}
+ var data = new LabelPrintInfoDto();
+
+ var notice = Db.Queryable<BllArrivalNotice>().Where(m => m.IsDel == "0" && m.ASNNo == detail.ASNNo).First();
+ if (notice != null && notice.Type == "4") //鍒ゆ柇鏄惁鏄綑鏂欓��鍥炲崟
+ {
+ var noticeStr = Db.Queryable<BllArrivalNotice>().Where(m => m.Type == "1").Select(m => m.ASNNo).ToList();
+ var detailOld = Db.Queryable<BllArrivalNoticeDetail>().Where(m => m.IsDel == "0" && noticeStr.Contains(m.ASNNo) && m.SkuNo == detail.SkuNo && m.LotNo == detail.LotNo).OrderByDescending(m => m.CreateTime).First();
+ if (detailOld != null)
+ {
+ var boxInfo = Db.Queryable<BllBoxInfo>().First(m => m.IsDel == "0" && m.ASNNo == detailOld.ASNNo);
+ if (boxInfo!= null)
+ {
+ data.ProductionTime = boxInfo.ProductionTime!= null ? ((DateTime)boxInfo.ProductionTime).ToString("yyyy-MM-dd"):"";
+ data.ExpirationTime = boxInfo.ExpirationTime != null ? ((DateTime)boxInfo.ExpirationTime).ToString("yyyy-MM-dd") : "";
+ data.StoreTime = boxInfo.StoreTime != null ? ((DateTime)boxInfo.StoreTime).ToString("yyyy-MM-dd") : "";
+ }
+ }
+ }
var labelQty = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.ASNDetailNo == id).Sum(m => m.Qty);
var qty = detail.Qty - labelQty;
-
- return qty.ToString();
+ data.Qty = qty.ToString();
+ return data;
}
catch (Exception e)
{
@@ -191,7 +211,7 @@
skuType = "(0,1,3)";
break;
case "6"://浠e偍鍏ュ簱
- skuType = "(2)";
+ skuType = "(0,1,2,3,4)";
IsPack = 2; //涓嶈创
break;
case "7"://瀵勫瓨鍏ュ簱
@@ -262,7 +282,7 @@
string sqlString = string.Empty;
string sqlDetailStr = string.Empty;
//0锛氭垚鍝佸叆搴� 1锛氶噰璐叆搴� 2锛氫腑闂村搧鍏ュ簱 3锛氶��璐у叆搴� 4锛氳溅闂翠綑鏂欏叆搴� 5锛氬叾瀹冨叆搴� 6锛氫唬鍌ㄥ叆搴� 7锛氬瘎瀛樺叆搴�
- var TypeLot = "1, 2, 5, 6, 7"; //鎵规鍙负绌哄崟鎹被鍨�
+ var TypeLot = "2, 5, 6, 7"; //鎵规鍙负绌哄崟鎹被鍨�
var addOder = new List<ResponseOrderTaskModel>();
try
@@ -284,13 +304,13 @@
}
//鍒ゆ柇鏄惁涓洪噰璐叆搴撳崟鎹垨杞﹂棿浣欐枡閫�鍥炲叆搴�
// 0锛氭垚鍝佸叆搴� 1锛氶噰璐叆搴� 2锛氫腑闂村搧鍏ュ簱 3锛氶��璐у叆搴� 4锛氳溅闂翠綑鏂欓��鍥炲叆搴� 5锛氬叾瀹冨叆搴� 6锛氫唬鍌ㄥ叆搴� 7锛氬瘎瀛樺叆搴�
- if (model.Type == "1" || model.Type == "4")
- {
- if (!string.IsNullOrWhiteSpace(model.LotNo))
- {
- throw new Exception("閲囪喘鍏ュ簱鎴栦綑鏂欓��鍥炰笉鍙緭鍏ユ壒娆★紝涓嶅彲缂栬緫!");
- }
- }
+ //if (model.Type == "1" || model.Type == "4")
+ //{
+ // if (!string.IsNullOrWhiteSpace(model.LotNo))
+ // {
+ // throw new Exception("閲囪喘鍏ュ簱鎴栦綑鏂欓��鍥炰笉鍙緭鍏ユ壒娆★紝涓嶅彲缂栬緫!");
+ // }
+ //}
sqlString += "Insert into BllArrivalNotice (ASNNo,Type,Origin,CustomerNo,";
sqlString += "CustomerName,LotNo,LotText,SupplierLot,CreateUser) values ( ";
@@ -320,17 +340,48 @@
//鍒ゆ柇鏄惁涓轰笉闄愬埗鎵规鍗曟嵁
if (!TypeLot.Contains(model.Type))
{
- strMessage = "-1:鎵规鍙蜂笉鍙负绌�;";
+ strMessage = "-1:杩涘巶缂栧彿涓嶅彲涓虹┖;";
continue;
}
}
+ if (model.Type != "7")
+ {
+ if (!TypeLot.Contains(model.Type))
+ {
+ if (detailModel.LotNo.Length != 10)
+ {
+ strMessage = "-1:杩涘巶缂栧彿浣嶆暟闀垮害鏈夎;";
+ continue;
+ }
+ }
+
+ }
+
+ if (model.Type == "1" && string.IsNullOrWhiteSpace(detailModel.SupplierLot)) //閲囪喘鍒拌揣鍗曞師鍘傛壒鍙凤紙渚涜揣鎵规锛変笉鑳戒负绌�
+ {
+ strMessage = "-1:鍘熷巶鎵瑰彿涓嶅彲涓虹┖;";
+ continue;
+ }
+ if (model.Type == "2") // 2锛氫腑闂村搧鍏ュ簱
+ {
+ if (string.IsNullOrWhiteSpace(detailModel.Lot1))
+ {
+ throw new Exception("鐢熶骇鏃ユ湡涓嶅彲涓虹┖!");
+ }
+ if (string.IsNullOrWhiteSpace(detailModel.Lot2))
+ {
+ throw new Exception("杩囨湡鏃ユ湡涓嶅彲涓虹┖!");
+ }
+ }
+
+
// 鍒ゆ柇鏄惁宸插瓨鍦ㄥ綋鍓嶆槑缁�
string sqlCount = $"SELECT COUNT(ID) FROM BllArrivalNoticeDetail where ASNNo = '{model.ASNNo}' ";
sqlCount += $"and SkuNo ='{detailModel.SkuNo}' and LotNo = '{detailModel.LotNo}' and id != '{detailModel.Id}' and isdel = '0';";
var com = new Common().GetRowCount(sqlCount);
if (com > 0)
{
- strMessage = "-1:鐗╂枡鍜屾壒娆″彿閲嶅;";
+ strMessage = "-1:鐗╂枡鍜岃繘鍘傜紪鍙烽噸澶�;";
continue;
}
if (detailModel.Price == null)
@@ -340,12 +391,13 @@
// 璁$畻鍑烘�婚噾棰�
detailModel.Money = detailModel.Price * detailModel.Qty;
sqlDetailStr += "Insert into BllArrivalNoticeDetail (ASNNo,SkuNo,SkuName,Standard,";
- sqlDetailStr += "LotNo,LotText,Qty,PackagNo,Price,Money,IsBale,IsBelt,SupplierLot,Status,UDF1,UDF2,UDF3,UDF4,UDF5,CreateUser) values ( ";
+ sqlDetailStr += "LotNo,LotText,Qty,PackagNo,Price,Money,IsBale,IsBelt,SupplierLot,Status,Lot1,Lot2,UDF1,UDF2,UDF3,UDF4,UDF5,CreateUser) values ( ";
sqlDetailStr += $"'{model.ASNNo}','{detailModel.SkuNo}','{detailModel.SkuName}','{detailModel.Standard}', ";
sqlDetailStr += $"'{detailModel.LotNo}','{detailModel.LotText}','{detailModel.Qty}','{detailModel.PackagNo}','{detailModel.Price}', ";
- sqlDetailStr += $"{detailModel.Money},'{detailModel.IsBale}','{detailModel.IsBelt}','{detailModel.SupplierLot}','0','{detailModel.UDF1}','{detailModel.UDF2}','{detailModel.UDF3}','{detailModel.UDF4}','{detailModel.UDF5}','{model.CreateUser}');";
+ sqlDetailStr += $"'{detailModel.Money}','{detailModel.IsBale}','{detailModel.IsBelt}','{detailModel.SupplierLot}','0','{detailModel.Lot1}','{detailModel.Lot2}', ";
+ sqlDetailStr += $"'{detailModel.UDF1}','{detailModel.UDF2}','{detailModel.UDF3}','{detailModel.UDF4}','{detailModel.UDF5}','{model.CreateUser}');";
- if (model.Type == "1")
+ if (model.Type == "0")//鎴愬搧鍏ュ簱鍗曚笅鍙慦CS淇℃伅
{
addOder.Add(new ResponseOrderTaskModel()
{
@@ -389,15 +441,15 @@
//缁橶CS涓嬪彂鍏ュ簱鍗曚俊鎭�
response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橶CS鍑哄簱鍛戒护", "WCS");
- //////瑙f瀽杩斿洖鏁版嵁
+ //瑙f瀽杩斿洖鏁版嵁
var wcsModel = JsonConvert.DeserializeObject<WcsModel>(response);
if (wcsModel.StatusCode == 0)
{
-
+
}
if (wcsModel.StatusCode == -1)
{
-
+ throw new Exception($"涓嬪彂WCS澶辫触锛歿wcsModel.Msg}");
}
}
catch (Exception ex)
@@ -415,6 +467,7 @@
}
catch (Exception ex)
{
+ Db.Ado.RollbackTran();
throw new Exception(ex.Message);
}
}
@@ -498,6 +551,19 @@
strMessage = "-1:鎵规鍙蜂笉鍙负绌�;";
continue;
}
+
+ if (model.Type == "2") // 2锛氫腑闂村搧鍏ュ簱
+ {
+ if (string.IsNullOrWhiteSpace(detailModel.Lot1))
+ {
+ throw new Exception("鐢熶骇鏃ユ湡涓嶅彲涓虹┖!");
+ }
+ if (string.IsNullOrWhiteSpace(detailModel.Lot2))
+ {
+ throw new Exception("杩囨湡鏃ユ湡涓嶅彲涓虹┖!");
+ }
+ }
+
// 鍒ゆ柇鏄惁宸插瓨鍦ㄥ綋鍓嶆槑缁�
string sqlCount = $"SELECT COUNT(ID) FROM BllArrivalNoticeDetail where ASNNo = '{model.ASNNo}' ";
sqlCount += $"and SkuNo ='{detailModel.SkuNo}' and LotNo = '{detailModel.LotNo}' and id != '{detailModel.Id}' and isdel = '0';";
@@ -517,10 +583,12 @@
// 璁$畻鍑烘�婚噾棰�
detailModel.Money = detailModel.Price * detailModel.Qty;
sqlDetailStr += "Insert into BllArrivalNoticeDetail (ASNNo,SkuNo,SkuName,Standard,";
- sqlDetailStr += "LotNo,LotText,Qty,PackagNo,Price,Money,IsBale,IsBelt,SupplierLot,Status,UDF1,UDF2,UDF3,UDF4,UDF5,CreateUser) values ( ";
+ sqlDetailStr += "LotNo,LotText,Qty,PackagNo,Price,Money,IsBale,IsBelt,SupplierLot,Status,Lot1,Lot2,UDF1,UDF2,UDF3,UDF4,UDF5,CreateUser) values ( ";
sqlDetailStr += $"'{model.ASNNo}','{detailModel.SkuNo}','{detailModel.SkuName}','{detailModel.Standard}', ";
sqlDetailStr += $"'{detailModel.LotNo}','{detailModel.LotText}','{detailModel.Qty}','{detailModel.PackagNo}','{detailModel.Price}', ";
- sqlDetailStr += $"{detailModel.Money},'{detailModel.IsBale}','{detailModel.IsBelt}','{detailModel.SupplierLot}','0','{detailModel.UDF1}','{detailModel.UDF2}','{detailModel.UDF3}','{detailModel.UDF4}','{detailModel.UDF5}','{model.CreateUser}');";
+ sqlDetailStr += $"'{detailModel.Money},'{detailModel.IsBale}','{detailModel.IsBelt}','{detailModel.SupplierLot}','0','{detailModel.Lot1}','{detailModel.Lot2}', ";
+ sqlDetailStr += $"'{detailModel.UDF1}','{detailModel.UDF2}','{detailModel.UDF3}','{detailModel.UDF4}','{detailModel.UDF5}','{model.CreateUser}');";
+
}
else
{
@@ -533,6 +601,8 @@
&& it.SupplierLot == detailModel.SupplierLot
&& it.IsBale == detailModel.IsBale
&& it.IsBelt == detailModel.IsBelt
+ && it.Lot1 == detailModel.Lot1 // 鐢熶骇鏃ユ湡
+ && it.Lot2 == detailModel.Lot2 // 杩囨湡鏃ユ湡
&& it.UDF1 == detailModel.UDF1
&& it.UDF2 == detailModel.UDF2
&& it.UDF3 == detailModel.UDF3
@@ -548,6 +618,7 @@
sqlDetailStr += $"Qty = '{detailModel.Qty}',LotNo = '{detailModel.LotNo}',Money='{detailModel.Money}', ";
sqlDetailStr += $"LotText = '{detailModel.LotText}',SupplierLot = '{detailModel.SupplierLot}', ";
sqlDetailStr += $"IsBale = '{detailModel.IsBale}',IsBelt = '{detailModel.IsBelt}', ";
+ sqlDetailStr += $" Lot1= '{detailModel.Lot1}',Lot2 = '{detailModel.Lot2}', ";
sqlDetailStr += $"UDF1 = '{detailModel.UDF1}',UDF2 = '{detailModel.UDF2}',UDF3 = '{detailModel.UDF3}',UDF4 = '{detailModel.UDF4}',UDF5 = '{detailModel.UDF5}',";
sqlDetailStr += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' ";
sqlDetailStr += $"WHERE Id = {detailModel.Id};";
@@ -1031,10 +1102,22 @@
}
//璁㈠崟鍥炰紶涓婃父绯荤粺
- public bool FinishAsn(int id, string erpUrl, string mesUrl,string mesTokenUrl, int userId)
+ public bool FinishAsn(int id, string erpUrl, string mesUrl,string mesTokenUrl,string userNo,string pwd, int userId)
{
try
{
+ var loginPwd = Md5Tools.CalcMd5(pwd);
+ var date = Db.Queryable<SysUserInfor>().First(m =>m.IsDel=="0" && m.UserName == userNo && m.PassWord == loginPwd);
+
+ if (date == null) //璐﹀彿瀵嗙爜鏄惁姝g‘
+ {
+ throw new Exception("璐﹀彿瀵嗙爜涓嶆纭垨娌℃湁姝よ处鍙�");
+ }
+ if (date.Status != "0") //褰撳墠璐﹀彿鏄惁姝e父鍚敤
+ {
+ throw new Exception("褰撳墠璐﹀彿闈炲惎鐢ㄧ姸鎬�");
+ }
+
var notice = Db.Queryable<BllArrivalNotice>().First(m => m.Id == id && m.IsDel == "0");
if (notice == null)
{
@@ -1049,9 +1132,22 @@
{
throw new Exception("鏈煡璇㈠埌鍗曟嵁鏄庣粏淇℃伅");
}
- if (userId == notice.UpdateUser)
+ if (date.Id == notice.UpdateUser)
{
throw new Exception("澶嶆牳澶辫触锛屽鏍镐汉鍛樺拰鍏抽棴璁㈠崟浜哄憳涓嶈兘鐩稿悓锛�");
+ }
+ //鍗曟嵁绫诲瀷鏄� 鎴愬搧鍏ュ簱鎴栭噰璐叆搴� 鍒ゆ柇鍏ュ簱鐗╂枡鏄惁鍚堟牸
+ if (notice.Type == "0" || notice.Type == "1")
+ {
+ foreach (var item in detail)
+ {
+ var instStatus = Db.Queryable<BllQualityInspect>().Count(m => m.IsDel == "0" && m.SkuNo == item.SkuNo && m.LotNo == item.LotNo && m.IsQualified == "1");
+ if (instStatus == 0)
+ {
+ throw new Exception($"{item.SkuNo}銆亄item.LotNo}璐ㄩ噺鐘舵�佷笉鏄悎鏍肩殑锛屼笉鑳藉洖浼狅紒");
+ }
+ }
+
}
var list = new List<AsnDetail>();
foreach (var d in detail)
@@ -1117,10 +1213,10 @@
notice.Status = "4";
notice.CheckTime = DateTime.Now;
- notice.CheckUser = userId;
+ notice.CheckUser = date.Id;
Db.Updateable(notice).ExecuteCommand();
- new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鍏ュ簱鍗曟嵁", notice.ASNNo, "澶嶆牳", $"澶嶆牳浜嗗崟鎹彿涓簕notice.ASNNo}鐨勫崟鎹俊鎭�", userId);
+ new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鍏ュ簱鍗曟嵁", notice.ASNNo, "澶嶆牳", $"{date.RealName}澶嶆牳浜嗗崟鎹彿涓簕notice.ASNNo}鐨勫崟鎹俊鎭�", userId);
return true;
}
catch (Exception e)
--
Gitblit v1.8.0