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; } } }