From 1c2541b283ce6ba855e67c476412dffe2c693480 Mon Sep 17 00:00:00 2001
From: chengsc <11752@DESKTOP-DS49RCP>
Date: 星期三, 11 六月 2025 13:56:23 +0800
Subject: [PATCH] Merge branch 'csc'
---
Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs | 1244 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 1,193 insertions(+), 51 deletions(-)
diff --git a/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs
index b0f88b6..3b6b5d6 100644
--- a/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs
+++ b/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs
@@ -22,6 +22,13 @@
using System.Xml.Schema;
using ZXing.OneD;
using System.Threading.Tasks;
+using System.Security.Policy;
+using Newtonsoft.Json;
+using Utility.Tools;
+using Model.ModelDto.SysDto;
+using Model.ModelVm.SysVm;
+using System.Security.Cryptography.X509Certificates;
+using AutoMapper.Configuration.Annotations;
namespace WMS.BLL.BllPdaServer
{
@@ -1720,7 +1727,7 @@
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
- public List<BoxInfoDto> GetBindBoxInfos(BoxInfoVm model)
+ public List<BoxInfoDto> GetBindBoxInfos(BoxInfoVm model,string url)
{
try
{
@@ -1728,27 +1735,307 @@
{
throw new Exception("璇锋壂鎻忓绠辨潯鐮�!");
}
- string sqlString = $@"SELECT
- ASNNo,
- BoxNo,
- SkuNo,
- SkuName,
- LotNo,
- BitBoxMark,
- SUM(Qty) as Qty
- FROM BllBoxInfo
- WHERE IsDel = '0'
- AND Status='0'
- AND BoxNo = '{model.BoxNo}'
- GROUP BY ASNNo,BoxNo,SkuNo,SkuName,LotNo,BitBoxMark; ";
- var models = Db.Ado.SqlQuery<BoxInfoDto>(sqlString);
-
- if (models.Count == 0)
+ if (string.IsNullOrWhiteSpace(model.ASNNo))
{
- throw new Exception("绠辩爜淇℃伅涓嶅瓨鍦�!");
+ throw new Exception("璇烽�夋嫨鍏ュ簱鍗曞彿!");
}
+ var noticeList = Db.Queryable<BllArrivalNotice>().Where(m => m.IsDel == "0" && m.ASNNo == model.ASNNo).ToList();
+ if (noticeList.Count != 1)
+ {
+ throw new Exception("鍏ュ簱鍗曞彿閲嶅!");
+ }
+ var notice = noticeList.First();
+ if (notice.Type == "0") //鎴愬搧鍏ュ簱
+ {
+ string sqlString = $@"SELECT
+ ASNNo,
+ BoxNo,
+ SkuNo,
+ SkuName,
+ LotNo,
+ BitBoxMark,
+ SUM(Qty) as Qty
+ FROM BllBoxInfo
+ WHERE IsDel = '0'
+ AND Status='0'
+ AND BoxNo = '{model.BoxNo}'
+ GROUP BY ASNNo,BoxNo,SkuNo,SkuName,LotNo,BitBoxMark; ";
+ var models = Db.Ado.SqlQuery<BoxInfoDto>(sqlString);
- return models;
+ if (models.Count != 0)
+ {
+ return models;
+ }
+ else
+ {
+ var boxInfo = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == model.BoxNo).ToList();
+
+ if (boxInfo.Count == 0)
+ {
+ models = GetFMBindBoxInfos(model.BoxNo, url);
+ return models;
+ }
+ else
+ {
+ if (boxInfo.Count(m => m.Status != "0") > 0)
+ {
+ throw new Exception("绠辩爜淇℃伅鐘舵�佷笉鏄瓑寰呮墽琛�");
+ }
+ return models;
+ }
+
+
+
+ }
+ }
+ else if (notice.Type == "1" || notice.Type == "4") //閲囪喘鍏ュ簱
+ {
+ string sqlString = $@"SELECT
+ ASNNo,
+ BoxNo,
+ SkuNo,
+ SkuName,
+ LotNo,
+ BitBoxMark,
+ SUM(Qty) as Qty
+ FROM BllBoxInfo
+ WHERE IsDel = '0'
+ AND Status='0'
+ AND BoxNo = '{model.BoxNo}'
+ GROUP BY ASNNo,BoxNo,SkuNo,SkuName,LotNo,BitBoxMark; ";
+ var models = Db.Ado.SqlQuery<BoxInfoDto>(sqlString);
+
+ if (models.Count != 0)
+ {
+ return models;
+ }
+ else
+ {
+ throw new Exception("娌℃湁鏌ヨ鍒扮鐮佷俊鎭�");
+ }
+ }
+ else if (notice.Type == "3") //閫�璐у叆搴�
+ {
+ string sqlString = $@"SELECT
+ ASNNo,
+ BoxNo,
+ SkuNo,
+ SkuName,
+ LotNo,
+ BitBoxMark,
+ SUM(Qty) as Qty
+ FROM BllBoxInfo
+ WHERE IsDel = '0'
+ AND Status='0'
+ AND BoxNo = '{model.BoxNo}'
+ GROUP BY ASNNo,BoxNo,SkuNo,SkuName,LotNo,BitBoxMark; ";
+ var models = Db.Ado.SqlQuery<BoxInfoDto>(sqlString);
+
+ if (models.Count != 0)
+ {
+ return models;
+ }
+ else
+ {
+ sqlString = $@"SELECT
+ ASNNo,
+ BoxNo,
+ SkuNo,
+ SkuName,
+ LotNo,
+ BitBoxMark,
+ SUM(Qty) as Qty
+ FROM BllBoxInfo
+ WHERE IsDel = '0'
+ AND Status='0'
+ AND BoxNo2 = '{model.BoxNo}'
+ GROUP BY ASNNo,BoxNo,SkuNo,SkuName,LotNo,BitBoxMark; ";
+ models = Db.Ado.SqlQuery<BoxInfoDto>(sqlString);
+ if (models.Count != 0)
+ {
+ return models;
+ }
+ else
+ {
+ sqlString = $@"SELECT
+ ASNNo,
+ BoxNo,
+ SkuNo,
+ SkuName,
+ LotNo,
+ BitBoxMark,
+ SUM(Qty) as Qty
+ FROM BllBoxInfo
+ WHERE IsDel = '0'
+ AND Status='0'
+ AND BoxNo3 = '{model.BoxNo}'
+ GROUP BY ASNNo,BoxNo,SkuNo,SkuName,LotNo,BitBoxMark; ";
+ models = Db.Ado.SqlQuery<BoxInfoDto>(sqlString);
+ if (models.Count != 0)
+ {
+ return models;
+ }
+ }
+ }
+
+ #region 鑾峰彇鏈�鍚庝竴娆″嚭搴撴嫞璐т腑鐨勭鐮佷俊鎭�
+
+ var comBox = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.BoxNo == model.BoxNo).GroupBy(m => m.ExportAllotId).Select(m => m.ExportAllotId).ToList();
+ if (comBox.Count == 0)
+ {
+ comBox = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.BoxNo2 == model.BoxNo).GroupBy(m => m.ExportAllotId).Select(m => m.ExportAllotId).ToList();
+ if (comBox.Count == 0)
+ {
+ comBox = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.BoxNo3 == model.BoxNo).GroupBy(m => m.ExportAllotId).Select(m => m.ExportAllotId).ToList();
+ }
+ }
+ var i = 0;//寰幆娆℃暟
+ DateTime time = DateTime.Now;
+ var allotId = 0;
+ foreach (var item in comBox)
+ {
+ var comBoxList = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.ExportAllotId == item).OrderByDescending(m => m.CreateTime).First();
+ if (i == 0)
+ {
+ time = comBoxList.CreateTime;
+ allotId = comBoxList.ExportAllotId;
+ }
+ else if (comBoxList.CreateTime > time)
+ {
+ time = comBoxList.CreateTime;
+ allotId = comBoxList.ExportAllotId;
+ }
+ i++;
+ }
+ if (allotId != 0)
+ {
+ var addComBox = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.ExportAllotId == allotId).ToList();
+ var addComList = addComBox.GroupBy(m => m.BoxNo).ToList();
+ var sku = Db.Queryable<SysMaterials>().First(m => m.SkuNo == addComBox.First().SkuNo);
+ var pNum = 0;
+ var bNum = 0;
+ new Common().GetPackQtyInfo(sku.PackagNo, ref pNum, ref bNum);
+ var boxList = new List<BllBoxInfo>();
+ foreach (var com in addComList)
+ {
+ //绠卞唴鎬绘暟鍜�
+ var qtySum = addComBox.Where(m => m.BoxNo == com.Key).Sum(m => m.CompleteQty);
+ var bitBox = "1";
+ if (qtySum == bNum)
+ {
+ bitBox = "0";
+ }
+ foreach (var item in com)
+ {
+ if (item.BoxNo != model.BoxNo)
+ {
+ if (item.BoxNo2 != model.BoxNo)
+ {
+ if (item.BoxNo3 != model.BoxNo)
+ {
+ continue;
+ }
+ }
+ }
+ var boxInfo = new BllBoxInfo()
+ {
+ BoxNo = item.BoxNo,
+ BoxNo2 = item.BoxNo2,
+ BoxNo3 = item.BoxNo3,
+ SkuNo = item.SkuNo,
+ SkuName = item.SkuName,
+ LotNo = item.LotNo,
+ LotText = item.LotText,
+ Qty = (decimal)item.CompleteQty,
+ FullQty = bNum,
+ //ProductionTime = ,
+ //ExpirationTime = ,
+ InspectMark = "0",
+ InspectStatus = "0",
+ BitBoxMark = bitBox,
+ Origin = "WMS",
+ Status = "0",
+ CreateUser = 0
+ };
+ boxList.Add(boxInfo);
+ }
+
+ }
+ Db.Insertable(boxList).ExecuteCommand();
+
+ string sqlString2 = $@"SELECT
+ ASNNo,
+ BoxNo,
+ SkuNo,
+ SkuName,
+ LotNo,
+ BitBoxMark,
+ SUM(Qty) as Qty
+ FROM BllBoxInfo
+ WHERE IsDel = '0'
+ AND Status='0'
+ AND BoxNo = '{model.BoxNo}'
+ GROUP BY ASNNo,BoxNo,SkuNo,SkuName,LotNo,BitBoxMark; ";
+ var models2 = Db.Ado.SqlQuery<BoxInfoDto>(sqlString2);
+
+ if (models2.Count != 0)
+ {
+ return models2;
+ }
+ else
+ {
+ sqlString2 = $@"SELECT
+ ASNNo,
+ BoxNo,
+ SkuNo,
+ SkuName,
+ LotNo,
+ BitBoxMark,
+ SUM(Qty) as Qty
+ FROM BllBoxInfo
+ WHERE IsDel = '0'
+ AND Status='0'
+ AND BoxNo2 = '{model.BoxNo}'
+ GROUP BY ASNNo,BoxNo,SkuNo,SkuName,LotNo,BitBoxMark; ";
+ models2 = Db.Ado.SqlQuery<BoxInfoDto>(sqlString2);
+ if (models2.Count != 0)
+ {
+ return models2;
+ }
+ else
+ {
+ sqlString2 = $@"SELECT
+ ASNNo,
+ BoxNo,
+ SkuNo,
+ SkuName,
+ LotNo,
+ BitBoxMark,
+ SUM(Qty) as Qty
+ FROM BllBoxInfo
+ WHERE IsDel = '0'
+ AND Status='0'
+ AND BoxNo3 = '{model.BoxNo}'
+ GROUP BY ASNNo,BoxNo,SkuNo,SkuName,LotNo,BitBoxMark; ";
+ models2 = Db.Ado.SqlQuery<BoxInfoDto>(sqlString2);
+ if (models2.Count != 0)
+ {
+ return models2;
+ }
+ }
+ }
+
+
+ }
+
+ throw new Exception("绠辩爜淇℃伅涓嶅瓨鍦�!");
+ #endregion
+
+ }
+ else
+ {
+ throw new Exception("鍗曟嵁绫诲瀷閿欒");
+ }
}
catch (Exception ex)
{
@@ -1761,21 +2048,83 @@
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
- public List<BoxInfoDto> GetFMBindBoxInfos(string boxno)
+ public List<BoxInfoDto> GetFMBindBoxInfos(string boxno,string url)
{
try
{
#region 绠辩爜璇锋眰鎺ュ彛锛屾寮忕郴缁熸斁寮�
- /*var jsonData = JsonConvert.SerializeObject(boxno);
+ var data = new
+ {
+ BoxCode = boxno
+ };
+ var jsonData = JsonConvert.SerializeObject(data);
var response = HttpHelper.DoPost(url, jsonData, "绠辩爜淇℃伅璇锋眰", "FM");
- var obj = JsonConvert.DeserializeObject<ErpModel>(response);//瑙f瀽杩斿洖鏁版嵁
- if (obj.Success != 0)
+ var obj = JsonConvert.DeserializeObject<FumaGetBoxModel>(response);//瑙f瀽杩斿洖鏁版嵁
+ if (obj.Success != "0")
{
throw new Exception("璇锋眰澶辫触" + obj.Message);
- }*/
+ }
#endregion
+ var sku = Db.Queryable<SysMaterials>().First(m => m.SkuNo == obj.Product.SkuNo);
+ var pNum = 0;//鎵樼洏鐗╁搧鏁伴噺
+ var bNum = 0;//绠辩爜鐗╁搧鏁伴噺
+ if (sku == null)
+ {
+ throw new Exception($"鏈煡璇㈠埌鐗╂枡{obj.Product.SkuNo}淇℃伅");
+ }
+ new Common().GetPackQtyInfo(sku.PackagNo, ref pNum, ref bNum);
+ if (pNum == 0 || bNum == 0)
+ {
+ throw new Exception($"{sku.SkuNo}鐗╁搧鍖呰鏈壘鍒帮紒");
+ }
+
+ var boxList = new List<BllBoxInfo>();
+ var comTime = DateTime.Now;
+ //娣诲姞绠辩爜淇℃伅
+ foreach (var box in obj.Product.BoxInfoList)
+ {
+ foreach (var box2 in box.BoxInfo2List)
+ {
+ foreach (var box3 in box2.BoxInfo3List)
+ {
+ var boxInfo = new BllBoxInfo()
+ {
+ BoxNo = box.BoxNo,
+ BoxNo2 = box2.BoxNo2,
+ BoxNo3 = box3.BoxNo3,
+ Qty = box3.Qty,
+ BitBoxMark = box.BitBoxMark,
+
+ ASNNo = "",
+ //ASNDetailNo = noticeDetail.Id,
+ OrderCode = "",//notice.OrderCode
+ //BindNo = bindId,
+ //PalletNo = model.PallNo,
+ FullQty = bNum,
+ Status = "2",
+ SkuNo = sku.SkuNo,
+ SkuName = sku.SkuName,
+ LotNo = obj.Product.LotNo,
+ LotText = obj.Product.LotText,
+ ProductionTime = DateTime.Parse(obj.Product.ProductionTime),
+ ExpirationTime = DateTime.Parse(obj.Product.ExpirationTime),
+ //CompleteTime = "",
+ InspectMark = "0",
+ InspectStatus = "0",
+ Origin = "璧嬬爜",
+ CreateTime = comTime,
+ CreateUser = 0
+ };
+ boxList.Add(boxInfo);
+ }
+
+ }
+ }
+ Db.Fastest<BllBoxInfo>().BulkCopy(boxList);
+
+
string sqlString = $@"SELECT
ASNNo,
BoxNo,
@@ -1877,7 +2226,9 @@
};
//鑾峰彇鐘舵�佹槸鏈粍鎵樼殑鏍囩淇℃伅
- var models = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.ASNNo == asnNo && m.ASNDetailNo == asnDetailId ).GroupBy(m=> new { m.ProductionTime,m.ExpirationTime }).Select(m=>new { m.ProductionTime ,m.ExpirationTime}).OrderBy(m=>m.ProductionTime).ToList();//&& m.Status == "0"
+ var models = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.ASNNo == asnNo && m.ASNDetailNo == asnDetailId && m.Status == "0")
+ .GroupBy(m=> new { m.ProductionTime,m.ExpirationTime })
+ .Select(m=>new { m.ProductionTime ,m.ExpirationTime}).OrderBy(m=>m.ProductionTime).ToList();//&& m.Status == "0"
foreach (var item in models)
{
var boxNoList = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.ASNNo == asnNo && m.ASNDetailNo == asnDetailId && m.ProductionTime == item.ProductionTime).Select(m => m.BoxNo).ToList();
@@ -2064,14 +2415,465 @@
}
}
+ /// <summary>
+ /// 鏍规嵁绠辩爜鑾峰彇鏍囩绠辩爜淇℃伅锛堣溅闂村叆搴�-鑾峰彇WMS鐢熸垚鐨勭淇℃伅锛�
+ /// </summary>
+ /// <param name="model"></param>
+ /// <returns></returns>
+ public List<BoxInfoDto> GetWmsBoxInfos(string boxNo)
+ {
+ try
+ {
+ if (string.IsNullOrEmpty(boxNo))
+ {
+ throw new Exception("璇锋壂鎻忓绠辨潯鐮�!");
+ }
+
+ string sqlString = $@"SELECT BoxNo, SkuNo, SkuName, LotNo, BitBoxMark, SUM(Qty) as Qty FROM BllBoxInfo
+ WHERE IsDel = '0' and Status='0' and BoxNo = '{boxNo}'
+ GROUP BY BoxNo,SkuNo,SkuName,LotNo,BitBoxMark; ";
+ var models = Db.Ado.SqlQuery<BoxInfoDto>(sqlString);
+
+ if (models.Count != 0)
+ {
+ return models;
+ }
+ else
+ {
+ throw new Exception("娌℃湁鏌ヨ鍒扮鐮佷俊鎭�");
+ }
+
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+ }
+
+
+ public void ChejianIn(string palletNo,string boxNo,decimal qty,string areaNo,int userId)
+ {
+ try
+ {
+ #region MyRegion
+
+ if (string.IsNullOrWhiteSpace(palletNo))
+ {
+ throw new Exception("鎵樼洏鍙蜂笉鑳戒负绌�");
+ }
+ if (string.IsNullOrWhiteSpace(boxNo))
+ {
+ throw new Exception("绠卞彿涓嶈兘涓虹┖");
+ }
+ if (qty<=0)
+ {
+ throw new Exception("鏁伴噺涓嶈兘灏忕瓑0");
+ }
+ var boxInfo = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == boxNo).ToList();
+ if (boxInfo.Count == 0)
+ {
+ throw new Exception("鏈煡璇㈠埌褰撳墠绠卞彿淇℃伅");
+ }
+ var boxInfoOne = boxInfo.First();
+ var pall = Db.Queryable<SysPallets>().First(m => m.IsDel == "0" && m.PalletNo == palletNo);
+ if (pall == null)
+ {
+ throw new Exception("鏈煡璇㈠埌褰撳墠鎵樼洏淇℃伅");
+ }
+ #endregion
+
+ //寮�鍚簨鍔�
+ Db.BeginTran();
+ //褰撳墠鏃堕棿
+ var comTime = DateTime.Now;
+
+ #region 鍖呰
+
+ var sku = Db.Queryable<SysMaterials>().First(m => m.IsDel == "0" && m.SkuNo == boxInfoOne.SkuNo);
+ var pack = Db.Queryable<SysPackag>().First(m => m.IsDel == "0" && m.PackagNo == sku.PackagNo);
+
+ var pNum = 0;//鎵樼洏鐗╁搧鏁伴噺
+ var bNum = 0;//绠辩爜鐗╁搧鏁伴噺
+
+ //鍏叡鏂规硶鑾峰彇鍖呰鏁伴噺
+ new Common().GetPackQtyInfo(pack.PackagNo, ref pNum, ref bNum);
+
+ #endregion
+
+ var msgStr = $"绠卞彿涓簕boxNo}";
+ var boxInfoList = new List<BllBoxInfo>();
+
+
+ boxInfoList.AddRange(boxInfo);
+
+ #region 搴撳瓨鏄庣粏
+
+ var area = Db.Queryable<SysStorageArea>().First(m => m.IsDel == "0" && m.AreaNo == areaNo);
+ if (area == null)
+ {
+ throw new Exception("鍏ュ簱鍖哄煙涓嶈兘涓虹┖");
+ }
+
+ var tags = "0";
+
+ // 鍒ゆ柇搴撳瓨鏄庣粏鏄惁宸叉湁姝ゆ墭鐩樹俊鎭�
+ var sd1 = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.SkuNo== boxInfoOne.SkuNo && m.LotNo == boxInfoOne.LotNo && m.PalletNo == palletNo);
+ var sdId1 = 0;
+ if (sd1 != null)
+ {
+ if (sd1.AreaNo!= areaNo)
+ {
+ throw new Exception("閫夋嫨鐨勫尯鍩熶笌搴撳瓨涓嶅悓");
+ }
+ sdId1 = sd1.Id;
+ // 搴撳瓨宸插瓨鍦� 鏇存柊鏁版嵁
+ sd1.Qty += qty;
+ sd1.CompleteTime = comTime;
+ sd1.UpdateUser = userId;
+ sd1.UpdateTime = comTime;
+
+ Db.Updateable(sd1).ExecuteCommand();
+ }
+ else
+ {
+ var sd2 = Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == palletNo && m.IsDel == "0" && !string.IsNullOrWhiteSpace(m.AreaNo));
+ if (sd2.Count(m=>m.AreaNo!= areaNo) > 0)
+ {
+ throw new Exception("褰撳墠鎵樼洏浣嶇疆涓庨�夋嫨鐨勪笉鍚岋紝璇锋牳瀹�");
+ }
+ // 搴撳瓨涓嶅瓨鍦� 鎻掑叆鏁版嵁
+ sd1 = new DataStockDetail()
+ {
+ ASNNo = "",
+ LotNo = boxInfoOne.LotNo,
+ LotText = boxInfoOne.LotText,
+ SupplierLot = boxInfoOne.SupplierLot,
+ SkuNo = sku.SkuNo,
+ SkuName = sku.SkuName,
+ Standard = sku.Standard,
+ Qty = qty,
+ LockQty = 0,
+ FrozenQty = 0,
+ InspectQty = 0,
+ WareHouseNo = area.WareHouseNo,//鎵�灞炰粨搴�
+ RoadwayNo = "",//鎵�灞炲贩閬�
+ AreaNo = area.AreaNo,//鎵�灞炲尯鍩�
+ LocatNo = "",//鍌ㄤ綅鍦板潃
+ PalletNo = palletNo,
+ PalletTags = tags,
+ CompleteTime = comTime,
+ ProductionTime = boxInfoOne.ProductionTime,
+ ExpirationTime = boxInfoOne.ExpirationTime,
+ Status = "0",
+ InspectMark = boxInfoOne.InspectMark,
+ InspectStatus = sku.IsInspect,
+ BitPalletMark = "1",
+ PackagNo = sku.PackagNo,
+
+ IsDel = "0",
+ CreateUser = 0,
+ CreateTime = comTime
+ };
+
+ //娣诲姞搴撳瓨鏄庣粏
+ sdId1 = Db.Insertable(sd1).ExecuteReturnIdentity();
+ }
+ #endregion
+
+ // 鏇存敼绠辨敮鍏崇郴琛�
+ decimal factQty = 0.00m;//鎵樼洏鎬绘暟閲�
+
+
+ //鏍囩缁勬墭
+ var boxGroup = boxInfo.GroupBy(m => m.BoxNo).ToList();
+ foreach (var g in boxGroup)
+ {
+ decimal boxFullQty = 0;//绠卞唴鎬绘暟閲�
+ foreach (var box in g)
+ {
+ if (box.BindNo != null && box.BindNo != 0)
+ {
+ continue;
+ }
+
+
+ box.PalletNo = palletNo;
+ box.Status = "2";
+
+ box.CompleteTime = comTime;
+ box.UpdateTime = comTime;
+ box.UpdateUser = userId;
+
+ //box.Qty = box.Qty;
+ //box.BitBoxMark = box.Qty == box.FullQty ? "0" : "1";
+
+ factQty += box.Qty;
+ boxFullQty += box.Qty;
+
+ #region 搴撳瓨绠辩爜鏄庣粏
+ var box2 = new DataBoxInfo()
+ {
+ StockDetailId = sdId1,
+ BoxNo = box.BoxNo,
+ BoxNo2 = box.BoxNo2,
+ BoxNo3 = box.BoxNo3,
+ PalletNo = box.PalletNo,
+ PalletNo2 = box.PalletNo2,
+ PalletNo3 = box.PalletNo3,
+ Qty = box.Qty,
+ FullQty = box.FullQty,
+ Status = "2",//0锛氭湭缁勬墭 1锛氬凡缁勬墭 2锛氬凡鍏ュ簱 3锛氬凡鍑哄簱 4:宸插垎閰� 5锛氬凡鎷h揣
+ LotNo = box.LotNo,
+ LotText = box.LotText,
+ SkuNo = box.SkuNo,
+ SkuName = box.SkuName,
+ Standard = sku.Standard,
+ ProductionTime = box.ProductionTime,
+ SupplierLot = box.SupplierLot,
+ InspectStatus = sku.IsInspect,
+ InspectMark = box.InspectMark,
+ BitBoxMark = box.BitBoxMark,
+ ExpirationTime = box.ExpirationTime,
+
+ CreateUser = 0,
+ CreateTime = comTime
+ };
+ //娣诲姞搴撳瓨绠辩爜鏄庣粏
+ Db.Insertable(box2).ExecuteCommand();
+ #endregion
+ }
+ if (boxFullQty > bNum)
+ {
+ throw new Exception($"缁戝畾澶辫触锛寋g.Key}绠辩爜缁戝畾鏁伴噺澶т簬璇ョ墿鍝佸寘瑁呮暟閲忥紒");
+ }
+ }
+ //鏇存敼绠辨敮鍏崇郴琛ㄤ俊鎭�
+ Db.Updateable(boxInfoList).ExecuteCommand();
+
+
+ #region 搴撳瓨
+ var dataStock = Db.Queryable<DataStock>().First(m => m.IsDel == "0" && m.SkuNo == sku.SkuNo && m.LotNo == boxInfoOne.LotNo);
+ if (dataStock != null)
+ {
+ dataStock.Qty += factQty;
+ Db.Updateable(dataStock).ExecuteCommand();
+ }
+ else
+ {
+ var stock = new DataStock()
+ {
+ SkuNo = sku.SkuNo,
+ SkuName = sku.SkuName,
+ Standard = sku.Standard,
+ LotNo = boxInfoOne.LotNo,
+ LotText = boxInfoOne.LotText,
+ Qty = qty,
+ LockQty = 0,
+ FrozenQty = 0,
+ IsSampling = "0",
+ IsDel = "0",
+ CreateUser = userId,
+ CreateTime = comTime
+ };
+ Db.Insertable(stock).ExecuteCommand();
+ }
+ #endregion
+
+ // 鏇存敼鎵樼洏浣跨敤鐘舵��
+ var sqlStr = $"update SysPallets set Status = '1' where PalletNo = '{palletNo}';";
+ ////娣诲姞鎵樼洏璁板綍琛ㄦ暟鎹�
+ //sqlStr += $"insert into LogPalletTrack values('{palletNo}','{boxNo}','缁勭洏','0',getDate(),{userId},NULL,NULL);";
+ //Db.Ado.ExecuteCommand(sqlStr);
+ new OperationASNServer().AddLogOperationAsn("PDA妯″潡", "杞﹂棿鍏ュ簱", boxNo, "娣诲姞", $"娣诲姞浜嗘墭鐩樼爜涓猴細{palletNo}銆亄msgStr}鐨勫叆搴撲俊鎭�", userId);
+
+ //鎻愪氦浜嬪姟
+ Db.CommitTran();
+
+ }
+ catch (Exception e)
+ {
+ Db.RollbackTran();
+ throw new Exception(e.Message);
+ }
+ }
+
+ /// <summary>
+ /// 杞﹂棿缁戝畾鎵樼洏 涓嶈创鏍囩墿鏂�
+ /// </summary>
+ /// <param name="model"></param>
+ /// <param name="userId"></param>
+ /// <exception cref="Exception"></exception>
+ public void ChejianQtyIn(string palletNo, string skuNo, string lotNo, decimal qty, string areaNo, int userId)
+ {
+ try
+ {
+ #region MyRegion
+
+ if (string.IsNullOrWhiteSpace(palletNo))
+ {
+ throw new Exception("鎵樼洏鍙蜂笉鑳戒负绌�");
+ }
+ if (string.IsNullOrWhiteSpace(skuNo))
+ {
+ throw new Exception("鐗╂枡涓嶈兘涓虹┖");
+ }
+ if (qty <= 0)
+ {
+ throw new Exception("鏁伴噺涓嶈兘灏忕瓑0");
+ }
+ var skuInfo = Db.Queryable<SysMaterials>().First(m => m.IsDel == "0" && m.SkuNo == skuNo);
+ if (skuInfo == null)
+ {
+ throw new Exception("鏈煡璇㈠埌鐗╂枡淇℃伅");
+ }
+ var pall = Db.Queryable<SysPallets>().First(m => m.IsDel == "0" && m.PalletNo == palletNo);
+ if (pall == null)
+ {
+ throw new Exception("鏈煡璇㈠埌褰撳墠鎵樼洏淇℃伅");
+ }
+ #endregion
+
+ //寮�鍚簨鍔�
+ Db.BeginTran();
+ //褰撳墠鏃堕棿
+ var comTime = DateTime.Now;
+
+ #region 鍖呰
+
+ var pack = Db.Queryable<SysPackag>().First(m => m.IsDel == "0" && m.PackagNo == skuInfo.PackagNo);
+
+ var pNum = 0;//鎵樼洏鐗╁搧鏁伴噺
+ var bNum = 0;//绠辩爜鐗╁搧鏁伴噺
+
+ //鍏叡鏂规硶鑾峰彇鍖呰鏁伴噺
+ new Common().GetPackQtyInfo(pack.PackagNo, ref pNum, ref bNum);
+
+ #endregion
+
+
+
+ #region 搴撳瓨鏄庣粏
+
+ var area = Db.Queryable<SysStorageArea>().First(m => m.IsDel == "0" && m.AreaNo == areaNo);
+ if (area == null)
+ {
+ throw new Exception("鍏ュ簱鍖哄煙涓嶈兘涓虹┖");
+ }
+
+ var tags = "0";
+
+ // 鍒ゆ柇搴撳瓨鏄庣粏鏄惁宸叉湁姝ゆ墭鐩樹俊鎭�
+ var sd1 = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.SkuNo == skuNo && m.LotNo == lotNo && m.PalletNo == palletNo);
+ var sdId1 = 0;
+ if (sd1 != null)
+ {
+ if (sd1.AreaNo != areaNo)
+ {
+ throw new Exception("閫夋嫨鐨勫尯鍩熶笌搴撳瓨涓嶅悓");
+ }
+ sdId1 = sd1.Id;
+ // 搴撳瓨宸插瓨鍦� 鏇存柊鏁版嵁
+ sd1.Qty += qty;
+ sd1.CompleteTime = comTime;
+ sd1.UpdateUser = userId;
+ sd1.UpdateTime = comTime;
+ if (sd1.Qty >= pNum)
+ {
+ sd1.BitPalletMark = "0";
+ }
+ Db.Updateable(sd1).ExecuteCommand();
+ }
+ else
+ {
+ // 搴撳瓨涓嶅瓨鍦� 鎻掑叆鏁版嵁
+ sd1 = new DataStockDetail()
+ {
+ LotNo = lotNo,
+ SupplierLot = "",
+ SkuNo = skuInfo.SkuNo,
+ SkuName = skuInfo.SkuName,
+ Standard = skuInfo.Standard,
+ Qty = qty,
+ LockQty = 0,
+ FrozenQty = 0,
+ InspectQty = 0,
+ WareHouseNo = area.WareHouseNo,//鎵�灞炰粨搴�
+ RoadwayNo = "",//鎵�灞炲贩閬�
+ AreaNo = area.AreaNo,//鎵�灞炲尯鍩�
+ LocatNo = "",//鍌ㄤ綅鍦板潃
+ PalletNo = palletNo,
+ PalletTags = tags,
+ CompleteTime = comTime,
+ //ProductionTime = boxInfoOne.ProductionTime,
+ //ExpirationTime = boxInfoOne.ExpirationTime,
+ Status = "0",
+ InspectMark = "0",
+ InspectStatus = "1",
+ BitPalletMark = qty >= pNum ?"0" :"1",
+ PackagNo = skuInfo.PackagNo,
+
+ IsDel = "0",
+ CreateUser = 0,
+ CreateTime = comTime
+ };
+
+ //娣诲姞搴撳瓨鏄庣粏
+ sdId1 = Db.Insertable(sd1).ExecuteReturnIdentity();
+ }
+ #endregion
+
+ // 鏇存敼绠辨敮鍏崇郴琛�
+ decimal factQty = 0.00m;//鎵樼洏鎬绘暟閲�
+
+
+ #region 搴撳瓨
+ var dataStock = Db.Queryable<DataStock>().First(m => m.IsDel == "0" && m.SkuNo == skuInfo.SkuNo && m.LotNo == lotNo);
+ if (dataStock != null)
+ {
+ dataStock.Qty += factQty;
+ Db.Updateable(dataStock).ExecuteCommand();
+ }
+ else
+ {
+ var stock = new DataStock()
+ {
+ SkuNo = skuInfo.SkuNo,
+ SkuName = skuInfo.SkuName,
+ Standard = skuInfo.Standard,
+ LotNo = lotNo,
+ LotText = "",
+ Qty = qty,
+ LockQty = 0,
+ FrozenQty = 0,
+ IsSampling = "0",
+ IsDel = "0",
+ CreateUser = userId,
+ CreateTime = comTime
+ };
+ Db.Insertable(stock).ExecuteCommand();
+ }
+ #endregion
+
+ // 鏇存敼鎵樼洏浣跨敤鐘舵��
+ var sqlStr = $"update SysPallets set Status = '1' where PalletNo = '{palletNo}';";
+ ////娣诲姞鎵樼洏璁板綍琛ㄦ暟鎹�
+ //sqlStr += $"insert into LogPalletTrack values('{palletNo}','{boxNo}','缁勭洏','0',getDate(),{userId},NULL,NULL);";
+ Db.Ado.ExecuteCommand(sqlStr);
+ new OperationASNServer().AddLogOperationAsn("PDA妯″潡", "杞﹂棿鍏ュ簱", skuNo, "娣诲姞", $"娣诲姞浜嗘墭鐩樼爜涓猴細{palletNo}鐨勫叆搴撲俊鎭�", userId);
+
+ //鎻愪氦浜嬪姟
+ Db.CommitTran();
+
+ }
+ catch (Exception e)
+ {
+ Db.RollbackTran();
+ throw new Exception(e.Message);
+ }
+
+ }
+
#endregion
-
-
-
-
-
-
-
// 鑾峰彇鍗曟嵁鍒楄〃
public List<ArrivalNoticeDto> GetArrivalNotices(ArrivalNoticeVm model)
{
@@ -2106,11 +2908,6 @@
throw ex;
}
}
-
-
-
-
-
// 鏍规嵁绠辩爜鎴栨墭鐩樺彿鑾峰彇绠辨敮淇℃伅 liudl
public List<BoxInfoDto> GetBoxInfos(BoxInfoVm model)
@@ -5606,16 +6403,7 @@
//淇敼搴撳瓨鏄庣粏淇℃伅
Db.Updateable(item).ExecuteCommand();
}
- //鑾峰彇鎷h揣淇℃伅
- var alotr = Db.Queryable<BllExportAllot>().First(a => a.IsDel == "0" && a.PalletNo == model.PalletNo && a.Status == "4");
- if (alotr != null)
- {
- alotr.Status = "5"; //5 宸插畬鎴�
- alotr.UpdateUser = model.CreateUser; //淇敼浜�
- alotr.UpdateTime = serverTime; //淇敼鏃堕棿
- //淇敼鎷h揣淇℃伅
- Db.Updateable(alotr).ExecuteCommand();
- }
+
#region 浠诲姟鍙婄粍鎵樹俊鎭�
//鍒涘缓浠诲姟淇℃伅
var taskNo = new Common().GetMaxNo("TK");
@@ -5660,15 +6448,15 @@
var upShelf = new BllPalletUpShelf()
{
TaskNo = exTask.TaskNo,
- TraceNo = bindInfo.ASNNo,
- PalletNo = bindInfo.PalletNo,
+ TraceNo = bindInfo== null? "": bindInfo.ASNNo,
+ PalletNo = model.PalletNo,
SkuNo = palletupinfo.SkuNo,
SkuName = palletupinfo.SkuName,
LotNo = palletupinfo.LotNo,
Status = "2",
LocatNo = model.LocatNo,
- WareHouseNo = bindInfo.WareHouseNo,
- RoadwayNo = bindInfo.RoadwayNo,
+ WareHouseNo = storageLocat.WareHouseNo,
+ RoadwayNo = storageLocat.RoadwayNo,
AreaNo = storageLocat.AreaNo,
CreateUser = 0,
@@ -6018,5 +6806,359 @@
#endregion
+ #region 绾胯竟鏍囩
+ /// <summary>
+ /// 鏍规嵁鐗╂枡缂栫爜銆佸悕绉拌幏鍙栫墿鏂欎俊鎭�
+ /// </summary>
+ /// <param name="model">缂栫爜 鍚嶇О</param>
+ /// <returns>鐗╂枡璇︾粏淇℃伅</returns>
+ public MaterialsDto GetSkuInfo(GetMaterialsVm model)
+ {
+ try
+ {
+ if (string.IsNullOrEmpty(model.SkuNo) && string.IsNullOrEmpty(model.SkuName))
+ {
+ throw new Exception("璇疯緭鍏ョ墿鏂欑紪鐮佹垨鐗╂枡鍚嶇О!");
+ }
+
+ var skuModels = Db.Queryable<SysMaterials>().Where(m => (m.SkuNo == model.SkuNo || m.SkuName == model.SkuName) && m.IsDel == "0").Select< MaterialsDto>().ToList();
+ if (skuModels.Count <= 0)
+ {
+ throw new Exception("鐗╂枡涓嶅瓨鍦紒");
+ }
+
+ return skuModels.First();
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+ }
+
+ /// <summary>
+ /// 鐢熸垚鏉$爜鏍囩
+ /// </summary>
+ /// <param name="model"></param>
+ /// <returns></returns>
+ /// <exception cref="Exception"></exception>
+ public List<BllBoxInfo> AddLabels(LabelsVm model)
+ {
+ try
+ {
+ if (decimal.TryParse(model.SkuNum, out decimal skuQty))
+ {
+ if (skuQty <= 0)
+ {
+ throw new Exception("绠卞唴鏁伴噺涓嶈兘灏忎簬绛変簬0");
+ }
+ }
+ else
+ {
+ throw new Exception("绠卞唴鏁伴噺璇疯緭鍏ユ暟瀛楋紒");
+ }
+
+ // 楠岃瘉鐗╂枡淇℃伅鏄惁瀛樺湪
+ var skuModels = Db.Queryable<SysMaterials>().Where(m => (m.SkuNo == model.SkuNo || m.SkuName == model.SkuName) && m.IsDel == "0").Select<MaterialsDto>().ToList();
+ if (skuModels.Count <= 0)
+ {
+ throw new Exception("鐗╂枡涓嶅瓨鍦紒");
+ }
+
+
+ #region
+ var skuModel = skuModels.First();
+ var pack = Db.Queryable<SysPackag>().First(m => m.IsDel == "0" && m.PackagNo == skuModel.PackagNo);
+ if (pack == null)
+ {
+ throw new Exception("鏈煡璇㈠埌褰撳墠鐗╂枡鐨勫寘瑁呬俊鎭�");
+ }
+
+ var packStr = "";
+ if (!string.IsNullOrWhiteSpace(pack.L1Name))
+ {
+ packStr += pack.L1Num + "/" + pack.L1Name;
+ }
+ if (!string.IsNullOrWhiteSpace(pack.L2Name))
+ {
+ packStr += "-" + pack.L2Num + "/" + pack.L2Name;
+ }
+ if (!string.IsNullOrWhiteSpace(pack.L3Name))
+ {
+ packStr += "-" + pack.L3Num + "/" + pack.L3Name;
+ }
+ if (!string.IsNullOrWhiteSpace(pack.L4Name))
+ {
+ packStr += "-" + pack.L4Num + "/" + pack.L4Name;
+ }
+ if (!string.IsNullOrWhiteSpace(pack.L5Name))
+ {
+ packStr += "-" + pack.L5Num + "/" + pack.L5Name;
+ }
+ #endregion
+
+ #region 鍖呰鏌ヨ
+
+ var bNum = 0;//绠辩墿鍝佹暟閲�
+ var zNum = 0;//鏀墿鍝佹暟閲�
+ var packLevel = 0;
+
+ if (pack.L2Num.HasValue)
+ {
+ if (pack.L2Name != "鎵�")
+ {
+ packLevel = 1;//JC34椤圭洰鍙湁涓�绾ф爣绛�
+ bNum = Convert.ToInt32(pack.L2Num);
+ }
+ }
+ if (pack.L1Num.HasValue)
+ {
+ if (packLevel == 0)
+ {
+ packLevel = 1;
+ bNum = Convert.ToInt32(pack.L1Num);
+ }
+ zNum = Convert.ToInt32(pack.L1Num);
+ }
+
+ if (packLevel < 1)//鍖呰绛夌骇灏忎簬1锛屾寜鐓�1绾ф爣绛炬墦鍗�
+ {
+ throw new Exception("鍖呰淇℃伅鏈夎锛屽皬浜庝竴绾�");
+ }
+
+ if (skuQty > bNum * 5)
+ {
+ throw new Exception("绠卞唴鏁伴噺澶т簬鍖呰5鍊嶏紝涓嶅彲鎵撳嵃");
+ }
+ #endregion
+ var modelList = new List<BllBoxInfo>();
+ var label = Db.Queryable<BllBoxInfo>().Where(m => m.LotNo == model.LotNo && m.SkuNo == model.SkuNo && m.IsDel == "0").ToList();
+
+ Db.BeginTran();
+ if (packLevel == 1)
+ {
+ #region 涓�绾у寘瑁�
+ int labelNum = 1;
+ labelNum = int.Parse(Math.Ceiling(skuQty / bNum).ToString());//鏍囩鏁伴噺
+
+
+ #region 鑾峰彇/鐢熸垚鎵规鍙�
+ string maxLotNoStr = ""; //鎵规鍙�
+ string maxBoxCode = ""; //绠辩爜鍙�
+
+ maxLotNoStr = model.LotNo;
+ maxBoxCode = label.Where(m => m.LotNo == maxLotNoStr).Max(a => a.BoxNo);
+ #endregion
+
+ for (int i = 1; i <= labelNum; i++)
+ {
+ decimal boxQty = 0;
+ if (i == labelNum)
+ {
+ // 鏈�鍚庝竴涓潯鐮�
+ var s = bNum * (i - 1);
+ if (bNum > skuQty - s)
+ {
+ boxQty = skuQty - s;// 鏁伴噺
+ }
+ else
+ {
+ boxQty = bNum;// 鏁伴噺
+ }
+ }
+ else
+ {
+ boxQty = bNum; // 鏁伴噺
+ }
+
+ //鑾峰彇绠辩爜
+ if (string.IsNullOrWhiteSpace(maxBoxCode))
+ {
+ var str = "B" + maxLotNoStr + "000001"; //鎵瑰彿+ 娴佹按 B 230201 0001 000001
+ maxBoxCode = str;
+ }
+ else
+ {
+ maxBoxCode = maxBoxCode.Substring(0, maxBoxCode.Length - 6) + (int.Parse(maxBoxCode.Substring(maxBoxCode.Length - 6, 6)) + 1).ToString().PadLeft(6, '0');
+ }
+
+ // 灏嗘潯鐮佷繚瀛樺埌鍘熸枡鏉$爜琛�
+ var labelModel = new BllBoxInfo()
+ {
+ BoxNo = maxBoxCode,
+ Qty = boxQty,
+ FullQty = bNum,
+ Status = "0",
+ SkuNo = model.SkuNo,
+ SkuName = model.SkuName,
+ LotNo = maxLotNoStr,
+ Standard = skuModel.Standard,
+ PackageStandard = packStr,
+ InspectMark = "0",
+ BitBoxMark = bNum > boxQty ? "1" : "0",
+ InspectStatus = "0",
+
+ ProductionTime = DateTime.Parse(model.TimeFrom),
+ StoreTime = DateTime.Parse(model.TimeEnd),
+ ExpirationTime = DateTime.Parse(model.TimeEnd),
+
+ Origin = "WMS鐢熸垚",
+ CreateUser = (int)model.userId,
+ CreateTime = DateTime.Now,
+ };
+
+ Db.Insertable(labelModel).ExecuteCommand();
+ modelList.Add(labelModel);
+ }
+
+ #endregion
+ }
+ else //(packLevel == 2)
+ {
+ #region 浜岀骇鍖呰
+
+ if (skuQty > bNum * 5)
+ {
+ throw new Exception("绠卞唴鏁伴噺澶т簬鍖呰5鍊嶏紝涓嶅彲鎵撳嵃");
+ }
+
+ var qty2 = skuQty;
+ int labelNum2 = 1; //鐢熶骇绠辨潯鐮佹暟閲�
+
+ labelNum2 = int.Parse(Math.Ceiling(qty2 / bNum).ToString());
+
+ var ss = bNum / zNum; //姣忕鏀爣绛炬暟閲�
+ var labelNumZ2 = Math.Ceiling((decimal)ss);
+
+ #region 鑾峰彇/鐢熸垚鎵规鍙�
+
+ string maxCodestr2 = ""; //鎵规
+ string maxboxcode2 = ""; //绠辩爜
+ string maxboxcode3 = ""; //鏀爜
+
+ maxCodestr2 = model.LotNo;
+ maxboxcode2 = label.Where(m => m.LotNo == maxCodestr2).Max(a => a.BoxNo);
+ maxboxcode3 = label.Where(m => m.LotNo == maxCodestr2).Max(a => a.BoxNo3);//鏀彿
+ #endregion
+
+ for (int i = 1; i <= labelNum2; i++)//绠辩爜鏍囩
+ {
+ //绠卞唴鏁伴噺
+ decimal boxQty = 0;
+ if (i == labelNum2)
+ {
+ // 鏈�鍚庝竴涓潯鐮�
+ var s = bNum * (i - 1);
+ if (bNum > qty2 - s)
+ {
+ boxQty = qty2 - s;// 鏁伴噺
+ }
+ else
+ {
+ boxQty = bNum;// 鏁伴噺
+ }
+ }
+ else
+ {
+ boxQty = bNum; // 鏁伴噺
+ }
+
+ //鑾峰彇绠辩爜
+ if (string.IsNullOrWhiteSpace(maxboxcode2))
+ {
+ maxboxcode2 = "B" + maxCodestr2 + "000001"; // 绠卞彿 鎵瑰彿+绗嚑绠�
+ }
+ else
+ {
+ maxboxcode2 = maxboxcode2.Substring(0, 11) + (int.Parse(maxboxcode2.Substring(11, 6)) + 1).ToString().PadLeft(6, '0');
+ }
+ //鑾峰彇绠卞唴鏀爣绛炬暟閲�
+ if (i == labelNum2)
+ {
+ var isGo2 = false;
+ var sl = 0;
+ for (int j = 1; j <= labelNumZ2; j++)
+ {
+ if (isGo2)
+ {
+ break;
+ }
+ var s = bNum * (i - 1);
+ var s2 = zNum * (j - 1);
+ if (zNum >= qty2 - s - s2)
+ {
+ isGo2 = true;
+ }
+ sl++;
+ }
+ labelNumZ2 = sl;
+ }
+
+ for (int j = 1; j <= labelNumZ2; j++)//鏈�灏忓崟浣嶆爣绛�
+ {
+
+ decimal d = zNum;
+ if (i == labelNum2)
+ {
+ var s = bNum * (i - 1);
+ var s2 = zNum * (j - 1);
+ if (zNum >= qty2 - s - s2)
+ {
+ d = qty2 - s - s2; // 鏁伴噺
+ }
+ }
+
+ if (string.IsNullOrWhiteSpace(maxboxcode3))
+ {
+ maxboxcode3 = "Z" + maxCodestr2 + "0001"; // 鏀彿 鎵瑰彿+绗嚑绠�
+ }
+ else
+ {
+ maxboxcode3 = maxboxcode3.Substring(0, 11) + (int.Parse(maxboxcode3.Substring(11, 4)) + 1).ToString().PadLeft(4, '0');
+ }
+
+ // 灏嗘潯鐮佷繚瀛樺埌鍘熸枡鏉$爜琛�
+ var labelModel = new BllBoxInfo()
+ {
+ BoxNo = maxboxcode2,
+ BoxNo3 = maxboxcode3,
+ Qty = d,
+ FullQty = bNum,
+ Status = "0",
+ SkuNo = model.SkuNo,
+ SkuName = skuModel.SkuName,
+ LotNo = maxCodestr2,
+ Standard = skuModel.Standard,
+ PackageStandard = packStr,
+ InspectMark = "0",
+ BitBoxMark = bNum > boxQty ? "1" : "0",
+ InspectStatus = "0",
+
+ ProductionTime = DateTime.Parse(model.TimeFrom),
+ StoreTime = DateTime.Parse(model.TimeEnd),
+ ExpirationTime = DateTime.Parse(model.TimeEnd),
+
+ Origin = "WMS鐢熸垚",
+ CreateUser = (int)model.userId,
+ CreateTime = DateTime.Now,
+ };
+
+ Db.Insertable(labelModel).ExecuteCommand();
+ modelList.Add(labelModel);
+ }
+ }
+ #endregion
+ }
+ Db.CommitTran();
+
+ return modelList;
+ }
+ catch (Exception ex)
+ {
+ Db.RollbackTran();
+ throw new Exception(ex.Message);
+ }
+ }
+ #endregion
+
}
}
--
Gitblit v1.8.0