From f2bc08e28dda7022202f07217f6a3c150f818af7 Mon Sep 17 00:00:00 2001
From: zhaowc <526854230@qq.com>
Date: 星期一, 20 一月 2025 08:32:16 +0800
Subject: [PATCH] Merge branch 'master' of https://gitee.com/liudongl/jc24-wms
---
Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs | 511 ++++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 454 insertions(+), 57 deletions(-)
diff --git a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
index 5045811..90d2952 100644
--- a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
+++ b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
@@ -17,6 +17,12 @@
using WMS.Entity.Context;
using WMS.Entity.SysEntity;
using WMS.IBLL.IBllAsnServer;
+using WMS.BLL.SysServer;
+using System.Threading.Tasks;
+using System.Security.Policy;
+using WMS.Entity.DataEntity;
+using WMS.Entity.BllQualityEntity;
+using Microsoft.VisualBasic;
namespace WMS.BLL.BllAsnServer
{
@@ -112,7 +118,7 @@
sqlString += "LEFT JOIN SysMaterials AS tb5 on tb1.SkuNo = tb5.SkuNo ";
sqlString += "LEFT JOIN SysUnit AS tb6 on tb5.UnitNo = tb6.UnitNo ";
sqlString += "LEFT JOIN SysPackag AS tb7 on tb1.PackagNo = tb7.PackagNo ";
- sqlString += $"WHERE tb1.ASNNo = '{model.ASNNo}' AND tb1.IsDel = '0' order by tb1.SkuNo desc ";
+ sqlString += $"WHERE tb1.ASNNo = '{model.ASNNo}' AND tb1.IsDel = '0' AND tb5.IsDel = '0' order by tb1.SkuNo desc ";
sqlString += $"offset {((model.Page - 1) * model.Limit)} rows fetch next {rowCount} rows only;";
var modelList = Db.Ado.SqlQuery<ArrivalNoticeDetailDto>(sqlString);
@@ -126,7 +132,7 @@
}
//鑾峰彇鍏ュ簱鍗曟槑缁嗗墿浣欐墦鍗版暟閲�
- public string GetAsnDetailQtyList(int id)
+ public LabelPrintInfoDto GetAsnDetailQtyList(int id)
{
try
{
@@ -135,11 +141,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();
+ var labelQty = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.ASNDetailNo == id).Sum(m => m.Qty);
+ var qty = detail.Qty - labelQty;
+ data.Qty = qty.ToString();
+ return data;
}
catch (Exception e)
{
@@ -153,31 +177,58 @@
try
{
string skuType = string.Empty;
+ int IsPack = 0; //0锛氫笉绠� 1锛氳创 2锛氫笉璐�
+ /**
+ * 鎴愬搧璐� 0
+ * 閲囪喘鍙创鍙笉璐� 1
+ * 涓棿鍝佷笉璐� 2
+ * 閫�璐ц创 3
+ * 浣欐枡閫�鍥炲彲璐村彲涓嶈创 4
+ * 鍏跺畠鍙创鍙笉璐� 5
+ * 浠e偍涓嶈创 6
+ * 瀵勫瓨涓嶈创 7
+ */
switch (model.Type)//0锛氬師鏂� 1锛氬寘鏉� 2锛氭垚鍝� 3锛氳�楁潗 4锛氬崐鎴愬搧
{
case "0"://鎴愬搧鍏ュ簱
- case "3"://閫�璐у叆搴�
- case "5"://鍏跺畠鍏ュ簱
- case "6"://浠e偍鍏ュ簱
skuType = "(2)";
+ IsPack = 1; //璐�
break;
case "1"://閲囪喘鍏ュ簱
- case "4"://杞﹂棿浣欐枡閫�鍥炲叆搴�
skuType = "(0,1,3)";
break;
case "2"://涓棿鍝佸叆搴�
skuType = "(4)";
+ IsPack = 2; //涓嶈创
+ break;
+ case "3"://閫�璐у叆搴�
+ skuType = "(2)";
+ IsPack = 1; //璐�
+ break;
+ case "4"://杞﹂棿浣欐枡閫�鍥炲叆搴�
+ skuType = "(0,1,3)";
+ break;
+ case "5"://鍏跺畠鍏ュ簱
+ skuType = "(0,1,3)";
+ break;
+ case "6"://浠e偍鍏ュ簱
+ skuType = "(0,1,2,3,4)";
+ IsPack = 2; //涓嶈创
break;
case "7"://瀵勫瓨鍏ュ簱
- skuType = "(0,1,2,3,4)";
+ //skuType = "(3)";
+ IsPack = 2; //涓嶈创
break;
default: //鍏跺畠
- skuType = "(0,1,2,3,4)";
+ //skuType = "(0,1,2,3,4)";
break;
}
Expression<Func<SysMaterials, bool>> item = Expressionable.Create<SysMaterials>()
- .AndIF(true, it => skuType.Contains(it.Type))
+ .AndIF(model.Type != "7", it => skuType.Contains(it.Type) && it.SkuNo != "100088")
+ .AndIF(model.Type == "7", it => it.SkuNo == "100088")
+ .AndIF(IsPack == 1, it => it.PackagNo != "")
+ .AndIF(IsPack == 2, it => it.PackagNo == "")
.AndIF(true, it => it.IsDel == "0")
.And(it => it.SkuNo != "100099")
.AndIF(!string.IsNullOrWhiteSpace(model.SkuNo),
@@ -192,6 +243,8 @@
.Includes(x => x.UnitInfo)
.Includes(x => x.PackagInfo)
.ToList();
+
+
return data.Select(m => new MaterialsDto()
{
@@ -224,14 +277,15 @@
}
//娣诲姞鍏ュ簱鍗曟嵁
- public string AddArrivalNotice(ArrivalNoticeVm model)
+ public string AddArrivalNotice(ArrivalNoticeVm model, string url)
{
string strMessage = "";
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
{
if (model.Origin == "褰曞叆")
@@ -249,6 +303,15 @@
throw new Exception("鍗曟嵁绫诲瀷涓嶅彲涓虹┖!");
}
}
+ //鍒ゆ柇鏄惁涓洪噰璐叆搴撳崟鎹垨杞﹂棿浣欐枡閫�鍥炲叆搴�
+ // 0锛氭垚鍝佸叆搴� 1锛氶噰璐叆搴� 2锛氫腑闂村搧鍏ュ簱 3锛氶��璐у叆搴� 4锛氳溅闂翠綑鏂欓��鍥炲叆搴� 5锛氬叾瀹冨叆搴� 6锛氫唬鍌ㄥ叆搴� 7锛氬瘎瀛樺叆搴�
+ //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 ( ";
@@ -278,17 +341,58 @@
//鍒ゆ柇鏄惁涓轰笉闄愬埗鎵规鍗曟嵁
if (!TypeLot.Contains(model.Type))
{
- strMessage = "-1:鎵规鍙蜂笉鍙负绌�;";
+ strMessage = "-1:杩涘巶缂栧彿涓嶅彲涓虹┖;";
continue;
}
}
+ if (!string.IsNullOrEmpty(detailModel.IsBale))
+ {
+ detailModel.IsBale = detailModel.IsBale == "鏄�" ? "1" : "0";
+ if (detailModel.IsBale != "1" && detailModel.IsBale != "0")
+ {
+ //鍒ゆ柇鏄惁瑁瑰寘
+ strMessage = "-1:瑁瑰寘瀛楁鍙兘褰曞叆鈥滄槸鈥濇垨鈥滃惁鈥�;";
+ continue;
+ }
+ }
+ if (model.Type != "7")
+ {
+ if (!TypeLot.Contains(model.Type))
+ {
+ if (detailModel.LotNo.Length != 12 && detailModel.LotNo.Length != 11 && 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)
@@ -298,10 +402,39 @@
// 璁$畻鍑烘�婚噾棰�
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 == "0")//鎴愬搧鍏ュ簱鍗曚笅鍙慦CS淇℃伅
+ {
+ //璁$畻鍑烘�荤鏁�
+ var packmodel = Db.Queryable<SysPackag>().First(w=>w.PackagNo == detailModel.SkuNo);
+ int xqty = 0;
+ if (packmodel.L1Name == "绠�") {
+ xqty = (int)detailModel.Qty;
+ }
+ if (packmodel.L2Name == "绠�")
+ {
+ xqty = (int)(detailModel.Qty / packmodel.L2Num);
+ }
+ if (packmodel.L3Name == "绠�")
+ {
+ xqty = (int)(detailModel.Qty/ packmodel.L2Num / packmodel.L3Num);
+ }
+ addOder.Add(new ResponseOrderTaskModel()
+ {
+ OrderNo = model.ASNNo,
+ LotNo = detailModel.LotNo,
+ SkuNo = detailModel.SkuNo,
+ SkuName = detailModel.SkuName,
+ BoxType = detailModel.Standard,
+ Qty = xqty,
+ TaskType = 0
+ });
+ }
}
if (sqlDetailStr == string.Empty)
@@ -320,6 +453,35 @@
if (rowCount > 0 && rowDetailCount > 0)
{
new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鍏ュ簱鍗曟嵁", model.ASNNo, "娣诲姞", $"娣诲姞浜嗗崟鎹彿涓簕model.ASNNo}鐨勫崟鎹俊鎭�", Convert.ToInt32(model.CreateUser));
+
+ if (addOder.Count > 0)
+ {
+ // 姝e紡杩愯绋嬪簭鏀惧紑
+ var jsonData = JsonConvert.SerializeObject(addOder);
+ string response = "";
+
+ try
+ {
+ var time1 = DateTime.Now;//鍙戦�佹椂闂� .ToString("yyyy-MM-dd HH:mm:ss")
+ //缁橶CS涓嬪彂鍏ュ簱鍗曚俊鎭�
+ response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橶CS鍏ュ簱鍛戒护", "WCS");
+
+ //瑙f瀽杩斿洖鏁版嵁
+ var wcsModel = JsonConvert.DeserializeObject<WcsModel>(response);
+ if (wcsModel.StatusCode == 0)
+ {
+
+ }
+ if (wcsModel.StatusCode == -1)
+ {
+ throw new Exception($"涓嬪彂WCS澶辫触锛歿wcsModel.Msg}");
+ }
+ }
+ catch (Exception ex)
+ {
+ throw new Exception(ex.Message);
+ }
+ }
return strMessage;
}
else
@@ -330,6 +492,7 @@
}
catch (Exception ex)
{
+ Db.Ado.RollbackTran();
throw new Exception(ex.Message);
}
}
@@ -342,11 +505,24 @@
string sqlDetailStr = string.Empty;
try
{
+ //鍒ゆ柇鏄惁涓洪噰璐叆搴撳崟鎹垨杞﹂棿浣欐枡閫�鍥炲叆搴�
+ // 0锛氭垚鍝佸叆搴� 1锛氶噰璐叆搴� 2锛氫腑闂村搧鍏ュ簱 3锛氶��璐у叆搴� 4锛氳溅闂翠綑鏂欓��鍥炲叆搴� 5锛氬叾瀹冨叆搴� 6锛氫唬鍌ㄥ叆搴� 7锛氬瘎瀛樺叆搴�
+ int isType = 0;
+ if (model.Type == "1" || model.Type == "4")
+ {
+ isType = 1;
+ if (!string.IsNullOrWhiteSpace(model.LotNo))
+ {
+ strMessage = "-1:閲囪喘鍏ュ簱鎴栦綑鏂欓��鍥炰笉鍙緭鍏ユ壒娆★紝涓嶅彲缂栬緫;";
+ return strMessage;
+ }
+ }
if (model.Origin != "褰曞叆")
{
strMessage = "-1:涓婃父绯荤粺涓嬪彂鐨勫崟鎹紝涓嶅彲缂栬緫;";
return strMessage;
}
+
sqlString += $"select * from BllArrivalNotice where ASNNo = '{model.ASNNo}' and isDel = '0';";
var asnInfo = Db.Ado.SqlQuery<BllArrivalNotice>(sqlString).FirstOrDefault();
@@ -396,11 +572,34 @@
strMessage = "-1:鏁伴噺蹇呴』澶т簬0;";
continue;
}
- if (string.IsNullOrEmpty(detailModel.LotNo))
+ if (string.IsNullOrEmpty(detailModel.LotNo) && isType != 1)
{
strMessage = "-1:鎵规鍙蜂笉鍙负绌�;";
continue;
}
+ if (!string.IsNullOrEmpty(detailModel.IsBale))
+ {
+ detailModel.IsBale = detailModel.IsBale == "鏄�" ? "1" : "0";
+ if (detailModel.IsBale != "1" && detailModel.IsBale != "0")
+ {
+ //鍒ゆ柇鏄惁瑁瑰寘
+ 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';";
@@ -420,10 +619,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
{
@@ -436,6 +637,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
@@ -451,6 +654,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};";
@@ -501,6 +705,7 @@
}
+
// 鍒犻櫎鎬诲崟
sqlString = $"UPDATE BllArrivalNotice SET IsDel = '1',";
sqlString += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' ";
@@ -510,10 +715,30 @@
sqlString += $"UPDATE BllArrivalNoticeDetail SET IsDel = '1',";
sqlString += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' ";
sqlString += $"WHERE ASNNo = '{model.ASNNo}';";
+
+ //鍒ゆ柇鏄惁涓洪噰璐叆搴撳崟鎹垨杞﹂棿浣欐枡閫�鍥炲叆搴�
+ // 0锛氭垚鍝佸叆搴� 1锛氶噰璐叆搴� 2锛氫腑闂村搧鍏ュ簱 3锛氶��璐у叆搴� 4锛氳溅闂翠綑鏂欓��鍥炲叆搴� 5锛氬叾瀹冨叆搴� 6锛氫唬鍌ㄥ叆搴� 7锛氬瘎瀛樺叆搴�
+ int notdel = 0;
+ if (model.Type == "1" || model.Type == "4")
+ {
+ //鑾峰彇鍗曟嵁鐢熸垚瀵瑰簲鏍囩
+ var list = Db.Queryable<BllBoxInfo>().Where(a => a.IsDel == "0" && a.Status == "0" && a.BindNo == null);
+
+ //楠岃瘉瀵瑰簲绠辨敮淇℃伅鏄惁瀛樺湪
+ if (list == null)
+ {
+ return "-1:宸叉湁绠辩爜宸茬粦瀹氭墭鐩樻垨宸插叆搴擄紝涓嶅彲鍒犻櫎!";
+ }
+
+ // 鍒犻櫎瀵瑰簲绠辨敮淇℃伅
+ sqlString += $"UPDATE BllBoxInfo SET IsDel = '1',";
+ sqlString += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' ";
+ sqlString += $"WHERE ASNNo = '{model.ASNNo}';";
+ notdel = 1;
+ }
Db.Ado.BeginTran();
int rowCount = Db.Ado.ExecuteCommand(sqlString);
-
- if (rowCount < 2)
+ if (rowCount < 2 + notdel)
{
Db.RollbackTran();
return "-1:鍒犻櫎澶辫触锛�";
@@ -524,6 +749,7 @@
}
catch (Exception ex)
{
+ Db.RollbackTran();
throw ex;
}
}
@@ -600,6 +826,11 @@
//{
// throw new Exception("鍙傛暟寮傚父,璇锋鏌ョ姸鎬佹槸鍚︿负鎵ц瀹屾垚");
//}
+ var palletBind = Db.Queryable<BllPalletBind>().Where(m => m.IsDel == "0" && m.ASNNo == notice.ASNNo && m.Status != "2").ToList();
+ if (palletBind != null && palletBind.Count > 0)
+ {
+ throw new Exception("瀛樺湪鏈叆搴撳畬鎴愭墭鐩樹俊鎭紝涓嶅厑璁稿叧鍗�");
+ }
var sqlString = "";
@@ -696,16 +927,35 @@
}
var info = boxInfo.First(m => m.BindNo == item.Id);
- if (!msgS.Contains(info.SkuNo))
+ //鑾峰彇鎵樼洏缁戝畾瀵瑰簲鍗曟嵁
+ var noticeDetail = Db.Queryable<BllArrivalNoticeDetail>().First(a => a.IsDel == "0" && a.Id == item.ASNDetailNo);
+ if (info != null)
{
- msgS += info.SkuNo + ";";
+ if (!msgS.Contains(info.SkuNo))
+ {
+ msgS += info.SkuNo + ";";
+ }
+
+ if (!msgL.Contains(info.LotNo))
+ {
+ msgL += info.LotNo + ";";
+
+ }
+ }
+ else
+ {
+ if (!msgS.Contains(noticeDetail.SkuNo))
+ {
+ msgS += noticeDetail.SkuNo + ";";
+ }
+
+ if (!msgL.Contains(noticeDetail.LotNo))
+ {
+ msgL += noticeDetail.LotNo + ";";
+
+ }
}
- if (!msgL.Contains(info.LotNo))
- {
- msgL += info.LotNo + ";";
-
- }
}
var time = DateTime.Now;
var log = new BllAuditLog()
@@ -773,21 +1023,22 @@
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
- public ErpModel CreateAsn(AsnInfo model)
+ public HttpReturnModel HttpCreateAsn(AsnInfo model, string url)
{
try
{
- var resultModel = new ErpModel() { Success = -1, Message = "" };
+ var addOder = new List<ResponseOrderTaskModel>();
+ var resultModel = new HttpReturnModel() { Success = "-1", Message = "" };
if (string.IsNullOrEmpty(model.AsnType))
{
resultModel.Message = "鍗曟嵁绫诲瀷涓嶅彲涓虹┖!";
return resultModel;
}
- if (string.IsNullOrEmpty(model.Customer))
- {
- resultModel.Message = "瀹㈡埛涓嶅彲涓虹┖!";
- return resultModel;
- }
+ //if (string.IsNullOrEmpty(model.Customer))
+ //{
+ // resultModel.Message = "瀹㈡埛涓嶅彲涓虹┖!";
+ // return resultModel;
+ //}
if (string.IsNullOrEmpty(model.OrderCode))
{
resultModel.Message = "涓婃父绯荤粺鍗曞彿涓嶅彲涓虹┖!";
@@ -800,11 +1051,14 @@
}
// 鏍规嵁瀹㈡埛缂栧彿鑾峰彇瀹㈡埛鍚嶇О
+ var custname = "";
var CustomerModel = Db.Queryable<SysCustomer>().First(it => it.CustomerNo == model.Customer && it.IsDel == "0");
- if (CustomerModel == null)
+ if (CustomerModel != null)
{
- resultModel.Message = "瀹㈡埛缂栧彿涓嶅瓨鍦�!";
- return resultModel;
+ custname = CustomerModel.CustomerName;
+ //CustomerModel.CustomerName = "";
+ //resultModel.Message = "瀹㈡埛缂栧彿涓嶅瓨鍦�!";
+ //return resultModel;
}
// 鍏ュ簱鎬昏〃淇℃伅
@@ -813,9 +1067,9 @@
{
ASNNo = asnNo,
Type = model.AsnType,
- Origin = model.Origin,
+ Origin = string.IsNullOrEmpty(model.Origin) ? "ERP" : model.Origin,
CustomerNo = model.Customer,
- CustomerName = CustomerModel.CustomerName,
+ CustomerName = custname,
OrderCode = model.OrderCode,
};
@@ -866,7 +1120,37 @@
};
detailModels.Add(detailModel);
+
+ if (model.AsnType == "0")//鎴愬搧鍏ュ簱鍗曚笅鍙慦CS淇℃伅
+ {
+ //璁$畻鍑烘�荤鏁�
+ var packmodel = Db.Queryable<SysPackag>().First(w => w.PackagNo == detailModel.SkuNo);
+ int xqty = 0;
+ if (packmodel.L1Name == "绠�")
+ {
+ xqty = (int)detailModel.Qty;
+ }
+ if (packmodel.L2Name == "绠�")
+ {
+ xqty = (int)(detailModel.Qty / packmodel.L2Num);
+ }
+ if (packmodel.L3Name == "绠�")
+ {
+ xqty = (int)(detailModel.Qty / packmodel.L2Num / packmodel.L3Num);
+ }
+ addOder.Add(new ResponseOrderTaskModel()
+ {
+ OrderNo = asnNo,
+ LotNo = asnDetailModel.LotNo,
+ SkuNo = asnDetailModel.SkuNo,
+ SkuName = skuModel.SkuName,
+ BoxType = skuModel.Standard,
+ Qty = (int)asnDetailModel.Qty,
+ TaskType = 0
+ });
+ }
}
+
Db.BeginTran();
// 鎻掑叆鍏ュ簱鍗曟�昏〃
@@ -876,7 +1160,37 @@
Db.Insertable(detailModels).ExecuteCommand();
Db.CommitTran();
- resultModel.Success = 0;
+
+ if (addOder.Count > 0)
+ {
+ // 姝e紡杩愯绋嬪簭鏀惧紑
+ var jsonData = JsonConvert.SerializeObject(addOder);
+ string response = "";
+
+ try
+ {
+ var time1 = DateTime.Now;//鍙戦�佹椂闂� .ToString("yyyy-MM-dd HH:mm:ss")
+ //缁橶CS涓嬪彂鍏ュ簱鍗曚俊鎭�
+ response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橶CS鍏ュ簱鍛戒护", "WCS");
+
+ //瑙f瀽杩斿洖鏁版嵁
+ var wcsModel = JsonConvert.DeserializeObject<WcsModel>(response);
+ if (wcsModel.StatusCode == 0)
+ {
+
+ }
+ if (wcsModel.StatusCode == -1)
+ {
+ throw new Exception($"涓嬪彂WCS澶辫触锛歿wcsModel.Msg}");
+ }
+ }
+ catch (Exception ex)
+ {
+ throw new Exception(ex.Message);
+ }
+ }
+
+ resultModel.Success = "0";
resultModel.Message = "鎴愬姛";
return resultModel;
}
@@ -888,23 +1202,52 @@
}
//璁㈠崟鍥炰紶涓婃父绯荤粺
- public bool FinishAsn(int id, string url, 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)
{
throw new Exception("鏈煡璇㈠埌鍗曟嵁淇℃伅");
+ }
+ if (notice.Status != "3")
+ {
+ throw new Exception("澶嶆牳澶辫触锛屽崟鎹潪鍏抽棴鐘舵��");
}
var detail = Db.Queryable<BllArrivalNoticeDetail>().Where(m => m.ASNNo == notice.ASNNo && m.IsDel == "0").ToList();
if (detail.Count == 0)
{
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)
@@ -919,31 +1262,62 @@
};
list.Add(item);
}
- var soInfo = new AsnInfo()
+ var asnInfo = new AsnInfo()
{
OrderCode = notice.OrderCode,
AsnDetails = list
};
- #region 閫氳繃鎺ュ彛鍙戦�佽嚦erp
+ #region 閫氳繃鎺ュ彛鍙戦�佽嚦erp 鎴� mes
//绯荤粺瀵规帴鍚庢斁寮�
- /*var jsonData = JsonConvert.SerializeObject(soInfo);
+ var jsonData = JsonConvert.SerializeObject(asnInfo);
+ var mesList = new List<string>() { "0", "4" }; //0 鎴愬搧鍏ュ簱 4浣欐枡閫�鍥炲叆搴�
+ var erpList = new List<string>() { "1", "2", "3" }; //1 閲囪喘鍏ュ簱 2涓棿鍝佸叆搴� 3 閫�璐у叆搴�
- var response = HttpHelper.DoPost(url, jsonData, "鍏ュ簱鍗曞畬鎴愪笂浼�", "ERP");
-
- var obj = JsonConvert.DeserializeObject<ErpModel>(response);//瑙f瀽杩斿洖鏁版嵁
- if (obj.Success != 0)
+ if (mesList.Contains(notice.Type)) // mes
{
- throw new Exception("涓婁紶澶辫触" + obj.Message);
- }*/
+ //鑾峰彇浠ょ墝
+ //var token = new Token().GetMesToken(mesTokenUrl); //娴嬭瘯涓嶄娇鐢═OKEN锛屾寮忚繍琛屾椂鏀惧紑
+ var token = "";
+ Dictionary<string, string> mesDic = new Dictionary<string, string>()
+ {
+ {"Authorization",token }
+ };
+ var mesData = new FinishAsnModel()
+ {
+ no = asnInfo.OrderCode,
+ qty = asnInfo.AsnDetails.Sum(m=>m.Qty)
+ };
+ jsonData = JsonConvert.SerializeObject(mesData);
+ //璋冪敤鎺ュ彛
+ var response = HttpHelper.DoPost(mesUrl, jsonData, "鍏ュ簱鍗曞畬鎴愪笂浼�", "MES", mesDic);
+
+ var obj = JsonConvert.DeserializeObject<MesModel>(response);//瑙f瀽杩斿洖鏁版嵁
+ if (obj.status != "success")
+ {
+ throw new Exception("涓婁紶澶辫触" + obj.message);
+ }
+ }
+ else if (erpList.Contains(notice.Type)) //erp
+ {
+ var response = HttpHelper.DoPost(erpUrl, jsonData, "鍏ュ簱鍗曞畬鎴愪笂浼�", "ERP");
+
+ var obj = JsonConvert.DeserializeObject<ErpModel>(response);//瑙f瀽杩斿洖鏁版嵁
+ if (obj.Success != 0)
+ {
+ throw new Exception("涓婁紶澶辫触" + obj.Message);
+ }
+ }
+
+
#endregion
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)
@@ -952,6 +1326,29 @@
}
}
+ public void UpLocate(string wareNo,string locatNo)
+ {
+ try
+ {
+ if (string.IsNullOrWhiteSpace(wareNo) || string.IsNullOrWhiteSpace(locatNo))
+ {
+ throw new Exception("浠撳簱鎴栧偍浣嶄笉鑳戒负绌�");
+ }
+ var locate = Db.Queryable<SysStorageLocat>().First(m=>m.IsDel == "0" && m.LocatNo == locatNo && m.WareHouseNo == wareNo);
+ if (locate == null)
+ {
+ throw new Exception("鏈煡璇㈠埌鍌ㄤ綅淇℃伅");
+ }
+ locate.Status = "0";//鍌ㄤ綅鐘舵�佸彉鏇寸┖鍌ㄤ綅
+ Db.Updateable(locate).ExecuteCommand();
+
+ }
+ catch (Exception e)
+ {
+ throw new Exception(e.Message);
+ }
+ }
+
#endregion
}
--
Gitblit v1.8.0