using Model.ModelDto.SysDto; using Model.ModelVm.DailyInventory; using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Runtime.CompilerServices; using System.Text; using WMS.DAL; using WMS.Entity.BllCheckEntity; using WMS.Entity.Context; using WMS.IBLL.IIndexEcharServer; namespace WMS.BLL.IndexEcharServer { public class DailyInventoryServer : DbHelper, IDailyInventoryServer { private static readonly SqlSugarScope Db = DataContext.Db; public DailyInventoryServer() : base(Db) { } /// /// 当天任务量 /// /// public List DailyInventory() { //捕获异常 try { string onedate = DateTime.Now.AddDays(-6).ToString("yyyy-MM-dd");//第一天 string twodate = DateTime.Now.AddDays(-5).ToString("yyyy-MM-dd");//第二天 string threedate = DateTime.Now.AddDays(-4).ToString("yyyy-MM-dd");//第三天 string fourdate = DateTime.Now.AddDays(-3).ToString("yyyy-MM-dd");//第四天 string fivedate = DateTime.Now.AddDays(-2).ToString("yyyy-MM-dd");//第五天 string sixdate = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd");//第六天 string sevendate = DateTime.Now.ToString("yyyy-MM-dd");//第七天 string str = "select convert(varchar(10),CreateTime,120) TaskDay,OrderType TaskType,COUNT(*) TaskNum from logtask where CreateTime >= CONVERT(datetime,CONVERT(varchar(10),GETDATE(),120)) - 6 group by convert(varchar(10),CreateTime,120),OrderType Order by convert(varchar(10),CreateTime,120) desc"; var list = Db.Ado.SqlQuery(str); List list2 = new List(); DailyInventoryVM daily = new DailyInventoryVM(); foreach (var item in list) { if (list2.Count == 0) { daily.TaskDay = item.TaskDay; //时间 daily.TaskType = item.TaskType; //类型 //入库 if (item.TaskType == "0") { daily.ASoTaskNum = item.TaskNum; daily.SoTaskNum = "0"; daily.CheckTaskNum = "0"; } //出库 else if (item.TaskType == "1") { daily.ASoTaskNum = "0"; daily.SoTaskNum= item.TaskNum; daily.CheckTaskNum = "0"; } //盘点 else if (item.TaskType == "2") { daily.ASoTaskNum = "0"; daily.SoTaskNum= "0"; daily.CheckTaskNum = item.TaskNum; } list2.Add(daily); continue; } else { int aa = 0; foreach (var item2 in list2) { aa += 1; if (item.TaskDay == item2.TaskDay) { //daily.TaskDay = item.TaskDay; //时间 //daily.TaskType = item.TaskType; //类型 //入库 if (item.TaskType == "0") { item2.ASoTaskNum = item.TaskNum; } //出库 else if (item.TaskType == "1") { item2.SoTaskNum= item.TaskNum; } //盘点 else if (item.TaskType == "2") { item2.CheckTaskNum = item.TaskNum; } //list2.Add(daily); break; } else if (aa == list2.Count) { daily = new DailyInventoryVM(); daily.TaskDay = item.TaskDay; //时间 //daily.TaskType = item.TaskType; //类型 //入库 if (item.TaskType == "0") { daily.ASoTaskNum = item.TaskNum; daily.SoTaskNum = "0"; daily.CheckTaskNum = "0"; } //出库 else if (item.TaskType == "1") { daily.ASoTaskNum = "0"; daily.SoTaskNum = item.TaskNum; daily.CheckTaskNum = "0"; } //盘点 else if (item.TaskType == "2") { daily.ASoTaskNum = "0"; daily.SoTaskNum = "0"; daily.CheckTaskNum = item.TaskNum; } list2.Add(daily); break; } } } } int a = 0; int b = 0; int c = 0; int d = 0; int e = 0; int f = 0; int g = 0; foreach (var item2 in list2) { if (item2.TaskDay == onedate) { a = 1; } else if (item2.TaskDay == twodate) { b = 1; } else if (item2.TaskDay == threedate) { c = 1; } else if (item2.TaskDay == fourdate) { d = 1; } else if (item2.TaskDay == fivedate) { e = 1; } else if (item2.TaskDay == sixdate) { f = 1; } else if (item2.TaskDay == sevendate) { g = 1; } } if (a == 0) { daily = new DailyInventoryVM(); daily.TaskDay = onedate; daily.ASoTaskNum = "0"; daily.SoTaskNum = "0"; daily.CheckTaskNum = "0"; list2.Add(daily); } if (b == 0) { daily = new DailyInventoryVM(); daily.TaskDay = twodate; daily.ASoTaskNum = "0"; daily.SoTaskNum = "0"; daily.CheckTaskNum = "0"; list2.Add(daily); } if (c == 0) { daily = new DailyInventoryVM(); daily.TaskDay = threedate; daily.ASoTaskNum = "0"; daily.SoTaskNum = "0"; daily.CheckTaskNum = "0"; list2.Add(daily); } if (d == 0) { daily = new DailyInventoryVM(); daily.TaskDay = fourdate; daily.ASoTaskNum = "0"; daily.SoTaskNum = "0"; daily.CheckTaskNum = "0"; list2.Add(daily); } if (e == 0) { daily = new DailyInventoryVM(); daily.TaskDay = fivedate; daily.ASoTaskNum = "0"; daily.SoTaskNum = "0"; daily.CheckTaskNum = "0"; list2.Add(daily); } if (f == 0) { daily = new DailyInventoryVM(); daily.TaskDay = sixdate; daily.ASoTaskNum = "0"; daily.SoTaskNum = "0"; daily.CheckTaskNum = "0"; list2.Add(daily); } if (g == 0) { daily = new DailyInventoryVM(); daily.TaskDay = sevendate; daily.ASoTaskNum = "0"; daily.SoTaskNum = "0"; daily.CheckTaskNum = "0"; list2.Add(daily); } return list2.OrderBy(a => a.TaskDay).ToList(); } //抛出异常 catch (Exception ex) { throw new Exception("获取当天入库任务量异常", ex); } } /// /// 当天单据量 /// /// public List DailyReceipts() { //捕获异常 try { string onedate = DateTime.Now.AddDays(-6).ToString("yyyy-MM-dd");//第一天 string twodate = DateTime.Now.AddDays(-5).ToString("yyyy-MM-dd");//第二天 string threedate = DateTime.Now.AddDays(-4).ToString("yyyy-MM-dd");//第三天 string fourdate = DateTime.Now.AddDays(-3).ToString("yyyy-MM-dd");//第四天 string fivedate = DateTime.Now.AddDays(-2).ToString("yyyy-MM-dd");//第五天 string sixdate = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd");//第六天 string sevendate = DateTime.Now.ToString("yyyy-MM-dd");//第七天 string str = @"select * from ( select convert(varchar(10),CreateTime,120) TaskDay, 0 TaskType, COUNT(*) TaskNum from BllArrivalNotice where CreateTime >= CONVERT(datetime,CONVERT(varchar(10),GETDATE(),120)) - 6 group by convert(varchar(10),CreateTime,120) UNION ALL select convert(varchar(10),CreateTime,120) TaskDay, 1 TaskType, COUNT(*) TaskNum from BllExportNotice where CreateTime >= CONVERT(datetime,CONVERT(varchar(10),GETDATE(),120)) - 6 group by convert(varchar(10),CreateTime,120) ) t Order by t.TaskDay desc"; var list = Db.Ado.SqlQuery(str); List list2 = new List(); DailyReceiptsVm daily = new DailyReceiptsVm(); foreach (var item in list) { if (list2.Count == 0) { daily.TaskDay = item.TaskDay; //时间 daily.TaskType = item.TaskType; //类型 //入库 if (item.TaskType == "0") { daily.ASoTaskNum = item.TaskNum; daily.SoTaskNum = "0"; } //出库 else if (item.TaskType == "1") { daily.ASoTaskNum = "0"; daily.SoTaskNum = item.TaskNum; } list2.Add(daily); continue; } else { int aa = 0; foreach (var item2 in list2) { aa += 1; if (item.TaskDay == item2.TaskDay) { //daily.TaskDay = item.TaskDay; //时间 //daily.TaskType = item.TaskType; //类型 //入库 if (item.TaskType == "0") { item2.ASoTaskNum = item.TaskNum; } //出库 else if (item.TaskType == "1") { item2.SoTaskNum = item.TaskNum; } //list2.Add(daily); break; } else if (aa == list2.Count) { daily = new DailyReceiptsVm(); daily.TaskDay = item.TaskDay; //时间 //daily.TaskType = item.TaskType; //类型 //入库 if (item.TaskType == "0") { daily.ASoTaskNum = item.TaskNum; daily.SoTaskNum = "0"; } //出库 else if (item.TaskType == "1") { daily.ASoTaskNum = "0"; daily.SoTaskNum = item.TaskNum; } list2.Add(daily); break; } } } } int a = 0; int b = 0; int c = 0; int d = 0; int e = 0; int f = 0; int g = 0; foreach (var item2 in list2) { if (item2.TaskDay == onedate) { a = 1; } else if (item2.TaskDay == twodate) { b = 1; } else if (item2.TaskDay == threedate) { c = 1; } else if (item2.TaskDay == fourdate) { d = 1; } else if (item2.TaskDay == fivedate) { e = 1; } else if (item2.TaskDay == sixdate) { f = 1; } else if (item2.TaskDay == sevendate) { g = 1; } } if (a == 0) { daily = new DailyReceiptsVm(); daily.TaskDay = onedate; daily.ASoTaskNum = "0"; daily.SoTaskNum = "0"; list2.Add(daily); } if (b == 0) { daily = new DailyReceiptsVm(); daily.TaskDay = twodate; daily.ASoTaskNum = "0"; daily.SoTaskNum = "0"; list2.Add(daily); } if (c == 0) { daily = new DailyReceiptsVm(); daily.TaskDay = threedate; daily.ASoTaskNum = "0"; daily.SoTaskNum = "0"; list2.Add(daily); } if (d == 0) { daily = new DailyReceiptsVm(); daily.TaskDay = fourdate; daily.ASoTaskNum = "0"; daily.SoTaskNum = "0"; list2.Add(daily); } if (e == 0) { daily = new DailyReceiptsVm(); daily.TaskDay = fivedate; daily.ASoTaskNum = "0"; daily.SoTaskNum = "0"; list2.Add(daily); } if (f == 0) { daily = new DailyReceiptsVm(); daily.TaskDay = sixdate; daily.ASoTaskNum = "0"; daily.SoTaskNum = "0"; list2.Add(daily); } if (g == 0) { daily = new DailyReceiptsVm(); daily.TaskDay = sevendate; daily.ASoTaskNum = "0"; daily.SoTaskNum = "0"; list2.Add(daily); } return list2.OrderBy(a => a.TaskDay).ToList(); } //抛出异常 catch (Exception ex) { throw new Exception("获取当天入库单据量异常", ex); } } /// /// 获取储位占用量 /// /// public List LocatInventory() { //捕获异常 try { string str = "select Status LocatStatus,Count(*) LocatNum from SysStorageLocat where IsDel = '0' and WareHouseNo = 'W01' group by Status"; var list = Db.Ado.SqlQuery(str); int a = 0; foreach (var item in list) { if (item.LocatStatus == "0" || item.LocatStatus == "1" || item.LocatStatus == "2" || item.LocatStatus == "3") { a += 1; } //else if (item.LocatStatus == "1") //{ // a += 1; //} //else if (item.LocatStatus == "2") //{ // a += 1; //} //else if (item.LocatStatus == "3") //{ // a += 1; //} } if (a != 4) { for (int i = 0; i < 4; i++) { if (list[i].LocatStatus != "4" || list[i].LocatStatus != "5") { if (list.Count < 6) { LocatInventoryVm locat = new LocatInventoryVm(); locat.LocatStatus = list.Count.ToString(); locat.LocatNum = "0"; list.Add(locat); } continue; } else if (list.Count < 6) { LocatInventoryVm locat = new LocatInventoryVm(); locat.LocatStatus = i.ToString(); locat.LocatNum = "0"; list.Add(locat); } else { LocatInventoryVm locat = new LocatInventoryVm(); locat.LocatStatus = i.ToString(); locat.LocatNum = "0"; list.Add(locat); } } } return list; } //抛出异常 catch (Exception ex) { throw new Exception("获取当前储位占用量异常", ex); } } /// /// 获取储位占用量 /// /// public List LocatInventoryA() { //捕获异常 try { //获取空储位和有储位的 string str = "select Status LocatStatus,Count(*) LocatNum from SysStorageLocat where IsDel = '0' and WareHouseNo = 'W01' and (Status = '0' or Status = '1' or Status = '2' or Status = '3') group by Status"; var list = Db.Ado.SqlQuery(str); if (list == null) { throw new Exception("获取储位占比失败"); } //获取储位总数 string strsum = "select Count(*) LocatNum from SysStorageLocat where IsDel = '0' and WareHouseNo = 'W01'"; var lista = Db.Ado.SqlQuerySingle(strsum); if (lista == null) { throw new Exception("获取储位总数失败"); } //获取空托盘占用数 string strpallet = "select Count(*) LocatNum from DataStockDetail where IsDel = '0' and WareHouseNo = 'W01' and SkuNo = '100099' and LocatNo != ''"; var listb = Db.Ado.SqlQuerySingle(strpallet); if (listb == null) { throw new Exception("获取空托盘占用数失败"); } //LocatStatus 储位状态 0:空储位 1:有物品 2:入库中 3:出库中 9:空托盘 99:总量 var locatList = new List(); var locatListText = new LocatInventoryVm(); foreach ( var item in list) { if (item.LocatStatus == "0" || item.LocatStatus == "1" || item.LocatStatus == "2" || item.LocatStatus == "3") { locatList.Add(item); continue; } else { continue; } } //增加总数 locatListText = new LocatInventoryVm(); locatListText.LocatStatus = "99"; locatListText.LocatNum = lista.LocatNum; locatList.Add(locatListText); //增加空托盘数 locatListText = new LocatInventoryVm(); locatListText.LocatStatus = "9"; locatListText.LocatNum = listb.LocatNum; locatList.Add(locatListText); return locatList; } //抛出异常 catch (Exception ex) { throw new Exception("获取当前储位占用量异常", ex); } } } }