From 9f3f798670e87b91c1b4c4d2b1c44bb850a34153 Mon Sep 17 00:00:00 2001
From: admin <qiutairan163@163.com>
Date: 星期四, 04 十二月 2025 17:47:43 +0800
Subject: [PATCH] 车间退料入库质检状态默认合格
---
Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs | 592 +++++++++++++++++++++++++++++++++++------------------------
1 files changed, 350 insertions(+), 242 deletions(-)
diff --git a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
index 6dec684..316f878 100644
--- a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
+++ b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
@@ -37,16 +37,16 @@
#region 浜嬩欢鏂规硶
public async Task<List<ArrivalNoticeDto>> GetArrivalNoticeList(ArrivalNoticeVm model, RefAsync<int> count)
{
- var modelList = await Db.Queryable<BllArrivalNotice,BllArrivalNoticeDetail, SysUserInfor, SysUserInfor,
- SysUserInfor>((tb1, tb2, tb3, tb4,tb5) => new JoinQueryInfos(
+ var modelList = await Db.Queryable<BllArrivalNotice, BllArrivalNoticeDetail, SysUserInfor, SysUserInfor,
+ SysUserInfor>((tb1, tb2, tb3, tb4, tb5) => new JoinQueryInfos(
JoinType.Left, tb1.ASNNo == tb2.ASNNo,
JoinType.Left, tb1.CreateUser == tb3.Id,
JoinType.Left, tb1.UpdateUser == tb4.Id,
JoinType.Left, tb1.CheckUser == tb5.Id))
.WhereIF(!string.IsNullOrWhiteSpace(model.ASNNo), tb1 => tb1.ASNNo.Contains(model.ASNNo))
- .WhereIF(!string.IsNullOrWhiteSpace(model.LotNo), (tb1,tb2) => tb2.LotNo.Contains(model.LotNo))
- .WhereIF(!string.IsNullOrWhiteSpace(model.SkuNo), (tb1,tb2) => tb2.SkuNo.Contains(model.SkuNo))
- .WhereIF(!string.IsNullOrWhiteSpace(model.SkuName), (tb1,tb2) => tb2.SkuName.Contains(model.SkuName))
+ .WhereIF(!string.IsNullOrWhiteSpace(model.LotNo), (tb1, tb2) => tb2.LotNo.Contains(model.LotNo))
+ .WhereIF(!string.IsNullOrWhiteSpace(model.SkuNo), (tb1, tb2) => tb2.SkuNo.Contains(model.SkuNo))
+ .WhereIF(!string.IsNullOrWhiteSpace(model.SkuName), (tb1, tb2) => tb2.SkuName.Contains(model.SkuName))
.WhereIF(!string.IsNullOrWhiteSpace(model.CustomerName), tb1 => tb1.CustomerName.Contains(model.CustomerName))
.WhereIF(!string.IsNullOrWhiteSpace(model.OrderCode), tb1 => tb1.OrderCode.Contains(model.OrderCode))
.WhereIF(!string.IsNullOrWhiteSpace(model.Status), tb1 => tb1.Status == model.Status)
@@ -76,13 +76,13 @@
CompleteTime = tb1.CompleteTime,
CreateTime = tb1.CreateTime,
CreateUserName = tb3.RealName,
- UserName=tb1.UserName,
+ UserName = tb1.UserName,
UpdateTime = ((DateTime)tb1.UpdateTime).ToString("yyyy-MM-dd HH:mm:ss"),
UpdateUserName = tb4.RealName
}).ToPageListAsync(model.Page, model.Limit, count);
- return modelList;
+ return modelList;
}
public async Task<List<ArrivalNoticeDetailDto>> GetArrivalNoticeDetailList(ArrivalNoticeDetailVm model, RefAsync<int> count)
@@ -94,48 +94,48 @@
var modelList = await Db.Queryable<BllArrivalNoticeDetail>().Where(item)
.LeftJoin<BllArrivalNotice>((tb1, tb2) => tb1.ASNNo == tb2.ASNNo)
- .LeftJoin<SysUserInfor>((tb1, tb2,tb3) => tb1.CreateUser == tb3.Id)
- .LeftJoin<SysUserInfor>((tb1,tb2,tb3,tb4) => tb1.UpdateUser == tb4.Id)
- .LeftJoin<SysMaterials>((tb1, tb2, tb3, tb4,tb5) => tb1.SkuNo == tb5.SkuNo && tb5.IsDel == "0")
- .LeftJoin<SysUnit>((tb1, tb2, tb3, tb4, tb5,tb6) => tb5.UnitNo == tb6.UnitNo && tb6.IsDel == "0")
- .LeftJoin<SysPackag>((tb1, tb2, tb3, tb4, tb5, tb6,tb7) => tb1.PackagNo == tb7.PackagNo && tb7.IsDel == "0")
- .Select((tb1, tb2, tb3, tb4, tb5,tb6, tb7) => new ArrivalNoticeDetailDto()
- {
- Id = tb1.Id,
- ASNNo = tb1.ASNNo,
- SkuNo = tb1.SkuNo,
- SkuName = tb1.SkuName,
- Standard = tb1.Standard,
- LotNo = tb1.LotNo,
- LotText = tb1.LotText,
- Qty = tb1.Qty,
- FactQty = tb1.FactQty,
- CompleteQty = tb1.CompleteQty,
- IsSampling = tb1.IsSampling,
- InspectStatus = tb1.InspectStatus,
- PackagNo = tb1.PackagNo,
- PackagName = tb7.PackagName,
- UnitName = tb6.UnitName,
- IsBale = tb1.IsBale,
- IsBelt = tb1.IsBelt,
- SupplierLot = tb1.SupplierLot,
- Status = tb1.Status,
- AsnType = tb2.Type,
- AsnStatus = tb2.Status,
- IsPasteCode = tb5.IsPasteCode,
- Lot1 = tb1.Lot1,
- Lot2 = tb1.Lot2,
- UDF1 = tb1.UDF1,
- UDF2 = tb1.UDF2,
- UDF3 = tb1.UDF3,
- UDF4 = tb1.UDF4,
- UDF5 = tb1.UDF5,
- CompleteTime = tb1.CompleteTime,
- CreateTime = tb1.CreateTime,
- CreateUserName = tb3.RealName,
- UpdateTime = ((DateTime)tb1.UpdateTime).ToString("yyyy-MM-dd HH:mm:ss"),
+ .LeftJoin<SysUserInfor>((tb1, tb2, tb3) => tb1.CreateUser == tb3.Id)
+ .LeftJoin<SysUserInfor>((tb1, tb2, tb3, tb4) => tb1.UpdateUser == tb4.Id)
+ .LeftJoin<SysMaterials>((tb1, tb2, tb3, tb4, tb5) => tb1.SkuNo == tb5.SkuNo && tb5.IsDel == "0")
+ .LeftJoin<SysUnit>((tb1, tb2, tb3, tb4, tb5, tb6) => tb5.UnitNo == tb6.UnitNo && tb6.IsDel == "0")
+ .LeftJoin<SysPackag>((tb1, tb2, tb3, tb4, tb5, tb6, tb7) => tb1.PackagNo == tb7.PackagNo && tb7.IsDel == "0")
+ .Select((tb1, tb2, tb3, tb4, tb5, tb6, tb7) => new ArrivalNoticeDetailDto()
+ {
+ Id = tb1.Id,
+ ASNNo = tb1.ASNNo,
+ SkuNo = tb1.SkuNo,
+ SkuName = tb1.SkuName,
+ Standard = tb1.Standard,
+ LotNo = tb1.LotNo,
+ LotText = tb1.LotText,
+ Qty = tb1.Qty,
+ FactQty = tb1.FactQty,
+ CompleteQty = tb1.CompleteQty,
+ IsSampling = tb1.IsSampling,
+ InspectStatus = tb1.InspectStatus,
+ PackagNo = tb1.PackagNo,
+ PackagName = tb7.PackagName,
+ UnitName = tb6.UnitName,
+ IsBale = tb1.IsBale,
+ IsBelt = tb1.IsBelt,
+ SupplierLot = tb1.SupplierLot,
+ Status = tb1.Status,
+ AsnType = tb2.Type,
+ AsnStatus = tb2.Status,
+ IsPasteCode = tb5.IsPasteCode,
+ Lot1 = tb1.Lot1,
+ Lot2 = tb1.Lot2,
+ UDF1 = tb1.UDF1,
+ UDF2 = tb1.UDF2,
+ UDF3 = tb1.UDF3,
+ UDF4 = tb1.UDF4,
+ UDF5 = tb1.UDF5,
+ CompleteTime = tb1.CompleteTime,
+ CreateTime = tb1.CreateTime,
+ CreateUserName = tb3.RealName,
+ UpdateTime = ((DateTime)tb1.UpdateTime).ToString("yyyy-MM-dd HH:mm:ss"),
UpdateUserName = tb4.RealName
- }).ToPageListAsync(model.Page, model.Limit, count);
+ }).ToPageListAsync(model.Page, model.Limit, count);
return modelList;
}
@@ -155,13 +155,13 @@
data.ProductionTime = string.IsNullOrEmpty(detail.Lot1) ? "" : Convert.ToDateTime(detail.Lot1).ToString("yyyy-MM-dd");
data.ExpirationTime = string.IsNullOrEmpty(detail.Lot2) ? "" : Convert.ToDateTime(detail.Lot2).ToString("yyyy-MM-dd");
data.SupplierLot = detail.SupplierLot;
- var labelQty = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.ASNDetailNo == id).Sum(m => m.Qty + (m.SamplingQty == null? 0: m.SamplingQty));
+ var labelQty = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.ASNDetailNo == id).Sum(m => m.Qty + (m.SamplingQty == null ? 0 : m.SamplingQty));
if (labelQty == null)
{
labelQty = 0;
}
var qty = detail.Qty - labelQty;
- if (qty<0)
+ if (qty < 0)
{
qty = 0;
}
@@ -273,9 +273,10 @@
*/
var TypeLot = "1, 5, 6, 7"; //鎵规鍙负绌哄崟鎹被鍨�
+ int codeStrNum = 0;
try
{
- if (model.Origin == "褰曞叆")
+ if (model.Origin == "褰曞叆" || model.Origin == "瀵煎叆")
{
model.ASNNo = new Common().GetMaxNo("ASN");
}
@@ -290,7 +291,8 @@
throw new Exception("鍗曟嵁绫诲瀷涓嶅彲涓虹┖!");
}
}
-
+
+
lock (AsnLock)
{
// 鎬昏〃瀹炰綋璧嬪��
@@ -304,7 +306,7 @@
Status = "0",
LotNo = model.LotNo,
LotText = model.LotText,
- SupplierLot = model.SupplierLot,
+ SupplierLot = model.SupplierLot,
CreateUser = (int)model.CreateUser
};
@@ -328,8 +330,8 @@
strMessage = "-1:鏁伴噺蹇呴』澶т簬0;";
continue;
}
-
- if ( model.Type == "5" || model.Type == "6" || model.Type == "7")
+
+ if (model.Type == "5" || model.Type == "6" || model.Type == "7")
{
if (!string.IsNullOrWhiteSpace(detailModel.LotNo))
{
@@ -373,25 +375,28 @@
{
string toDayTime = DateTime.Now.ToString("yyyyMM");
var maxBoxCodeStr = Db.Queryable<BllArrivalNoticeDetail>()
- .Where(m => m.IsDel == "0" && m.BoxCodeStr.Contains("BK")
+ .Where(m => m.IsDel == "0" && m.BoxCodeStr.Contains("BK")
&& m.CreateTime.ToString("yyyyMM") == DateTime.Now.ToString("yyyyMM")).Max(m => m.BoxCodeStr);
- if(string.IsNullOrWhiteSpace(maxBoxCodeStr))
+ if (string.IsNullOrWhiteSpace(maxBoxCodeStr))
{
- maxBoxCodeStr = "BK" + toDayTime.Substring(2, 4) + "0001";
+ string codeEndStr = (1 + codeStrNum).ToString().PadLeft(4, '0');
+ maxBoxCodeStr = "BK" + toDayTime.Substring(2, 4) + codeEndStr;
}
else
{
- maxBoxCodeStr = "BK" + (int.Parse(maxBoxCodeStr.Replace("BK", "")) + 1).ToString();
+ maxBoxCodeStr = "BK" + (int.Parse(maxBoxCodeStr.Replace("BK", "")) + 1 + codeStrNum).ToString();
}
detailModel.BoxCodeStr = maxBoxCodeStr;
+
+ codeStrNum++;
}
// 鍒ゆ柇鏄惁宸插瓨鍦ㄥ綋鍓嶆槑缁�
int com = Db.Queryable<BllArrivalNoticeDetail>()
- .Where(m => m.ASNNo == model.ASNNo
- && m.SkuNo == detailModel.SkuNo
- && m.LotNo == detailModel.LotNo
- && m.Id != (int)detailModel.Id
+ .Where(m => m.ASNNo == model.ASNNo
+ && m.SkuNo == detailModel.SkuNo
+ && m.LotNo == detailModel.LotNo
+ && m.Id != (int)detailModel.Id
&& m.IsDel == "0").ToList().Count();
if (com > 0)
{
@@ -409,25 +414,48 @@
}
string lot1 = detailModel.Lot1;
string lot2 = detailModel.Lot2;
- if (sku.IsInspect == "0")//鏄惁鍏嶆锛�0锛氬惁 1锛氭槸
+ //if (sku.IsControlled == "0")//鏄惁璇烽獙锛�0锛氭槸 1锛氬惁
+ //{
+ // //闇�瑕佽楠岀墿鏂� 鐢熶骇鏃ユ湡銆佹湁鏁堟湡涓嶈兘涓虹┖
+ // DateTime lot12;
+ // DateTime lot22;
+ // if (!DateTime.TryParse(detailModel.Lot1, out lot12))
+ // {
+ // throw new Exception("闇�瑕佽楠屾枡鐢熶骇鏃ユ湡杞崲澶辫触");
+ // }
+ // if (!DateTime.TryParse(detailModel.Lot2, out lot22))
+ // {
+ // throw new Exception("闇�瑕佽楠屾枡杩囨湡鏃ユ湡杞崲澶辫触");
+ // }
+ // lot1 = lot12.ToString("yyyy-MM-dd");
+ // lot2 = lot22.ToString("yyyy-MM-dd");
+ //}
+ if (!string.IsNullOrEmpty(lot1))
{
- //涓嶅厤妫�鐗╂枡 鐢熶骇鏃ユ湡銆佹湁鏁堟湡涓嶈兘涓虹┖
DateTime lot12;
- DateTime lot22;
if (!DateTime.TryParse(detailModel.Lot1, out lot12))
{
- throw new Exception("涓嶅厤妫�鐗╂枡鐢熶骇鏃ユ湡杞崲澶辫触");
+ throw new Exception("鐢熶骇鏃ユ湡杞崲澶辫触锛岃妫�鏌ユ牸寮忔槸鍚︽纭�");
}
+ lot1 = lot12.ToString("yyyy-MM-dd");
+ }
+ if (!string.IsNullOrEmpty(lot2))
+ {
+ DateTime lot22;
if (!DateTime.TryParse(detailModel.Lot2, out lot22))
{
- throw new Exception("涓嶅厤妫�鐗╂枡杩囨湡鏃ユ湡杞崲澶辫触");
+ throw new Exception("鍒版湡鏃ユ湡杞崲澶辫触锛岃妫�鏌ユ牸寮忔槸鍚︽纭�");
}
- lot1 = lot12.ToString();
- lot2 = lot22.ToString();
+ lot2 = lot22.ToString("yyyy-MM-dd");
}
+
if (string.IsNullOrWhiteSpace(detailModel.PackagNo))
{
- throw new Exception("鍖呰涓嶈兘涓虹┖");
+ detailModel.PackagNo = sku.PackagNo;
+ if (string.IsNullOrWhiteSpace(detailModel.PackagNo))
+ {
+ throw new Exception("鍖呰涓嶈兘涓虹┖");
+ }
}
// 璁$畻鍑烘�婚噾棰�
detailModel.Money = detailModel.Price * detailModel.Qty;
@@ -436,7 +464,7 @@
ASNNo = model.ASNNo,
SkuNo = detailModel.SkuNo,
SkuName = detailModel.SkuName,
- Standard = detailModel.Standard,
+ Standard = sku.Standard,
LotNo = detailModel.LotNo == null ? "" : detailModel.LotNo.Trim(),
LotText = detailModel.LotText,
Qty = (decimal)detailModel.Qty,
@@ -464,7 +492,7 @@
details.Add(detail);
}
-
+
// 鍒ゆ柇鏄惁瀛樺湪琚繃婊ゆ帀鐨勬槑缁�
if (details.Count <= 0)
{
@@ -476,7 +504,7 @@
var rowCount = Db.Insertable(ASNModel).ExecuteCommand();
var rowDetailCount = 0;
- if (details.Count > 0)
+ if (details.Count > 0)
{
rowDetailCount = Db.Insertable(details).ExecuteCommand();
}
@@ -493,6 +521,65 @@
return "-2:娣诲姞澶辫触鏁版嵁鍥炴粴!";
}
}
+ }
+ catch (Exception ex)
+ {
+ Db.Ado.RollbackTran();
+ throw new Exception(ex.Message);
+ }
+ }
+
+ //瀵煎叆鍏ュ簱鍗曟嵁
+ public string ImportArrivalNotice(ArrivalNoticeVms models)
+ {
+ string strMessage = "";
+ try
+ {
+ if (models.ListArrivalNotice.Count <= 0)
+ {
+ strMessage = "-1:鏂囦欢鍐呮棤鏁版嵁璇锋牳瀹�!";
+ }
+ var num = 0;
+ int CreateUser = Convert.ToInt32(models.CreateUser);
+ List<string> noticeList = new List<string>();
+ foreach (ArrivalNoticeVm model in models.ListArrivalNotice)
+ {
+ try
+ {
+ model.CreateUser = models.CreateUser;
+ model.Origin = "瀵煎叆";
+ var msg = AddArrivalNotice(model);
+ strMessage += msg;
+ if (msg == "")
+ {
+ num += 1;
+ var hasBoxItem = noticeList.Exists(x => x == model.ASNNo);
+ if (!hasBoxItem)
+ {
+ noticeList.Add(model.ASNNo);
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ throw new Exception($"鐗╂枡缂栫爜锛歿model.AsnDetail[0].SkuNo},鐗╂枡鍚嶇О锛歿model.AsnDetail[0].SkuName}锛屽鍏ュけ璐ワ細" + ex.Message);
+ // ignored
+ }
+ }
+ if (num > 0)
+ {
+ new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鍏ュ簱鍗曟嵁", $"鍏卞鍏ヤ簡{noticeList.Count}鏉″崟鎹�", "瀵煎叆", $"鍏卞鍏ヤ簡{noticeList.Count}鏉″崟鎹�", CreateUser);
+ }
+ if (strMessage.Contains("-1") && num > 0)
+ {
+ return "閮ㄥ垎瀵煎叆鎴愬姛" + strMessage;
+ }
+ if (num > 0)
+ {
+ return "瀵煎叆鎴愬姛" + strMessage;
+ }
+
+ return strMessage;
}
catch (Exception ex)
{
@@ -577,47 +664,67 @@
// 2. 灏嗗瓧绗︿覆绫诲瀷鐨処sControlled杞崲涓篵ool锛堟牴鎹疄闄呭彇鍊艰鍒欒皟鏁达級
// 姣斿锛�"1"琛ㄧず鍙楁帶锛�"0"琛ㄧず涓嶅彈鎺э紱鎴�"True"/"False"锛涙垨"鏄�"/"鍚�"
- bool isControlled;
- if (!bool.TryParse(material.IsControlled, out isControlled))
- {
- // 澶勭悊闈炴爣鍑嗘牸寮忥紙濡�"1"/"0"锛�
- isControlled = material.IsControlled == "1" ||
- string.Equals(material.IsControlled, "鏄�", StringComparison.OrdinalIgnoreCase);
- }
+ //bool isControlled;
+ //if (!bool.TryParse(material.IsControlled, out isControlled))
+ //{
+ // // 澶勭悊闈炴爣鍑嗘牸寮忥紙濡�"1"/"0"锛�
+ // isControlled = material.IsControlled == "1" ||
+ // string.Equals(material.IsControlled, "鏄�", StringComparison.OrdinalIgnoreCase);
+ //}
// 3. 鏍规嵁鍙楁帶鐘舵�侀獙璇佹棩鏈�
- if (isControlled)
+ //if (material.IsControlled=="0")
+ //{
+ // // 鍙楁帶鐘舵�侊細鐢熶骇鏃ユ湡蹇呭~
+ // if (string.IsNullOrWhiteSpace(detailModel.Lot1))
+ // return $"-1:鐗╂枡{detailModel.SkuNo}涓洪渶璇烽獙鐗╂枡锛岀敓浜ф棩鏈熶笉鍙负绌�;";
+
+ // // 鍙楁帶鐘舵�侊細杩囨湡鏃ユ湡蹇呭~
+ // if (string.IsNullOrWhiteSpace(detailModel.Lot2))
+ // return $"-1:鐗╂枡{detailModel.SkuNo}涓洪渶璇烽獙鐗╂枡锛岃繃鏈熸棩鏈熶笉鍙负绌�;";
+
+ // // 楠岃瘉鏃ユ湡鏍煎紡鏈夋晥鎬�
+ // if (!DateTime.TryParse(detailModel.Lot1, out DateTime productionDate))
+ // return $"-1:鐗╂枡{detailModel.SkuNo}鐨勭敓浜ф棩鏈熸牸寮忛敊璇紝璇蜂娇鐢ㄦ湁鏁堟棩鏈熸牸寮�;";
+
+ // if (!DateTime.TryParse(detailModel.Lot2, out DateTime expiryDate))
+ // return $"-1:鐗╂枡{detailModel.SkuNo}鐨勮繃鏈熸棩鏈熸牸寮忛敊璇紝璇蜂娇鐢ㄦ湁鏁堟棩鏈熸牸寮�;";
+
+ // // 楠岃瘉杩囨湡鏃ユ湡涓嶈兘鏃╀簬鐢熶骇鏃ユ湡
+ // if (expiryDate <= productionDate)
+ // return $"-1:鐗╂枡{detailModel.SkuNo}鐨勮繃鏈熸棩鏈熶笉鑳芥棭浜庣敓浜ф棩鏈�;";
+ //}
+
+ if (!string.IsNullOrEmpty(detailModel.Lot1))
{
- // 鍙楁帶鐘舵�侊細鐢熶骇鏃ユ湡蹇呭~
- if (string.IsNullOrWhiteSpace(detailModel.Lot1))
- return $"-1:鐗╂枡{detailModel.SkuNo}涓哄彈鎺х墿鏂欙紝鐢熶骇鏃ユ湡涓嶅彲涓虹┖;";
-
- // 鍙楁帶鐘舵�侊細杩囨湡鏃ユ湡蹇呭~
- if (string.IsNullOrWhiteSpace(detailModel.Lot2))
- return $"-1:鐗╂枡{detailModel.SkuNo}涓哄彈鎺х墿鏂欙紝杩囨湡鏃ユ湡涓嶅彲涓虹┖;";
-
- // 楠岃瘉鏃ユ湡鏍煎紡鏈夋晥鎬�
- if (!DateTime.TryParse(detailModel.Lot1, out DateTime productionDate))
- return $"-1:鐗╂枡{detailModel.SkuNo}鐨勭敓浜ф棩鏈熸牸寮忛敊璇紝璇蜂娇鐢ㄦ湁鏁堟棩鏈熸牸寮�;";
-
- if (!DateTime.TryParse(detailModel.Lot2, out DateTime expiryDate))
- return $"-1:鐗╂枡{detailModel.SkuNo}鐨勮繃鏈熸棩鏈熸牸寮忛敊璇紝璇蜂娇鐢ㄦ湁鏁堟棩鏈熸牸寮�;";
-
- // 楠岃瘉杩囨湡鏃ユ湡涓嶈兘鏃╀簬鐢熶骇鏃ユ湡
- if (expiryDate <= productionDate)
- return $"-1:鐗╂枡{detailModel.SkuNo}鐨勮繃鏈熸棩鏈熶笉鑳芥棭浜庣敓浜ф棩鏈�;";
+ DateTime lot12;
+ if (!DateTime.TryParse(detailModel.Lot1, out lot12))
+ {
+ throw new Exception("鐢熶骇鏃ユ湡杞崲澶辫触锛岃妫�鏌ユ牸寮忔槸鍚︽纭�");
+ }
+ detailModel.Lot1 = lot12.ToString("yyyy-MM-dd");
}
+ if (!string.IsNullOrEmpty(detailModel.Lot2))
+ {
+ DateTime lot22;
+ if (!DateTime.TryParse(detailModel.Lot2, out lot22))
+ {
+ throw new Exception("鍒版湡鏃ユ湡杞崲澶辫触锛岃妫�鏌ユ牸寮忔槸鍚︽纭�");
+ }
+ detailModel.Lot2 = lot22.ToString("yyyy-MM-dd");
+ }
+
// 涓嶅彈鎺х姸鎬侊細鏃ユ湡闈炲繀濉紝鏃犻渶楠岃瘉
// 鍘熸湁鎵规鐩稿叧楠岃瘉锛堜繚鐣欙級
- if (TypeLot.Contains(model.Type))
- {
- if (string.IsNullOrWhiteSpace(detailModel.Lot1))
- throw new Exception("鐢熶骇鏃ユ湡涓嶅彲涓虹┖!");
+ //if (TypeLot.Contains(model.Type))
+ //{
+ // if (string.IsNullOrWhiteSpace(detailModel.Lot1))
+ // throw new Exception("鐢熶骇鏃ユ湡涓嶅彲涓虹┖!");
- if (string.IsNullOrWhiteSpace(detailModel.Lot2))
- throw new Exception("杩囨湡鏃ユ湡涓嶅彲涓虹┖!");
- }
+ // if (string.IsNullOrWhiteSpace(detailModel.Lot2))
+ // throw new Exception("杩囨湡鏃ユ湡涓嶅彲涓虹┖!");
+ //}
// 楠岃瘉鐗╂枡鍜屾壒娆″彿鏄惁閲嶅
if (dbDetailModels.Any(m => m.SkuNo == detailModel.SkuNo
@@ -630,7 +737,7 @@
// 澶勭悊浠锋牸榛樿鍊�
detailModel.Price ??= 0;
-
+ detailModel.BoxCodeStr = detailModel.LotNo;
// 鐢熸垚绠辩爜锛堣嚜鏈夋壒娆¢�昏緫锛�
if (detailModel.Id == 0 || detailModel.Id == null || string.IsNullOrWhiteSpace(detailModel.LotNo))
{
@@ -762,6 +869,7 @@
}
catch (Exception ex)
{
+ Db.Ado.RollbackTran();
throw ex;
}
}
@@ -777,10 +885,10 @@
return "-1:鍏ュ簱鍗曠姸鎬佸凡鍙樻洿锛屼笉鍙垹闄�!";
}
- if (asnModel.Origin != "褰曞叆" && asnModel.Origin != "閲囪喘鍗�")
- {
- return "-1:涓婃父绯荤粺涓嬪彂鐨勫崟鎹紝涓嶅彲鍒犻櫎;";
- }
+ //if (asnModel.Origin != "褰曞叆" && asnModel.Origin != "閲囪喘鍗�")
+ //{
+ // return "-1:涓婃父绯荤粺涓嬪彂鐨勫崟鎹紝涓嶅彲鍒犻櫎;";
+ //}
// 鍒犻櫎鎬诲崟
var editDateTime = DateTime.Now;
@@ -789,8 +897,8 @@
asnModel.UpdateUser = model.CreateUser;
// 鍒犻櫎鏄庣粏鍗�
- var asnDetails = Db.Queryable<BllArrivalNoticeDetail>().Where(m => m.ASNNo == model.ASNNo && m.IsDel =="0").ToList();
- foreach (BllArrivalNoticeDetail asnDetail in asnDetails)
+ var asnDetails = Db.Queryable<BllArrivalNoticeDetail>().Where(m => m.ASNNo == model.ASNNo && m.IsDel == "0").ToList();
+ foreach (BllArrivalNoticeDetail asnDetail in asnDetails)
{
asnDetail.IsDel = "1";
asnDetail.UpdateTime = editDateTime;
@@ -848,14 +956,14 @@
return "-1:鍏ュ簱鍗曠姸鎬佸凡鍙樻洿锛屼笉鍙垹闄�!";
}
- if (asnModel.Origin != "褰曞叆" )//&& asnModel.Origin != "閲囪喘鍗�"
+ if (asnModel.Origin != "褰曞叆")//&& asnModel.Origin != "閲囪喘鍗�"
{
return "-1:涓婃父绯荤粺涓嬪彂鐨勫崟鎹紝涓嶅彲鍒犻櫎;";
}
var asnDetail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.ASNNo == model.ASNNo && m.IsDel == "0" && m.Id == model.Id);
- if (asnDetail == null)
+ if (asnDetail == null)
{
return "-1:鏄庣粏鐘舵�佸凡鍙樻洿锛屼笉鍙垹闄�!";
}
@@ -885,11 +993,11 @@
Db.Ado.BeginTran();
int rowCount = Db.Updateable(asnModel).ExecuteCommand();
rowCount += Db.Updateable(asnDetail).ExecuteCommand();
- if (boxList.Count>0)
+ if (boxList.Count > 0)
{
- rowCount += Db.Deleteable(boxList).ExecuteCommand();
+ rowCount += Db.Deleteable(boxList).ExecuteCommand();
}
-
+
if (rowCount < 2)
{
Db.RollbackTran();
@@ -898,8 +1006,8 @@
Db.Ado.CommitTran();
var detail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.Id == model.Id);
- new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鍏ュ簱鍗曟嵁", model.ASNNo, "鍒犻櫎",
- $"鍒犻櫎浜嗗崟鎹彿涓簕model.ASNNo}銆佺墿鏂欎负{detail.SkuNo}銆佹壒娆″彿涓簕detail.LotNo}鐨勫崟鎹俊鎭�",
+ new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鍏ュ簱鍗曟嵁", model.ASNNo, "鍒犻櫎",
+ $"鍒犻櫎浜嗗崟鎹彿涓簕model.ASNNo}銆佺墿鏂欎负{detail.SkuNo}銆佹壒娆″彿涓簕detail.LotNo}鐨勫崟鎹俊鎭�",
Convert.ToInt32(model.CreateUser));
return "";
@@ -923,7 +1031,7 @@
}
var palletBind = Db.Queryable<BllPalletBind>()
- .Where(m => m.IsDel == "0" && m.ASNNo == notice.ASNNo
+ .Where(m => m.IsDel == "0" && m.ASNNo == notice.ASNNo
&& m.Status != "2" && m.Status != "3").ToList();
if (palletBind != null && palletBind.Count > 0)
@@ -934,7 +1042,7 @@
// 鎬诲崟鍏冲崟
var asnModel = Db.Queryable<BllArrivalNotice>().First(m => m.Id == id);
- if (asnModel != null)
+ if (asnModel != null)
{
asnModel.Status = "3";
asnModel.CompleteTime = comTime;
@@ -943,7 +1051,7 @@
}
// 灏嗘湭瀹屾垚鐨勬槑缁嗘敼涓哄凡瀹屾垚
var asnDetails = Db.Queryable<BllArrivalNoticeDetail>().Where(m => m.Id == id && m.Status == "2").ToList();
- foreach (BllArrivalNoticeDetail asnDetail in asnDetails)
+ foreach (BllArrivalNoticeDetail asnDetail in asnDetails)
{
asnDetail.Status = "2";
asnDetail.CompleteTime = comTime;
@@ -961,108 +1069,108 @@
return "-1:鍏冲崟澶辫触锛�";
}
#region 閲囪喘璁″垝锛岃嫢鏄噰璐鍗曟牴鎹噰璐鍒掑崟鑷姩鐢熸垚鍏ュ簱鍗曚俊鎭�
- if (notice.Type == "1" && !string.IsNullOrEmpty(notice.OrderCode))
- {
- // 鑾峰彇閲囪喘鎬诲崟淇℃伅
- var planOrd = Db.Queryable<BllProcurePlanNotice>().First(it => it.OrderCode == notice.OrderCode && it.IsDel == "0");
- //鍏ュ簱鍗曟槑缁�
- var noticeDetailList = Db.Queryable<BllArrivalNoticeDetail>()
- .Where(m => m.IsDel == "0" && m.ASNNo == notice.ASNNo).ToList();
- foreach (var item in noticeDetailList)
- {
- //閲囪喘鍗曟槑缁�
- var planDetail = Db.Queryable<BllProcurePlanNoticeDetail>()
- .First(it => it.ParentId == planOrd.Id && it.SkuNo == item.SkuNo && it.IsDel == "0");
- planDetail.CompleteQty += item.CompleteQty;
- if (planDetail.CompleteQty >= planDetail.Qty)
- {
- planDetail.Status = "2";
- planDetail.CompleteTime = comTime;
- }
- else
- {
- planDetail.Status = "1";
- }
- Db.Updateable(planDetail).ExecuteCommand();
- }
- // 缁存姢閲囪喘鎬诲崟淇℃伅
- var planDetailNum = Db.Queryable<BllProcurePlanNoticeDetail>().Count(m => m.IsDel == "0" && m.ParentId == planOrd.Id && m.Status != "2");
- if (planDetailNum == 0)
- {
- planOrd.Status = "2";
- planOrd.CompleteTime = comTime;
- Db.Updateable(planOrd).ExecuteCommand();
- }
- else
- {
- if (planOrd.Status == "0")
- {
- planOrd.Status = "1";
- Db.Updateable(planOrd).ExecuteCommand();
- }
- }
- //閲囪喘鍗曟槑缁�
- var planDetailList = Db.Queryable<BllProcurePlanNoticeDetail>()
- .Where(it => it.ParentId == planOrd.Id && it.IsDel == "0" && it.CompleteQty < it.Qty).ToList();
- foreach (var item in planDetailList)
- {
- //鍒ゆ柇鏈夋棤姝e湪鎵ц鐨�
- var noticeDetail = Db.Queryable<BllArrivalNoticeDetail>().First(it => it.OrderDetailCode == item.OrderDetailCode && it.IsDel == "0" && it.Status == "0");
- if (noticeDetail != null)
- {
- continue;
- }
- // 鑾峰彇鐗╂枡璇︾粏淇℃伅
- var skuModel = Db.Queryable<SysMaterials>().First(it => it.SkuNo == item.SkuNo && it.IsDel == "0");
- if (skuModel == null)
- {
- continue;
- }
- // 楠岃瘉鍖呰淇℃伅鏄惁瀛樺湪
- var packagModel = Db.Queryable<SysPackag>().First(it => it.PackagNo == item.PackagNo && it.IsDel == "0");
- if (packagModel == null)
- {
- continue;
- }
- // 鍏ュ簱鎬昏〃淇℃伅
- string asnNo = new Common().GetMaxNo("ASN");
- var asnModel1 = new BllArrivalNotice()
- {
- ASNNo = asnNo,
- Status = "0",//鎵ц鐘舵�侊紝0锛氱瓑寰呮墽琛�
- Type = "1",//鍗曟嵁绫诲瀷锛�1锛氶噰璐叆搴�
- Origin = "閲囪喘鍗�",
- CustomerNo = item.CustomerNo,
- CustomerName = item.CustomerName,
- OrderCode = planOrd.OrderCode,
- CreateUser = 0
- };
- // 鎻掑叆鍏ュ簱鎬昏〃淇℃伅
- Db.Insertable(asnModel1).ExecuteCommand();
- //鍏ュ簱鍗曟槑缁�
- var arrDetailModel = new BllArrivalNoticeDetail()
- {
- ASNNo = asnNo,
- SkuNo = skuModel.SkuNo,
- SkuName = skuModel.SkuName,
- Standard = skuModel.Standard,
- LotNo = "",
- LotText = "",
- Qty = 0,
- FactQty = 0,
- CompleteQty = 0,
- PackagNo = packagModel.PackagNo,
- SupplierLot = "",
- Status = "0",
- IsSampling = "0",
- InspectStatus = "0",
- OrderDetailCode = item.OrderDetailCode,
- CreateUser = 0
- };
- // 鎻掑叆鍏ュ簱鎬昏〃淇℃伅
- Db.Insertable(arrDetailModel).ExecuteCommand();
- }
- }
+ //if (notice.Type == "1" && !string.IsNullOrEmpty(notice.OrderCode))
+ //{
+ // // 鑾峰彇閲囪喘鎬诲崟淇℃伅
+ // var planOrd = Db.Queryable<BllProcurePlanNotice>().First(it => it.OrderCode == notice.OrderCode && it.IsDel == "0");
+ // //鍏ュ簱鍗曟槑缁�
+ // var noticeDetailList = Db.Queryable<BllArrivalNoticeDetail>()
+ // .Where(m => m.IsDel == "0" && m.ASNNo == notice.ASNNo).ToList();
+ // foreach (var item in noticeDetailList)
+ // {
+ // //閲囪喘鍗曟槑缁�
+ // var planDetail = Db.Queryable<BllProcurePlanNoticeDetail>()
+ // .First(it => it.ParentId == planOrd.Id && it.SkuNo == item.SkuNo && it.IsDel == "0");
+ // planDetail.CompleteQty += item.CompleteQty;
+ // if (planDetail.CompleteQty >= planDetail.Qty)
+ // {
+ // planDetail.Status = "2";
+ // planDetail.CompleteTime = comTime;
+ // }
+ // else
+ // {
+ // planDetail.Status = "1";
+ // }
+ // Db.Updateable(planDetail).ExecuteCommand();
+ // }
+ // // 缁存姢閲囪喘鎬诲崟淇℃伅
+ // var planDetailNum = Db.Queryable<BllProcurePlanNoticeDetail>().Count(m => m.IsDel == "0" && m.ParentId == planOrd.Id && m.Status != "2");
+ // if (planDetailNum == 0)
+ // {
+ // planOrd.Status = "2";
+ // planOrd.CompleteTime = comTime;
+ // Db.Updateable(planOrd).ExecuteCommand();
+ // }
+ // else
+ // {
+ // if (planOrd.Status == "0")
+ // {
+ // planOrd.Status = "1";
+ // Db.Updateable(planOrd).ExecuteCommand();
+ // }
+ // }
+ // //閲囪喘鍗曟槑缁�
+ // var planDetailList = Db.Queryable<BllProcurePlanNoticeDetail>()
+ // .Where(it => it.ParentId == planOrd.Id && it.IsDel == "0" && it.CompleteQty < it.Qty).ToList();
+ // foreach (var item in planDetailList)
+ // {
+ // //鍒ゆ柇鏈夋棤姝e湪鎵ц鐨�
+ // var noticeDetail = Db.Queryable<BllArrivalNoticeDetail>().First(it => it.OrderDetailCode == item.OrderDetailCode && it.IsDel == "0" && it.Status == "0");
+ // if (noticeDetail != null)
+ // {
+ // continue;
+ // }
+ // // 鑾峰彇鐗╂枡璇︾粏淇℃伅
+ // var skuModel = Db.Queryable<SysMaterials>().First(it => it.SkuNo == item.SkuNo && it.IsDel == "0");
+ // if (skuModel == null)
+ // {
+ // continue;
+ // }
+ // // 楠岃瘉鍖呰淇℃伅鏄惁瀛樺湪
+ // var packagModel = Db.Queryable<SysPackag>().First(it => it.PackagNo == item.PackagNo && it.IsDel == "0");
+ // if (packagModel == null)
+ // {
+ // continue;
+ // }
+ // // 鍏ュ簱鎬昏〃淇℃伅
+ // string asnNo = new Common().GetMaxNo("ASN");
+ // var asnModel1 = new BllArrivalNotice()
+ // {
+ // ASNNo = asnNo,
+ // Status = "0",//鎵ц鐘舵�侊紝0锛氱瓑寰呮墽琛�
+ // Type = "1",//鍗曟嵁绫诲瀷锛�1锛氶噰璐叆搴�
+ // Origin = "閲囪喘鍗�",
+ // CustomerNo = item.CustomerNo,
+ // CustomerName = item.CustomerName,
+ // OrderCode = planOrd.OrderCode,
+ // CreateUser = 0
+ // };
+ // // 鎻掑叆鍏ュ簱鎬昏〃淇℃伅
+ // Db.Insertable(asnModel1).ExecuteCommand();
+ // //鍏ュ簱鍗曟槑缁�
+ // var arrDetailModel = new BllArrivalNoticeDetail()
+ // {
+ // ASNNo = asnNo,
+ // SkuNo = skuModel.SkuNo,
+ // SkuName = skuModel.SkuName,
+ // Standard = skuModel.Standard,
+ // LotNo = "",
+ // LotText = "",
+ // Qty = 0,
+ // FactQty = 0,
+ // CompleteQty = 0,
+ // PackagNo = packagModel.PackagNo,
+ // SupplierLot = "",
+ // Status = "0",
+ // IsSampling = "0",
+ // InspectStatus = "0",
+ // OrderDetailCode = item.OrderDetailCode,
+ // CreateUser = 0
+ // };
+ // // 鎻掑叆鍏ュ簱鎬昏〃淇℃伅
+ // Db.Insertable(arrDetailModel).ExecuteCommand();
+ // }
+ //}
#endregion
Db.Ado.CommitTran();
@@ -1237,7 +1345,7 @@
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
- public ErpModel CreateAsn(SendAsnVm model,string userName)
+ public ErpModel CreateAsn(SendAsnVm model, string userName)
{
try
{
@@ -1247,7 +1355,7 @@
resultModel.Message = "鍗曟嵁绫诲瀷涓嶅彲涓虹┖!";
return resultModel;
}
-
+
if (string.IsNullOrEmpty(model.orderNo.ToString()))
{
resultModel.Message = "涓婃父绯荤粺鍗曞彿涓嶅彲涓虹┖!";
@@ -1405,11 +1513,11 @@
}
var item = new BackAsnDetail()
{
- POSNR=d.OrderDetailCode,
+ POSNR = d.OrderDetailCode,
MATNR = d.SkuNo,
- MAKTX=d.SkuName,
+ MAKTX = d.SkuName,
LFIMG = d.CompleteQty.ToString(),
- MEINS= mater.UnitNo,
+ MEINS = mater.UnitNo,
CHARG = d.LotNo,
HSDAT = d.Lot1,
VFDAT = d.Lot2
@@ -1429,12 +1537,12 @@
//绯荤粺瀵规帴鍚庢斁寮�
var jsonData = JsonConvert.SerializeObject(soInfo);
- var response = HttpHelper.DoPost(url, jsonData, "鍏ュ簱鍗曞畬鎴愪笂浼�", "ERP");
+ var response = HttpHelper.DoPost(url, jsonData, "鍏ュ簱鍗曞畬鎴愪笂浼�", "SAP");
- var obj = JsonConvert.DeserializeObject<ErpModel>(response);//瑙f瀽杩斿洖鏁版嵁
- if (obj.Success != 0)
+ var obj = JsonConvert.DeserializeObject<SapResultModel>(response);//瑙f瀽杩斿洖鏁版嵁
+ if (obj.RESULT != true)
{
- throw new Exception("涓婁紶澶辫触" + obj.Message);
+ throw new Exception("涓婁紶澶辫触" + obj.MESSAGE);
}
#endregion
@@ -1460,7 +1568,7 @@
try
{
Db.BeginTran();
- if (code.Substring(0,2) == "AS")
+ if (code.Substring(0, 2) == "AS")
{
var notice = Db.Queryable<BllArrivalNotice>().First(m => m.ASNNo == code && m.IsDel == "0");
if (notice == null)
@@ -1519,7 +1627,7 @@
new OperationASNServer().AddLogOperationAsn("PDA妯″潡", "澶嶆牳鍗曟嵁", code, "澶嶆牳", $"澶嶆牳浜嗗崟鎹彿涓簕code}鐨勫崟鎹俊鎭�", userId);
}
- else if (code.Substring(0,2) == "SO")
+ else if (code.Substring(0, 2) == "SO")
{
var notice = Db.Queryable<BllExportNotice>().First(m => m.SONo == code && m.IsDel == "0");
if (notice == null)
@@ -1576,7 +1684,7 @@
new OperationSOServer().AddLogOperationSo("PDA妯″潡", "澶嶆牳鍗曟嵁", code, "澶嶆牳", $"澶嶆牳浜嗗崟鎹彿涓簕code}鐨勫崟鎹俊鎭�", userId);
}
Db.CommitTran();
-
+
return true;
}
catch (Exception e)
@@ -1753,7 +1861,7 @@
//鏇存柊鍌ㄤ綅鐘舵��
Db.Updateable(palletLocatInfo).ExecuteCommand();
//鑾峰彇鐩爣鍌ㄤ綅鍦板潃
- SysStorageLocat EndLocat = GetLocat(asnDetailModel.SkuNo, asnDetailModel.LotNo, bindPalletNoItem,hasLocatNoList);
+ SysStorageLocat EndLocat = GetLocat(asnDetailModel.SkuNo, asnDetailModel.LotNo, bindPalletNoItem, hasLocatNoList);
if (EndLocat == null)
{
resultModel.Message = "鏈壘鍒扮洰鏍囧偍浣嶅湴鍧�淇℃伅!";
@@ -1781,8 +1889,8 @@
IsBale = "0",
IsBelt = "0",
- WareHouseNo= EndLocat.WareHouseNo,//鎵�灞炰粨搴�
- LocatNo=EndLocat.LocatNo,//鍌ㄤ綅鍦板潃
+ WareHouseNo = EndLocat.WareHouseNo,//鎵�灞炰粨搴�
+ LocatNo = EndLocat.LocatNo,//鍌ㄤ綅鍦板潃
CreateUser = 0
};
@@ -1794,7 +1902,7 @@
foreach (var completeDetailYuItem in palletCompleteDetailYuModelList)
{
Expression<Func<BllBoxInfo, bool>> exp = Expressionable.Create<BllBoxInfo>()
- .And(it => it.BoxNo== completeDetailYuItem.BoxNo)
+ .And(it => it.BoxNo == completeDetailYuItem.BoxNo)
.AndIF(!string.IsNullOrEmpty(completeDetailYuItem.BoxNo2), it => it.BoxNo2 == completeDetailYuItem.BoxNo2)
.AndIF(!string.IsNullOrEmpty(completeDetailYuItem.BoxNo3), it => it.BoxNo3 == completeDetailYuItem.BoxNo3)
.ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏�
--
Gitblit v1.8.0