From b2d25faa69ee7e9f24b6ac98d3b4dcbddada70bc Mon Sep 17 00:00:00 2001
From: yuyou_x <2336760928@qq.com>
Date: 星期四, 14 三月 2024 13:37:15 +0800
Subject: [PATCH] 修改pda托盘绑定同一物料多批次 无法具体选中批次问题。
---
Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs | 1333 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 1,332 insertions(+), 1 deletions(-)
diff --git a/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs b/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs
index bf8c471..a78bdc4 100644
--- a/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs
+++ b/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs
@@ -4,7 +4,11 @@
using SqlSugar;
using System;
using System.Collections.Generic;
+using System.Linq;
using System.Linq.Expressions;
+using Model.ModelDto.BllAsnDto;
+using Model.ModelVm.BllAsnVm;
+using Utility.Tools;
using WMS.BLL.LogServer;
using WMS.DAL;
using WMS.Entity.BllAsnEntity;
@@ -260,7 +264,7 @@
.AndIF(!string.IsNullOrWhiteSpace(model.ProductionTime), it => it.ProductionTime >= Convert.ToDateTime(model.ProductionTime))
.AndIF(!string.IsNullOrWhiteSpace(model.InspectMark), it => it.InspectMark == model.InspectMark.Trim())
.AndIF(!string.IsNullOrWhiteSpace(model.BitBoxMark), it => it.BitBoxMark == model.BitBoxMark.Trim())
- .AndIF(!string.IsNullOrWhiteSpace(model.Origin), it => it.Origin == model.Origin.Trim())
+ .AndIF(!string.IsNullOrWhiteSpace(model.Origin), it => model.Origin.Trim().Contains(it.Origin))
.And(m => m.SkuNo != "100099" && m.IsDel == "0" && m.Status == "0")
.ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏�
var total = 0;
@@ -395,5 +399,1332 @@
}
}
+
+
+ //鑾峰彇鏍囩绠辩爜淇℃伅
+ public List<BoxInfoDto> GetLabelBoxList(LabelBoxInfoVm model, out int count)
+ {
+ try
+ {
+ Expression<Func<BllBoxInfo, bool>> item = Expressionable.Create<BllBoxInfo>()
+ .AndIF(!string.IsNullOrWhiteSpace(model.AsnNo), it => it.ASNNo.Contains(model.AsnNo.Trim()))
+ .AndIF(!string.IsNullOrWhiteSpace(model.BoxNo), it => it.BoxNo.Contains(model.BoxNo.Trim()))
+ .AndIF(!string.IsNullOrWhiteSpace(model.SkuNo), it => it.SkuNo.Contains(model.SkuNo.Trim()))
+ .AndIF(!string.IsNullOrWhiteSpace(model.LotNo), it => it.LotNo.Contains(model.LotNo.Trim()))
+ .AndIF(!string.IsNullOrWhiteSpace(model.SupplierLot), it => it.SupplierLot.Contains(model.SupplierLot.Trim()))
+ .AndIF(!string.IsNullOrWhiteSpace(model.Status), it => it.Status == model.Status)
+ .AndIF(!string.IsNullOrWhiteSpace(model.ProductionTime), it => it.ProductionTime >= Convert.ToDateTime(model.ProductionTime))
+ .AndIF(!string.IsNullOrWhiteSpace(model.ProductionTime), it => it.ProductionTime <= Convert.ToDateTime(model.ProductionTime).AddDays(1))
+ .And(it => it.IsDel == "0" && it.Origin == "WMS鐢熸垚")
+ .ToExpression();
+
+ var total = 0;
+ var data = GetAllWhereAsync(item)
+ .LeftJoin<SysUserInfor>((a, b) => a.CreateUser == b.Id)
+ .LeftJoin<SysUserInfor>((a, b, c) => a.UpdateUser == c.Id)
+ .Select((a, b, c) => new BoxInfoDto()
+ {
+ Id = a.Id,
+ ASNNo = a.ASNNo,
+ ASNDetailNo = a.ASNDetailNo,
+ BoxNo = a.BoxNo,
+ BoxNo2 = a.BoxNo2,
+ BoxNo3 = a.BoxNo3,
+ Qty = a.Qty,
+ FullQty = a.FullQty,
+
+ SkuNo = a.SkuNo,
+ SkuName = a.SkuName,
+ Standard = a.Standard,
+ PackageStandard = a.PackageStandard,
+
+ LotNo = a.LotNo,
+ LotText = a.LotText,
+
+ Status = a.Status,
+ SupplierLot = a.SupplierLot,
+
+ ProductionTime = a.ProductionTime,
+ ExpirationTime = a.ExpirationTime,
+ StoreTime = a.StoreTime,
+ CompleteTime = a.CompleteTime,
+
+ InspectMark = a.InspectMark,
+ BitBoxMark = a.BitBoxMark,
+ InspectStatus = a.InspectStatus,
+
+ Origin = a.Origin,
+ QtyCount = a.QtyCount,
+ QtyOrd = a.QtyOrd,
+
+
+ CreateUserName = b.RealName,
+ UpdateUserName = c.RealName,
+ CreateTime = a.CreateTime,
+ UpdateTime = a.UpdateTime
+
+ }).OrderByDescending(a => a.CreateTime).OrderBy(a => a.BoxNo).ToOffsetPage(model.Page, model.Limit, ref total);
+ count = total;
+ return data;
+ }
+ catch (Exception e)
+ {
+ throw new Exception(e.Message);
+ }
+ }
+
+ //鑾峰彇鏍囩妯℃澘鏍规嵁鍏ュ簱鍗曟槑缁咺D
+ public BoxInfoDto GetLabelBoxModel(int id)
+ {
+ try
+ {
+ var asnDetail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.Id == id && m.IsDel == "0");
+ if (asnDetail == null)
+ {
+ throw new Exception("鏈煡璇㈠埌鍗曟嵁鏄庣粏淇℃伅锛岃鏍稿疄");
+ }
+
+ var packInfo = Db.Queryable<SysPackag>().First(m => m.IsDel == "0" && m.PackagNo == asnDetail.PackagNo);
+ if (packInfo == null)
+ {
+ throw new Exception("鏈煡璇㈠埌鍗曟嵁鏄庣粏涓殑鐗╂枡鍖呰淇℃伅");
+ }
+
+ var str = "";
+
+ if (!string.IsNullOrWhiteSpace(packInfo.L1Name))
+ {
+ str += packInfo.L1Num + "/" + packInfo.L1Name;
+ }
+ if (!string.IsNullOrWhiteSpace(packInfo.L2Name))
+ {
+ str += "-" + packInfo.L2Num + "/" + packInfo.L2Name;
+ }
+ if (!string.IsNullOrWhiteSpace(packInfo.L3Name))
+ {
+ str += "-" + packInfo.L3Num + "/" + packInfo.L3Name;
+ }
+ if (!string.IsNullOrWhiteSpace(packInfo.L4Name))
+ {
+ str += "-" + packInfo.L4Num + "/" + packInfo.L4Name;
+ }
+ if (!string.IsNullOrWhiteSpace(packInfo.L5Name))
+ {
+ str += "-" + packInfo.L5Num + "/" + packInfo.L5Name;
+ }
+
+
+ var data = new BoxInfoDto();
+ data.SkuNo = asnDetail.SkuNo;
+ data.SkuName = asnDetail.SkuName;
+ data.Standard = asnDetail.Standard;
+ data.SupplierLot = asnDetail.SupplierLot;
+ data.PackageStandard = str;
+ return data;
+ }
+ catch (Exception e)
+ {
+ throw new Exception(e.Message);
+ }
+ }
+
+ //鑾峰彇鏍囩淇℃伅(鐢熸垚鏍囩)
+ public List<BllBoxInfo> AddLabelBox(int imId, string isReset, decimal arriveQty, string productionTime, string expirationTime, string storeTime, int userId)
+ {
+ try
+ {
+
+ #region 鍗曟嵁銆佺墿鏂欍�佸寘瑁呫�佹爣绛句俊鎭幏鍙�
+
+ var asnList = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.Id == imId && m.IsDel == "0");
+ if (asnList == null)
+ {
+ throw new Exception("鏈煡璇㈠埌鍗曟嵁鏄庣粏淇℃伅");
+ }
+ var asn = Db.Queryable<BllArrivalNotice>().First(m => m.ASNNo == asnList.ASNNo && m.IsDel == "0");
+ if (asn == null)
+ {
+ throw new Exception("鏈煡璇㈠埌鍗曟嵁淇℃伅");
+ }
+
+ var pack = Db.Queryable<SysPackag>().First(m => m.IsDel == "0" && m.PackagNo == asnList.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;
+ }
+ //鏍囩琛�
+ var label = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.Origin == "WMS鐢熸垚").ToList();
+
+
+ #endregion
+
+ #region 鍖呰鏌ヨ
+
+ var bNum = 0;//绠辩墿鍝佹暟閲�
+ var zNum = 0;//鏀墿鍝佹暟閲�
+ var packLevel = 0;
+
+ if (pack.L2Num.HasValue)
+ {
+ if (pack.L2Name != "鎵�")
+ {
+ packLevel = 2;
+ 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("鍖呰淇℃伅鏈夎锛屽皬浜庝竴绾�");
+ }
+
+ #endregion
+ var modelList = new List<BllBoxInfo>();
+
+ var addLotNo = "";
+ if (arriveQty <= 0)
+ {
+ throw new Exception("鍒拌揣鏁伴噺涓嶈兘灏忎簬绛変簬0!");
+ }
+ Db.BeginTran();
+ if (packLevel == 1)
+ {
+ #region 涓�绾у寘瑁�
+
+ // 鏍规嵁鐢ㄦ埛杈撳叆鐨勭鏁伴噺璁$畻闇�瑕佺殑鏉$爜鏁�
+ //var labQty = label.Sum(m => m.Qty);
+ //var qty = asnList.Qty - labQty;//褰撳墠鍗曟嵁鍓╀綑闇�瑕佹墦鍗扮殑鐗╂枡鏁伴噺(涓嶆槸鏍囩鏁伴噺)
+ //if (qty <= 0)
+ //{
+ // throw new Exception("褰撳墠鍗曟嵁鐗╂枡鏍囩宸叉墦鍗板畬姣曪紝濡傛湁闇�瑕佽琛ユ墦");
+ //}
+
+ #region 鍒拌揣鏁伴噺
+
+ //if (arriveQty - qty > 0)
+ //{
+ // throw new Exception("鍒拌揣鏁伴噺澶т簬鏈墦鏍囩鏁伴噺锛岃閲嶆柊杈撳叆鍒拌揣鏁伴噺骞舵牳瀹�!");
+ //}
+ //else
+ //{
+ // qty = arriveQty;
+ //}
+
+ var qty = arriveQty;
+ #endregion
+
+ int labelNum = 1; //鐢熶骇鏉$爜鏁伴噺
+ if (zNum > 0)
+ {
+ labelNum = int.Parse(Math.Ceiling(qty / zNum).ToString());//鏍囩鏁伴噺
+ }
+ else
+ {
+ throw new Exception("褰撳墠鍗曟嵁鐗╂枡鏄竴绾у寘瑁咃紝鏈煡璇㈠埌涓�绾у寘瑁呬俊鎭�");
+ }
+
+ #region 鑾峰彇/鐢熸垚鎵规鍙�
+
+ string maxLotNoStr = ""; //鎵规鍙�
+ string maxBoxCode = ""; //绠辩爜鍙�
+ // 鐢熸垚鑷紪鎵瑰彿
+ string toDayTime = DateTime.Now.ToString("yyyyMMdd");
+
+ if (isReset == "0")
+ {
+ //鍒ゆ柇鍗曟嵁鏄惁鏄綑鏂欓��鍥炲崟
+ if (asn.Type == "4")
+ {
+ maxLotNoStr = asnList.LotNo;
+ maxBoxCode = label.Where(m=>m.LotNo == maxLotNoStr).Max(a => a.BoxNo);
+ if (string.IsNullOrWhiteSpace(maxLotNoStr))
+ {
+ throw new Exception("杞﹂棿浣欐枡閫�鍥炲崟鎹壒娆′笉鑳戒负绌�");
+ }
+ }
+ else
+ {
+ var labelCount = label.Where(m => m.ASNDetailNo == imId).ToList();
+ if (labelCount.Count <= 0)
+ {
+ throw new Exception("褰撳墠鍗曟嵁鏄庣粏杩樻湭鐢熸垚鏍囩锛岃閫夋嫨閲嶇疆鎵规閫夐」涓衡�樻槸鈥欙紱");
+ }
+ maxLotNoStr = labelCount.Max(a => a.LotNo);
+
+ if (string.IsNullOrWhiteSpace(maxLotNoStr))
+ {
+ maxLotNoStr = toDayTime.Substring(2, 6) + "0001";
+ }
+ maxBoxCode = label.Where(m => m.LotNo == maxLotNoStr).Max(a => a.BoxNo);
+ }
+
+ }
+ else
+ {
+ var maxCode = Db.Queryable<BllBoxInfo>().Where(m=>m.Origin == "WMS鐢熸垚").Max(a => a.LotNo); // 鑾峰彇浠婂ぉ鏈�澶ф壒娆″彿
+ if (string.IsNullOrWhiteSpace(maxCode))
+ {
+ maxLotNoStr = toDayTime.Substring(2, 6) + "0001";
+ }
+ else
+ {
+ var lotStr = maxCode.Substring(0, 6);
+ var timeStr = toDayTime.Substring(2, 6);
+ if (lotStr == timeStr)
+ {
+ maxLotNoStr = toDayTime.Substring(2, 6) + (int.Parse(maxCode.Substring(6, 4)) + 1).ToString().PadLeft(4, '0');
+ }
+ else
+ {
+ maxLotNoStr = timeStr + "0001";
+ }
+
+ }
+ }
+
+ addLotNo = maxLotNoStr;
+ #endregion
+
+
+
+ for (int i = 1; i <= labelNum; i++)
+ {
+ decimal boxQty = 0;
+ if (i == labelNum)
+ {
+ // 鏈�鍚庝竴涓潯鐮�
+ var s = zNum * (i - 1);
+ if (zNum > qty - s)
+ {
+ boxQty = qty - s;// 鏁伴噺
+ }
+ else
+ {
+ boxQty = zNum;// 鏁伴噺
+ }
+ }
+ else
+ {
+ boxQty = zNum; // 鏁伴噺
+ }
+
+ //鑾峰彇绠辩爜
+ if (string.IsNullOrWhiteSpace(maxBoxCode))
+ {
+ var str = "B"+maxLotNoStr + "000001"; //鎵瑰彿+ 娴佹按 2302010001000001
+ maxBoxCode = str;
+ }
+ else
+ {
+ maxBoxCode = maxBoxCode.Substring(0, 11) + (int.Parse(maxBoxCode.Substring(11, 6)) + 1).ToString().PadLeft(6, '0');
+ }
+
+ // 灏嗘潯鐮佷繚瀛樺埌鍘熸枡鏉$爜琛�
+ var labelModel = new BllBoxInfo()
+ {
+ ASNNo = asnList.ASNNo,
+ ASNDetailNo = asnList.Id,
+ BoxNo = maxBoxCode,
+ Qty = int.Parse(boxQty.ToString()),
+ FullQty = bNum,
+ Status = "0",
+ SkuNo = asnList.SkuNo,
+ SkuName = asnList.SkuName,
+ LotNo = maxLotNoStr,
+ Standard = asnList.Standard,
+ PackageStandard = packStr,
+ SupplierLot = asnList.SupplierLot,
+ InspectMark = "0",
+ BitBoxMark = bNum > boxQty ? "1":"0",
+ InspectStatus = "",
+
+ ProductionTime = DateTime.Parse(productionTime),
+ StoreTime = DateTime.Parse(storeTime),
+ ExpirationTime = DateTime.Parse(expirationTime),
+
+ Origin = "WMS鐢熸垚",
+ CreateUser = userId,
+ CreateTime = DateTime.Now,
+ };
+
+ Db.Insertable(labelModel).ExecuteCommand();
+ modelList.Add(labelModel);
+ }
+
+ #endregion
+ }
+ else //(packLevel == 2)
+ {
+ #region 浜岀骇鍖呰
+
+ // 鏍规嵁鐢ㄦ埛杈撳叆鐨勭鏁伴噺璁$畻闇�瑕佺殑鏉$爜鏁�
+ //var labQty = label.Sum(m => m.Qty);
+ //var qty2 = asnList.Qty - labQty;
+ //if (qty2 <= 0)
+ //{
+ // throw new Exception("褰撳墠鍗曟嵁鐗╂枡鏍囩宸叉墦鍗板畬姣曪紝濡傛湁闇�瑕佽琛ユ墦");
+ //}
+
+ #region 澧炲姞鍒拌揣鏁伴噺
+
+ //if (arriveQty - qty2 > 0)
+ //{
+ // throw new Exception("鍒拌揣鏁伴噺澶т簬鏈墦鏍囩鏁伴噺锛岃閲嶆柊杈撳叆鍒拌揣鏁伴噺!");
+ //}
+ //else
+ //{
+ // qty2 = arriveQty;
+ //}
+ #endregion
+
+
+ var qty2 = arriveQty;
+ 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 = ""; //鏀爜
+ // 鐢熸垚鑷紪鎵瑰彿
+ string toDayTime2 = DateTime.Now.ToString("yyyyMMdd");
+ if (isReset == "0")
+ {
+ //鍒ゆ柇鍗曟嵁鏄惁鏄綑鏂欓��鍥炲崟
+ if (asn.Type == "4")
+ {
+ maxCodestr2 = asnList.LotNo;
+ maxboxcode2 = label.Where(m => m.LotNo == maxCodestr2).Max(a => a.BoxNo);
+ maxboxcode3 = label.Where(m => m.LotNo == maxCodestr2).Max(a => a.BoxNo3);//鏀彿
+ if (string.IsNullOrWhiteSpace(maxCodestr2))
+ {
+ throw new Exception("杞﹂棿浣欐枡閫�鍥炲崟鎹壒娆′笉鑳戒负绌�");
+ }
+ }
+ else
+ {
+ var labelCount = label.Where(m => m.ASNDetailNo == imId).ToList();
+ if (labelCount.Count <= 0)
+ {
+ throw new Exception("褰撳墠鍗曟嵁鏄庣粏杩樻湭鐢熸垚鏍囩锛岃閫夋嫨閲嶇疆鎵规閫夐」涓衡�樻槸鈥欙紱");
+ }
+ maxCodestr2 = labelCount.Max(a => a.LotNo); ;
+
+ if (string.IsNullOrWhiteSpace(maxCodestr2))
+ {
+ maxCodestr2 = toDayTime2.Substring(2, 6) + "0001";
+ }
+ maxboxcode2 = label.Where(m => m.LotNo == maxCodestr2).Max(a => a.BoxNo);//绠卞彿;
+ maxboxcode3 = label.Where(m => m.LotNo == maxCodestr2).Max(a => a.BoxNo3);//鏀彿;
+ }
+
+ }
+ else
+ {
+ var maxCode = Db.Queryable<BllBoxInfo>().Where(m => m.Origin == "WMS鐢熸垚").Max(a => a.LotNo); // 鑾峰彇浠婂ぉ鏈�澶ф壒娆″彿
+ if (string.IsNullOrWhiteSpace(maxCode))
+ {
+ maxCodestr2 = toDayTime2.Substring(2, 6) + "0001";
+ }
+ else
+ {
+ var lotStr = maxCode.Substring(0, 6);
+ var timeStr = toDayTime2.Substring(2, 6);
+ if (lotStr == timeStr)
+ {
+ maxCodestr2 = timeStr + (int.Parse(maxCode.Substring(6, 4)) + 1).ToString().PadLeft(4, '0');
+ }
+ else
+ {
+ maxCodestr2 = timeStr + "0001";
+ }
+
+ }
+ }
+
+ addLotNo = maxCodestr2;
+ #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 ssss = d.ToString("0");
+ var sss = int.Parse(ssss);
+
+ // 灏嗘潯鐮佷繚瀛樺埌鍘熸枡鏉$爜琛�
+ var labelModel = new BllBoxInfo()
+ {
+ ASNNo = asnList.ASNNo,
+ ASNDetailNo = asnList.Id,
+ BoxNo = maxboxcode2,
+ BoxNo3 = maxboxcode3,
+ Qty = sss,
+ FullQty = bNum,
+ Status = "0",
+ SkuNo = asnList.SkuNo,
+ SkuName = asnList.SkuName,
+ LotNo = maxCodestr2,
+ Standard = asnList.Standard,
+ PackageStandard = packStr,
+ SupplierLot = asnList.SupplierLot,
+ InspectMark = "0",
+ BitBoxMark = bNum > boxQty ? "1" : "0",
+ InspectStatus = "0",
+
+ ProductionTime = DateTime.Parse(productionTime),
+ StoreTime = DateTime.Parse(storeTime),
+ ExpirationTime = DateTime.Parse(expirationTime),
+
+ Origin = "WMS鐢熸垚",
+ CreateUser = userId,
+ CreateTime = DateTime.Now,
+ };
+
+ Db.Insertable(labelModel).ExecuteCommand();
+ modelList.Add(labelModel);
+ }
+
+
+ }
+
+ #endregion
+ }
+ if (string.IsNullOrWhiteSpace(asnList.LotNo))
+ {
+ asnList.LotNo = addLotNo;
+ Db.Updateable(asnList).ExecuteCommand();
+ }
+ else
+ {
+ if (!asnList.LotNo.Contains(addLotNo))
+ {
+ asnList.LotNo += ";" + addLotNo;
+ Db.Updateable(asnList).ExecuteCommand();
+ }
+ }
+ Db.CommitTran();
+ return modelList;
+
+
+ //throw new NotImplementedException();
+ }
+ catch (Exception e)
+ {
+ Db.RollbackTran();
+ throw new Exception(e.Message);
+ }
+ }
+
+ // 琛ユ墦鏍囩
+ public List<BoxInfoDto> GetBuDaLabelList(string boxNo, string endBoxNo, string boxNo2, string endBoxNo2, string type, int userId)
+ {
+ try
+ {
+ //鎵撳嵃鏁版嵁闆嗗悎
+ var printList = new List<BoxInfoDto>();
+
+ List<BoxInfoDto> printModelList = new List<BoxInfoDto>();
+ //List<WmsLabelPrintLog> printlog = new List<WmsLabelPrintLog>();
+ //鏍囩琛ㄦ暟鎹俊鎭�
+ var list = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.Origin == "WMS鐢熸垚").ToList();
+
+ #region MyRegion
+
+ switch (type)
+ {
+ case "1":
+ if (string.IsNullOrWhiteSpace(endBoxNo))
+ {
+ #region 鍗曚釜绠辩爜鏍囩
+
+ if (string.IsNullOrWhiteSpace(boxNo))
+ {
+ throw new Exception($"璧峰绠辩爜涓嶈兘涓虹┖");
+ }
+ var dataList = list.Where(m => m.BoxNo == boxNo);
+ var data = list.FirstOrDefault(m => m.BoxNo == boxNo);
+ if (data == null)
+ {
+ throw new Exception($"鏈煡璇㈠埌{boxNo}淇℃伅");
+ }
+ // 鐗╂枡鏉$爜淇℃伅璧嬪��
+ BoxInfoDto model = new BoxInfoDto();
+ model.SkuNo = data.SkuNo;
+ model.SkuName = data.SkuName;
+ model.LotNo = data.LotNo; //鎵规
+ model.SupplierLot = data.SupplierLot; // 鍘熷巶鎵瑰彿
+ model.Standard = data.Standard; // 瑙勬牸/鍨嬪彿
+ model.PackageStandard = data.PackageStandard; // 鍖呰瑙勬牸
+
+ model.ExpirationTime = data.ExpirationTime; // 鏈夋晥鏈熻嚦
+ model.StoreTime = data.StoreTime; // 鍌ㄥ瓨鏈熻嚦
+
+ model.Qty = dataList.Sum(m=>m.Qty);// 鏁伴噺
+
+ model.BoxNo = data.BoxNo; // 绠卞彿
+
+ model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo,160, 40,false);
+
+ // 娣诲姞鍒發ist闆嗗悎
+ printModelList.Add(model);
+
+ //娣诲姞鎵撳嵃璁板綍
+ //WmsLabelPrintLog log = new WmsLabelPrintLog();
+ //log.BoxCode = data.LabelStream;
+ //log.CreateTime = DateTime.Now;
+ //log.Demo = Demo;
+ //log.Isdel = 0;
+ //log.CreateUser = userId;
+ //printlog.Add(log);
+ #endregion
+ }
+ else
+ {
+ #region 澶氫釜绠辩爜鏍囩 寮�濮�-缁撴潫
+ if (string.IsNullOrWhiteSpace(boxNo))
+ {
+ throw new Exception("璧峰绠辩爜涓嶈兘涓虹┖");
+ }
+ var sql = $@"select * from BllBoxInfo where IsDel = '0' and Origin = 'WMS鐢熸垚' and BoxNo >='{boxNo}' and BoxNo <= '{endBoxNo}'";
+ var data2 = Db.Ado.SqlQuery<BllBoxInfo>(sql);
+ var data3 = data2.GroupBy(m => m.BoxNo).Select(m => m.Key).OrderBy(m => m).ToList();
+ if (data3.Count == 0)
+ {
+ throw new Exception($"鏈煡璇㈠埌{boxNo}-{endBoxNo}涓俊鎭�");
+ }
+
+ var i = 0;
+ foreach (var item in data3)
+ {
+ var data1 = data2.Where(m => m.BoxNo == item);
+ var data = data2.FirstOrDefault(m => m.BoxNo == item);
+ if (data == null)
+ {
+ throw new Exception($"鏈煡璇㈠埌{item}淇℃伅");
+ }
+ // 鐗╂枡鏉$爜淇℃伅璧嬪��
+ BoxInfoDto model = new BoxInfoDto();
+ model.SkuNo = data.SkuNo;
+ model.SkuName = data.SkuName;
+ model.LotNo = data.LotNo; //鎵规
+ model.SupplierLot = data.SupplierLot; // 鍘熷巶鎵瑰彿
+ model.Standard = data.Standard; // 瑙勬牸/鍨嬪彿
+ model.PackageStandard = data.PackageStandard; // 鍖呰瑙勬牸
+
+ model.ExpirationTime = data.ExpirationTime; // 鏈夋晥鏈熻嚦
+ model.StoreTime = data.StoreTime; // 鍌ㄥ瓨鏈熻嚦
+
+ model.Qty = data1.Sum(m => m.Qty);// 鏁伴噺
+
+ model.BoxNo = data.BoxNo; // 绠卞彿
+
+ model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 160, 40, false);
+
+ // 娣诲姞鍒發ist闆嗗悎
+ printModelList.Add(model);
+ i++;
+ ////娣诲姞鎵撳嵃璁板綍
+ //WmsLabelPrintLog log = new WmsLabelPrintLog();
+ //log.BoxCode = data.LabelStream;
+ //log.CreateTime = DateTime.Now;
+ //log.Demo = Demo;
+ //log.Isdel = 0;
+ //log.CreateUser = userId;
+ //printlog.Add(log);
+ if (i >= 100)
+ {
+ break;
+ }
+ }
+
+ #endregion
+ }
+ break;
+ case "2":
+ if (string.IsNullOrWhiteSpace(endBoxNo2))
+ {
+ #region 鍗曚釜鏀爜鏍囩
+
+ if (string.IsNullOrWhiteSpace(boxNo2))
+ {
+ throw new Exception($"璧峰鏀爜涓嶈兘涓虹┖");
+ }
+ var data = list.FirstOrDefault(m => m.BoxNo3 == boxNo2);
+ if (data == null)
+ {
+ throw new Exception($"鏈煡璇㈠埌{boxNo2}淇℃伅");
+ }
+ // 鐗╂枡鏉$爜淇℃伅璧嬪��
+ BoxInfoDto model = new BoxInfoDto();
+ model.SkuNo = data.SkuNo;
+ model.SkuName = data.SkuName;
+ model.LotNo = data.LotNo; //鎵规
+ model.SupplierLot = data.SupplierLot; // 鍘熷巶鎵瑰彿
+ model.Standard = data.Standard; // 瑙勬牸/鍨嬪彿
+ model.PackageStandard = data.PackageStandard; // 鍖呰瑙勬牸
+
+ model.ExpirationTime = data.ExpirationTime; // 鏈夋晥鏈熻嚦
+ model.StoreTime = data.StoreTime; // 鍌ㄥ瓨鏈熻嚦
+
+ model.Qty = data.Qty;// 鏁伴噺
+
+ model.BoxNo = data.BoxNo3; // 鏀彿
+
+ model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 160, 40, false);
+
+ // 娣诲姞鍒發ist闆嗗悎
+ printModelList.Add(model);
+
+ ////娣诲姞鎵撳嵃璁板綍
+ //WmsLabelPrintLog log = new WmsLabelPrintLog();
+ //log.BoxCode = data.BoxCode1;
+ //log.CreateTime = DateTime.Now;
+ //log.Demo = Demo;
+ //log.Isdel = 0;
+ //log.CreateUser = userId;
+ //printlog.Add(log);
+
+ #endregion
+ }
+ else
+ {
+ #region 澶氫釜鏀爜鏍囩 寮�濮�-缁撴潫
+
+ if (string.IsNullOrWhiteSpace(boxNo2))
+ {
+ throw new Exception("璧峰鏀爜涓嶈兘涓虹┖");
+ }
+
+ var sql = $@"select * from BllBoxInfo where IsDel = '0' and Origin = 'WMS鐢熸垚' and BoxNo3 >='{boxNo2}' and BoxNo3 <= '{endBoxNo2}'";
+ var data2 = Db.Ado.SqlQuery<BllBoxInfo>(sql);
+
+ if (data2.Count == 0)
+ {
+ throw new Exception($"鏈煡璇㈠埌{boxNo2}-{endBoxNo2}涓俊鎭�");
+ }
+
+ var i = 0;
+ foreach (var data in data2)
+ {
+ // 鐗╂枡鏉$爜淇℃伅璧嬪��
+ BoxInfoDto model = new BoxInfoDto();
+ model.SkuNo = data.SkuNo;
+ model.SkuName = data.SkuName;
+ model.LotNo = data.LotNo; //鎵规
+ model.SupplierLot = data.SupplierLot; // 鍘熷巶鎵瑰彿
+ model.Standard = data.Standard; // 瑙勬牸/鍨嬪彿
+ model.PackageStandard = data.PackageStandard; // 鍖呰瑙勬牸
+
+ model.ExpirationTime = data.ExpirationTime; // 鏈夋晥鏈熻嚦
+ model.StoreTime = data.StoreTime; // 鍌ㄥ瓨鏈熻嚦
+
+ model.Qty = data.Qty;// 鏁伴噺
+
+ model.BoxNo = data.BoxNo3; // 绠卞彿
+
+ model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 160, 40, false);
+
+ // 娣诲姞鍒發ist闆嗗悎
+ printModelList.Add(model);
+ i++;
+ ////娣诲姞鎵撳嵃璁板綍
+ //WmsLabelPrintLog log = new WmsLabelPrintLog();
+ //log.BoxCode = data.BoxCode1;
+ //log.CreateTime = DateTime.Now;
+ //log.Demo = Demo;
+ //log.Isdel = 0;
+ //log.CreateUser = userId;
+ //printlog.Add(log);
+ if (i >= 100)
+ {
+ break;
+ }
+ }
+
+ #endregion
+ }
+ break;
+ case "3":
+ if (string.IsNullOrWhiteSpace(endBoxNo))
+ {
+ if (string.IsNullOrWhiteSpace(boxNo))
+ {
+ throw new Exception("璧峰绠辩爜涓嶈兘涓虹┖");
+ }
+ #region 绠辩爜鍜岀鐮佸唴鐨勬敮鐮�
+
+ if (!string.IsNullOrWhiteSpace(boxNo2))
+ {
+ if (string.IsNullOrWhiteSpace(endBoxNo2)) //鍗曚釜鏀爜鍜岀鐮�
+ {
+ #region 鍗曚釜鏀爜鍜岀鐮�
+
+ var dataList = list.Where(m => m.BoxNo == boxNo);
+ var data = list.FirstOrDefault(m => m.BoxNo3 == boxNo2);
+ if (data == null)
+ {
+ throw new Exception($"鏈煡璇㈠埌{boxNo2}淇℃伅");
+ }
+
+ if (data.BoxNo != boxNo)//鍒ゆ柇绠辩爜鏄惁鐩稿悓
+ {
+ throw new Exception($"褰撳墠鏀爜涓嶆槸绠辩爜鍐�");
+ }
+
+
+ // 鐗╂枡鏉$爜淇℃伅璧嬪�� 绠辩爜
+ BoxInfoDto model1 = new BoxInfoDto();
+ model1.SkuNo = data.SkuNo;
+ model1.SkuName = data.SkuName;
+ model1.LotNo = data.LotNo; //鎵规
+ model1.SupplierLot = data.SupplierLot; // 鍘熷巶鎵瑰彿
+ model1.Standard = data.Standard; // 瑙勬牸/鍨嬪彿
+ model1.PackageStandard = data.PackageStandard; // 鍖呰瑙勬牸
+
+ model1.ExpirationTime = data.ExpirationTime; // 鏈夋晥鏈熻嚦
+ model1.StoreTime = data.StoreTime; // 鍌ㄥ瓨鏈熻嚦
+ model1.Qty = dataList.Sum(m=>m.Qty);// 鏁伴噺
+ model1.BoxNo = data.BoxNo; // 绠卞彿
+
+ model1.ImgStr = BarcodeHelper.GetCodeBarBase64(model1.BoxNo, 160, 40, false);
+
+ // 娣诲姞鍒發ist闆嗗悎
+ printModelList.Add(model1);
+
+ // 鐗╂枡鏉$爜淇℃伅璧嬪�� 鏀爜
+ BoxInfoDto model = new BoxInfoDto();
+ model.SkuNo = data.SkuNo;
+ model.SkuName = data.SkuName;
+ model.LotNo = data.LotNo; //鎵规
+ model.SupplierLot = data.SupplierLot; // 鍘熷巶鎵瑰彿
+ model.Standard = data.Standard; // 瑙勬牸/鍨嬪彿
+ model.PackageStandard = data.PackageStandard; // 鍖呰瑙勬牸
+
+ model.ExpirationTime = data.ExpirationTime; // 鏈夋晥鏈熻嚦
+ model.StoreTime = data.StoreTime; // 鍌ㄥ瓨鏈熻嚦
+ model.Qty = data.Qty;// 鏁伴噺
+ model.BoxNo = data.BoxNo3; // 鏀彿
+
+ model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 160, 40, false);
+
+ // 娣诲姞鍒發ist闆嗗悎
+ printModelList.Add(model);
+ ////娣诲姞鎵撳嵃璁板綍
+ //WmsLabelPrintLog log = new WmsLabelPrintLog();
+ //log.BoxCode = data.BoxCode1;
+ //log.CreateTime = DateTime.Now;
+ //log.Demo = Demo;
+ //log.Isdel = 0;
+ //log.CreateUser = userId;
+ //printlog.Add(log);
+ #endregion
+ }
+ else//涓�绠卞唴鏌愬嚑涓敮鐮�
+ {
+ #region 鍗曚釜绠辩爜鍜屽涓敮鐮�
+
+ var sql = $@"select * from BllBoxInfo where IsDel = '0' and Origin = 'WMS鐢熸垚' and BoxNo3 >='{boxNo2}' and BoxNo3 <= '{endBoxNo2}'";
+ var data2 = Db.Ado.SqlQuery<BllBoxInfo>(sql);
+
+ if (data2.Count == 0)
+ {
+ throw new Exception($"鏈煡璇㈠埌{boxNo2}-{endBoxNo2}涓俊鎭�");
+ }
+
+ if (data2.Count(m => m.BoxNo != boxNo) > 0)
+ {
+ throw new Exception($"{boxNo2}-{endBoxNo2}涓俊鎭湁涓嶅睘浜巤boxNo}绠辩爜鍐呯殑");
+ }
+
+ var data = list.Where(m => m.BoxNo == boxNo);
+ var boxData = data2.FirstOrDefault();
+ // 鐗╂枡鏉$爜淇℃伅璧嬪��
+ BoxInfoDto model = new BoxInfoDto();
+ model.SkuNo = boxData.SkuNo;
+ model.SkuName = boxData.SkuName;
+ model.LotNo = boxData.LotNo; //鎵规
+ model.SupplierLot = boxData.SupplierLot; // 鍘熷巶鎵瑰彿
+ model.Standard = boxData.Standard; // 瑙勬牸/鍨嬪彿
+ model.PackageStandard = boxData.PackageStandard; // 鍖呰瑙勬牸
+
+ model.ExpirationTime = boxData.ExpirationTime; // 鏈夋晥鏈熻嚦
+ model.StoreTime = boxData.StoreTime; // 鍌ㄥ瓨鏈熻嚦
+ model.Qty = data.Sum(m => m.Qty); // 鏁伴噺
+ model.BoxNo = boxData.BoxNo; // 鏀彿
+
+ model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 160, 40, false);
+
+ // 娣诲姞鍒發ist闆嗗悎
+ printModelList.Add(model);
+
+ var i = 0;
+ foreach (var item in data2)
+ {
+ // 鐗╂枡鏉$爜淇℃伅璧嬪��
+ BoxInfoDto model1 = new BoxInfoDto();
+ model1.SkuNo = item.SkuNo;
+ model1.SkuName = item.SkuName;
+ model1.LotNo = item.LotNo; //鎵规
+ model1.SupplierLot = item.SupplierLot; // 鍘熷巶鎵瑰彿
+ model1.Standard = item.Standard; // 瑙勬牸/鍨嬪彿
+ model1.PackageStandard = item.PackageStandard; // 鍖呰瑙勬牸
+
+ model1.ExpirationTime = item.ExpirationTime; // 鏈夋晥鏈熻嚦
+ model1.StoreTime = item.StoreTime; // 鍌ㄥ瓨鏈熻嚦
+ model1.Qty = item.Qty;// 鏁伴噺
+ model1.BoxNo = item.BoxNo3; // 鏀彿
+
+ model.ImgStr = BarcodeHelper.GetCodeBarBase64(model1.BoxNo, 160, 40, false);
+
+ // 娣诲姞鍒發ist闆嗗悎
+ printModelList.Add(model);
+ i++;
+ ////娣诲姞鎵撳嵃璁板綍
+ //WmsLabelPrintLog log = new WmsLabelPrintLog();
+ //log.BoxCode = item.BoxCode1;
+ //log.CreateTime = DateTime.Now;
+ //log.Demo = Demo;
+ //log.Isdel = 0;
+ //log.CreateUser = userId;
+ //printlog.Add(log);
+ if (i >= 100)
+ {
+ break;
+ }
+ }
+
+ #endregion
+ }
+ }
+ else //鏁寸鏀爜鍜屼竴涓鐮�
+ {
+ #region 鏁寸鏀爜鍜屼竴涓鐮�
+
+ var data = list.Where(m => m.BoxNo == boxNo).ToList();
+ var boxData = data.FirstOrDefault();
+ if (boxData == null)
+ {
+ throw new Exception($"鏈煡璇㈠埌{boxNo}绠辩爜淇℃伅");
+ }
+ // 鐗╂枡鏉$爜淇℃伅璧嬪��
+ BoxInfoDto model = new BoxInfoDto();
+ model.SkuNo = boxData.SkuNo;
+ model.SkuName = boxData.SkuName;
+ model.LotNo = boxData.LotNo; //鎵规
+ model.SupplierLot = boxData.SupplierLot; // 鍘熷巶鎵瑰彿
+ model.Standard = boxData.Standard; // 瑙勬牸/鍨嬪彿
+ model.PackageStandard = boxData.PackageStandard; // 鍖呰瑙勬牸
+
+ model.ExpirationTime = boxData.ExpirationTime; // 鏈夋晥鏈熻嚦
+ model.StoreTime = boxData.StoreTime; // 鍌ㄥ瓨鏈熻嚦
+ model.Qty = data.Sum(m => m.Qty); // 鏁伴噺
+ model.BoxNo = boxData.BoxNo; // 鏀彿
+
+ model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 160, 40, false);
+
+ // 娣诲姞鍒發ist闆嗗悎
+ printModelList.Add(model);
+
+ if (data.Count(m => !string.IsNullOrWhiteSpace(m.BoxNo3)) > 0) //鍒ゆ柇鏄惁鏈夋敮鐮�
+ {
+ var i = 0;
+ foreach (var item in data)
+ {
+ // 鐗╂枡鏉$爜淇℃伅璧嬪��
+ BoxInfoDto model1 = new BoxInfoDto();
+ model1.SkuNo = item.SkuNo;
+ model1.SkuName = item.SkuName;
+ model1.LotNo = item.LotNo; //鎵规
+ model1.SupplierLot = item.SupplierLot; // 鍘熷巶鎵瑰彿
+ model1.Standard = item.Standard; // 瑙勬牸/鍨嬪彿
+ model1.PackageStandard = item.PackageStandard; // 鍖呰瑙勬牸
+
+ model1.ExpirationTime = item.ExpirationTime; // 鏈夋晥鏈熻嚦
+ model1.StoreTime = item.StoreTime; // 鍌ㄥ瓨鏈熻嚦
+ model1.Qty = item.Qty; // 鏁伴噺
+ model1.BoxNo = item.BoxNo3; // 鏀彿
+
+ model1.ImgStr = BarcodeHelper.GetCodeBarBase64(model1.BoxNo, 160, 40, false);
+
+
+ // 娣诲姞鍒發ist闆嗗悎
+ printModelList.Add(model1);
+ i++;
+ ////娣诲姞鎵撳嵃璁板綍
+ //WmsLabelPrintLog log = new WmsLabelPrintLog();
+ //log.BoxCode = item.BoxCode1;
+ //log.CreateTime = DateTime.Now;
+ //log.Demo = Demo;
+ //log.Isdel = 0;
+ //log.CreateUser = userId;
+ //printlog.Add(log);
+ if (i >= 100)
+ {
+ break;
+ }
+ }
+ }
+ else
+ {
+ throw new Exception("褰撳墠绠卞唴娌℃湁鏀爜");
+ }
+ #endregion
+ }
+ #endregion
+ }
+ else
+ {
+ if (string.IsNullOrWhiteSpace(boxNo))
+ {
+ throw new Exception("璧峰绠辩爜涓嶈兘涓虹┖");
+ }
+
+ #region 澶氫釜绠辩爜鍜屽唴鏀爜
+
+ var sql = $@"select * from BllBoxInfo where IsDel = '0' and Origin = 'WMS鐢熸垚' and BoxNo >='{boxNo}' and BoxNo <= '{endBoxNo}'";
+ var data2 = Db.Ado.SqlQuery<BllBoxInfo>(sql);
+ var data3 = data2.GroupBy(m => m.BoxNo).Select(m => m.Key).OrderBy(m => m).ToList();
+ if (data3.Count == 0)
+ {
+ throw new Exception($"鏈煡璇㈠埌{boxNo}-{endBoxNo}涓俊鎭�");
+ }
+ var i = 0;
+ var j = 0;
+ foreach (var demo in data3)
+ {
+ var data = list.Where(m => m.BoxNo == demo).ToList();
+ var boxData = data.FirstOrDefault();
+ if (boxData == null)
+ {
+ throw new Exception($"鏈煡璇㈠埌{demo}绠辩爜淇℃伅");
+ }
+ // 鐗╂枡鏉$爜淇℃伅璧嬪��
+ BoxInfoDto model = new BoxInfoDto();
+ model.SkuNo = boxData.SkuNo;
+ model.SkuName = boxData.SkuName;
+ model.LotNo = boxData.LotNo; //鎵规
+ model.SupplierLot = boxData.SupplierLot; // 鍘熷巶鎵瑰彿
+ model.Standard = boxData.Standard; // 瑙勬牸/鍨嬪彿
+ model.PackageStandard = boxData.PackageStandard; // 鍖呰瑙勬牸
+
+ model.ExpirationTime = boxData.ExpirationTime; // 鏈夋晥鏈熻嚦
+ model.StoreTime = boxData.StoreTime; // 鍌ㄥ瓨鏈熻嚦
+ model.Qty = data.Sum(m => m.Qty); // 鏁伴噺
+ model.BoxNo = boxData.BoxNo; // 鏀彿
+
+ model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 160, 40, false);
+
+ // 娣诲姞鍒發ist闆嗗悎
+ printModelList.Add(model);
+
+ j++;
+ if (j >= 100)
+ {
+ break;
+ }
+ if (data.Count(m => !string.IsNullOrWhiteSpace(m.BoxNo3)) > 0) //鍒ゆ柇鏄惁鏈夋敮鐮�
+ {
+ foreach (var item in data.OrderBy(m => m.BoxNo3).ToList())
+ {
+ // 鐗╂枡鏉$爜淇℃伅璧嬪��
+ BoxInfoDto model1 = new BoxInfoDto();
+ model1.SkuNo = item.SkuNo;
+ model1.SkuName = item.SkuName;
+ model1.LotNo = item.LotNo; //鎵规
+ model1.SupplierLot = item.SupplierLot; // 鍘熷巶鎵瑰彿
+ model1.Standard = item.Standard; // 瑙勬牸/鍨嬪彿
+ model1.PackageStandard = item.PackageStandard; // 鍖呰瑙勬牸
+
+ model1.ExpirationTime = item.ExpirationTime; // 鏈夋晥鏈熻嚦
+ model1.StoreTime = item.StoreTime; // 鍌ㄥ瓨鏈熻嚦
+ model1.Qty = item.Qty;// 鏁伴噺
+ model1.BoxNo = item.BoxNo3; // 鏀彿
+
+ model1.ImgStr = BarcodeHelper.GetCodeBarBase64(model1.BoxNo, 160, 40, false);
+
+ // 娣诲姞鍒發ist闆嗗悎
+ printModelList.Add(model1);
+ i++;
+ ////娣诲姞鎵撳嵃璁板綍
+ //WmsLabelPrintLog log = new WmsLabelPrintLog();
+ //log.BoxCode = item.BoxCode1;
+ //log.CreateTime = DateTime.Now;
+ //log.Demo = Demo;
+ //log.Isdel = 0;
+ //log.CreateUser = userId;
+ //printlog.Add(log);
+ if (i >= 100)
+ {
+ break;
+ }
+ }
+ }
+
+ }
+
+ #endregion
+ }
+ break;
+ default:
+ throw new Exception("璇烽�夋嫨琛ユ墦绫诲瀷");
+ }
+
+ #endregion
+
+ return printModelList;
+ }
+ catch (Exception e)
+ {
+ throw new Exception(e.Message);
+ }
+ }
+
+ //鏍规嵁鍏ュ簱鍗曞彿杩囧幓鍗曟嵁涓嬫墍鏈夋壒娆″彿
+ public List<string> GetLotNoListByAsn(string asnNo)
+ {
+ try
+ {
+ var data = new List<string>();
+ var asnList = Db.Queryable<BllArrivalNoticeDetail>().Where(m => m.IsDel == "0" && m.ASNNo == asnNo).ToList();
+ if (asnList.Count == 0)
+ {
+ throw new Exception("鏈煡璇㈠埌璇ュ崟鎹彿鐨勪俊鎭�");
+ }
+
+ foreach (var item in asnList)
+ {
+ if (string.IsNullOrWhiteSpace(item.LotNo))
+ {
+ continue;
+ }
+
+ var strList = item.LotNo.Split(";");
+ foreach (var str in strList)
+ {
+ if (string.IsNullOrWhiteSpace(str))
+ {
+ continue;
+ }
+ data.Add(str);
+ }
+ }
+
+ return data;
+ }
+ catch (Exception e)
+ {
+ throw new Exception(e.Message);
+ }
+ }
+
+ //鍒犻櫎鍗曟嵁涓嬪崟涓垨澶氫釜鎵规鐨勬爣绛�
+ public void DelLabelByAsnNo(string asnNo,string lotNo, int userId)
+ {
+ try
+ {
+ var asnList = Db.Queryable<BllArrivalNoticeDetail>().Where(m => m.IsDel == "0" && m.ASNNo == asnNo).ToList();
+ if (asnList.Count == 0)
+ {
+ throw new Exception("鏈煡璇㈠埌璇ュ崟鎹彿鐨勪俊鎭�");
+ }
+
+ Db.BeginTran();
+
+ //鎵规涓虹┖锛氬綋鍓嶅崟鎹笅鎵�鏈夋壒娆$殑鏍囩鍏ㄩ儴鍒犻櫎锛� 鏈夋壒娆★細浼ゅ褰撳墠鍗曟嵁涓嬪綋鍓嶆壒娆$殑鏍囩
+ if (string.IsNullOrWhiteSpace(lotNo)) //鍒犻櫎鍏ㄩ儴鏍囩
+ {
+ var labelList = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.ASNNo == asnNo).ToList();
+ if (labelList.Count(m => m.Status != "0") >= 1)
+ {
+ throw new Exception("褰撳墠鍗曟嵁鎵规鐨勬爣绛惧凡鏈夊凡浣跨敤锛屼笉鑳藉垹闄�");
+ }
+
+ foreach (var item in asnList)
+ {
+ if (string.IsNullOrWhiteSpace(item.LotNo))
+ {
+ continue;
+ }
+
+ item.LotNo = "";
+ Db.Updateable(item).ExecuteCommand();
+
+ }
+ Db.Deleteable(labelList).ExecuteCommand();
+ }
+ else //鍒犻櫎鍥哄畾鎵规鏍囩
+ {
+ var labelList = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.ASNNo == asnNo && m.LotNo == lotNo).ToList();
+ if (labelList.Count(m=>m.Status != "0") >= 1 )
+ {
+ throw new Exception("褰撳墠鍗曟嵁鎵规鐨勬爣绛惧凡鏈夊凡浣跨敤锛屼笉鑳藉垹闄�");
+ }
+
+ foreach (var item in asnList)
+ {
+ if (string.IsNullOrWhiteSpace(item.LotNo) || item.LotNo!=lotNo)
+ {
+ continue;
+ }
+
+ var strList = item.LotNo.Split(";");
+ var updateLotNo = "";
+ foreach (var str in strList)
+ {
+ if (string.IsNullOrWhiteSpace(str) || str == lotNo)
+ {
+ continue;
+ }
+
+ if (string.IsNullOrWhiteSpace(updateLotNo))
+ {
+ updateLotNo = str;
+ }
+ else
+ {
+ updateLotNo += ";" + str;
+ }
+
+ }
+
+ item.LotNo = updateLotNo;
+ Db.Updateable(item).ExecuteCommand();
+
+ }
+ Db.Deleteable(labelList).ExecuteCommand();
+ }
+
+ Db.CommitTran();
+
+ var msg = $"鍒犻櫎浜嗗崟鎹彿锛歿asnNo}";
+ if (!string.IsNullOrWhiteSpace(lotNo))
+ {
+ msg += $"銆佹壒娆″彿锛歿lotNo}";
+ }
+ msg += "鐨勬爣绛句俊鎭�";
+
+ new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鐗╂枡鏍囩", asnNo, "鍒犻櫎", msg, userId);
+ }
+ catch (Exception e)
+ {
+ Db.RollbackTran();
+ throw new Exception(e.Message);
+ }
+ }
+
}
}
--
Gitblit v1.8.0