using Rhea.Common;
using Tiger.Model;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Linq;
using Newtonsoft.Json;
using Rhea.Common.Authorization;
using Newtonsoft.Json.Linq;
using Tiger.Model.Minsun;
using Tiger.IBusiness;
using System.Data.Entity;
namespace Tiger.Business.WMS
{
public partial class KanBan : IKanBan
{
///
/// warehousing看板全部数据对接
///
///
///
public async Task GetReceiptDetail(MaterialKBInput input)
{
try
{
DateTime dateTime = DateTime.Now.AddDays(-2);
int nYear = DateTime.Now.Year;
//var sql = $"SELECT SUM(INSTOCKQTY) as Total, convert(varchar(100),datepart(mm, LastModificationTime))+'月' as Month FROM WMS_RECEIPT_D WHERE LINESTATUS=8 and datepart(yy,LastModificationTime)=@nYear GROUP BY datepart(mm, LastModificationTime)";
//var sList = Db.Queryable((d, r) =>
// new JoinQueryInfos(
// JoinType.Left, d.CREATE_USER == r.USER_ID
// ))
// .Where((d, r) => d.LINESTATUS == 2 && d.UPDATE_TIME.Year == nYear && r.USERGROUP_CODE == "清溪结构仓")
// //.GroupBy((d, r) => d.UPDATE_TIME)
// .Select((d, r) => new TotalByMonth
// {
// Total = SqlFunc.AggregateSum(d.INSTOCKQTY),
// Month = $"{d.UPDATE_TIME.Month}月"
// })
//.ToList();
var sList = Biz.Db.Queryable().ToList();
//var sList = Db.Queryable()
// .LeftJoin((d, r) => d.CREATE_USER==r.USER_ID)
// .GroupBy((d, r) => d.UPDATE_TIME.Month)
// .Where((d, r) => d.LINESTATUS == 1 && d.UPDATE_TIME.Year == nYear && r.USERGROUP_CODE == "清溪结构仓")
// //.GroupBy((d, r) => new { Month = d.UPDATE_TIME.Month })
// .Select((d, r) => new TotalByMonth
// {
// Total = SqlFunc.AggregateSum(d.INSTOCKQTY),
// Month = $"{d.UPDATE_TIME.Month}月"
// })
// .ToList();
//SqlParameter[] nParams = new SqlParameter[]
//{
// new SqlParameter("@nYear",System.Data.SqlDbType.Int),
//};
//nParams[0].Value = nYear;
//var sList = SqlQuery(sql, nParams).ToList();
//var taskTotalSql = $"SELECT SUM(QTY-INSTOCKQTY) as Total,'' as Month FROM WMS_RECEIPT_D WHERE LINESTATUS = 4 and datepart(yy,LastModificationTime)=@nYear ";
var sTaskTotal = Biz.Db.Queryable((d, r) =>
new JoinQueryInfos(
JoinType.Left, d.CREATE_USER == r.USER_ID
))
.Where((d, r) => (d.LINESTATUS == 1) && d.UPDATE_TIME.Year == nYear && r.USERGROUP_CODE == "清溪结构仓")
.Select((d, r) => new TotalByMonth
{
Total = SqlFunc.RowCount(),
Month = ""
}).First();
//SqlParameter[] nParams2 = new SqlParameter[]
//{
//new SqlParameter("@nYear",System.Data.SqlDbType.Int),
//};
//nParams2[0].Value = nYear;
//var sTaskTotal = this._receiptDetailRepository.SqlQuery(taskTotalSql, nParams2).FirstOrDefault();
//var unChecklSql = $"SELECT SUM(QTY) as Total,'' as Month FROM WMS_RECEIPT_D WHERE LINESTATUS = 2 and datepart(yy,LastModificationTime)=@nYear ";
var sUnCheckNumber = Biz.Db.Queryable((d, r) =>
new JoinQueryInfos(
JoinType.Left, d.CREATE_USER == r.USER_ID
))
.Where((d, r) => d.LINESTATUS == 1 && d.UPDATE_TIME.Year == nYear && r.USERGROUP_CODE == "清溪结构仓")
.Select((d, r) => new TotalByMonth
{
Total = SqlFunc.AggregateSum(d.QTY),
Month = ""
}).First();
//SqlParameter[] nParams3 = new SqlParameter[]
//{
//new SqlParameter("@nYear",System.Data.SqlDbType.Int),
//};
//nParams3[0].Value = nYear;
//var sUnCheckNumber = this._receiptDetailRepository.SqlQuery(unChecklSql, nParams3).FirstOrDefault();
//var sTotalSql = $"SELECT SUM(INSTOCKQTY) as Total,'' as Month FROM WMS_RECEIPT_D WHERE LINESTATUS in (4, 8) and datepart(yy,LastModificationTime)=@nYear ";
//结构仓数量
var Structure = Biz.Db.Queryable((d, r) =>
new JoinQueryInfos(
JoinType.Left, d.CREATE_USER == r.USER_ID
))
.Where((d, r) => (d.LINESTATUS == 2) && d.UPDATE_TIME.Year == nYear && r.USERGROUP_CODE == "清溪结构仓")
.Select((d, r) => new TotalByMonth
{
Total = SqlFunc.AggregateSum(d.INSTOCKQTY),
Month = ""
}).First();
//电子仓数量
var Electron = Biz.Db.Queryable((d, r) =>
new JoinQueryInfos(
JoinType.Left, d.CREATE_USER == r.USER_ID
))
.Where((d, r) => (d.LINESTATUS == 2) && d.UPDATE_TIME.Year == nYear && r.USERGROUP_CODE == "清溪电子仓")
.Select((d, r) => new TotalByMonth
{
Total = SqlFunc.AggregateSum(d.INSTOCKQTY),
Month = ""
}).First();
//SqlParameter[] nParams4 = new SqlParameter[]
//{
//new SqlParameter("@nYear",System.Data.SqlDbType.Int),
//};
//nParams4[0].Value = nYear;
//var sTotal = this._receiptDetailRepository.SqlQuery(sTotalSql, nParams4).FirstOrDefault();
var nOutput = new MaterialKBOutput()
{
Structure = Structure.Total,
Electron = Electron.Total,
UnCheckNumber = sUnCheckNumber.Total,
TaskTotal = sTaskTotal.Total,
TotalByMonthList = sList,
// IncomingRptList = nResult
};
return nOutput;
}
catch (Exception ex)
{
throw;
}
}
///
/// warehousing入库明细信息
///
///
///
public async Task GetIncomingDetail(MaterialKBInput input)
{
int pagenumber = Convert.ToInt16(input.Barcode); // pagenumber是从1开始的不是从零开始的
int pageSize = 10;
int totalCount = 0;
DateTime dateTime = DateTime.Now.AddDays(-2);
//入库信息
var nResult = Biz.Db.Queryable((r, m, s) =>
new JoinQueryInfos(
JoinType.Left, r.ITEM_CODE == m.ITEM_CODE,
JoinType.Left, r.CREATE_USER == s.USER_ID
))
.Where((r, m, s) => r.CREATE_TIME > dateTime && s.USERGROUP_CODE == "清溪结构仓")
.OrderByDescending((r, m, s) => r.CREATE_TIME)
.Select((r, m, s) => new IncomingRptOutput
{
CreationTime = r.CREATE_TIME,
BillCode = r.SOURCECODE,
WarehouseCode = r.WAREHOUSECODE,
MaterialCode = r.ITEM_CODE,
MaterialName = m.ITEM_NAME,
Status = r.LINESTATUS,
Qty = r.QTY,
InstockQty = r.INSTOCKQTY,
LeftQty = r.QTY - r.INSTOCKQTY
})
.ToPageList(pagenumber, pageSize, ref totalCount);
//nResult = nResult.OrderByDescending(q=>q.CreationTime).ToList();
//totalCount = 21;
if (totalCount > pageSize * pagenumber)
{
pagenumber += 1;
}
else
{
pagenumber = 1;
}
var nOutput = new MaterialKBOutput()
{
Structure = pagenumber,
IncomingRptList = nResult
};
return nOutput;
}
}
}