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<DailyInventoryVM>, IDailyInventoryServer
|
{
|
private static readonly SqlSugarScope Db = DataContext.Db;
|
public DailyInventoryServer() : base(Db)
|
{
|
}
|
|
/// <summary>
|
/// 当天任务量
|
/// </summary>
|
/// <returns></returns>
|
public List<DailyInventoryVM> 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<DailyInventoryVM>(str);
|
|
List<DailyInventoryVM> list2 = new List<DailyInventoryVM>();
|
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);
|
}
|
}
|
|
/// <summary>
|
/// 当天单据量
|
/// </summary>
|
/// <returns></returns>
|
public List<DailyReceiptsVm> 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<DailyReceiptsVm>(str);
|
|
List<DailyReceiptsVm> list2 = new List<DailyReceiptsVm>();
|
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);
|
}
|
}
|
/// <summary>
|
/// 获取储位占用量
|
/// </summary>
|
/// <returns></returns>
|
public List<LocatInventoryVm> 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<LocatInventoryVm>(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);
|
}
|
}
|
|
/// <summary>
|
/// 获取储位占用量
|
/// </summary>
|
/// <returns></returns>
|
public List<LocatInventoryVm> 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<LocatInventoryVm>(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<LocatInventoryVm>(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<LocatInventoryVm>(strpallet);
|
if (listb == null)
|
{
|
throw new Exception("获取空托盘占用数失败");
|
}
|
|
//LocatStatus 储位状态 0:空储位 1:有物品 2:入库中 3:出库中 9:空托盘 99:总量
|
var locatList = new List<LocatInventoryVm>();
|
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);
|
}
|
}
|
}
|
}
|