using System; using HcUtility.Core; using Newtonsoft.Json; using System.Collections.Generic; using System.Text; using DSWeb.Areas.CommMng.DAL; using DSWeb.MvcShipping.DAL.MsCodeOpDef; using DSWeb.EntityDA; using Microsoft.Owin; using NPOI.SS.Formula.Functions; namespace DSWeb.MvcShipping.Models.BIReport { /// /// BI报表 业务和利润 /// [JsonObject]// public class BIREPORT_BILLmb : ModelObjectBillHead { public override Dictionary GetPKey() {//用于给扩展的动态数据提供主键字段名 var d = new Dictionary() { { "Id", ModelDBOprationType.All } }; return d; } public Dictionary SaveDic = new Dictionary(); private static string getBaseSql() { return @" SELECT * from BIREPORT_BILL where 1=1 "; } /// /// 获取查询语句 含权限和分页 /// /// /// /// /// /// public string getSQL(int start, int limit,string strCondition, string userid, out int count, string sortstring="") { var rangestr = ""; if(!(start==0 && limit==1)) rangestr = BasicDataRefDAL.GetRangeCondition(BasicDataRefDAL.RangeType.Visable, "modOp_InternalTrade", userid, GetCompanyFieldName(),new string[] { "OP", "CUSTSERVICE", "SALE" }); var param = new BasicDataRefDAL.PagedQuaryParam(); param.strSql = getBaseSql(); param.strCondition = strCondition; param.rangestr = rangestr; param.sortstring = sortstring; param.defaultsortstr = "ETD desc"; param.start = start; param.limit = limit; var result = BasicDataRefDAL.PagedQuaryStr(param); count = BasicDataRefDAL.PagedCount(param); return result.ToString(); } public string getSumSql(int start, int limit, string strCondition, out int count, ListGroupField, List SumField,string sort="") { var param = new BasicDataRefDAL.PagedQuaryParam(); param.strSql = getSumSqlStr(GroupField, SumField, strCondition); param.strCondition = ""; param.rangestr = ""; param.sortstring = sort; param.defaultsortstr = ""; param.start = start; param.limit = limit; var result = BasicDataRefDAL.PagedQuaryStr(param); count = BasicDataRefDAL.PagedCount(param); return result.ToString(); } private string getSumSqlStr(List GroupField, List SumField,string strCondition) { if (GroupField == null || GroupField == null || GroupField.Count == 0 || GroupField.Count == 0) { return "select Id=1"; } var result = ""; var selectfield = string.Join(",", GroupField); var sumfield = ""; foreach (var item in SumField) { if (sumfield != "") sumfield += ","; sumfield += $"sum(isnull({item},0))as {item}"; } if (!string.IsNullOrWhiteSpace(strCondition)) { strCondition = " and " + strCondition; } else { strCondition = ""; } result = $"select { selectfield },{ sumfield } from BIREPORT_BILL where 1=1 {strCondition} group by {selectfield} "; return result; } public BIREPORT_BILLmb() { TableName = "BIREPORT_BILL"; } public override string GetBillNoFieldName() { return "Id"; } //public override string GetTimeMarkFieldName() //{ // return "TIMEMARK"; //} } /// /// BI报表 欠费 /// [JsonObject]// public class BIREPORT_NODRCRmb : ModelObjectBillHead { public override Dictionary GetPKey() {//用于给扩展的动态数据提供主键字段名 var d = new Dictionary() { { "Id", ModelDBOprationType.All } }; return d; } public Dictionary SaveDic = new Dictionary(); private static string getBaseSql() { return @" SELECT * from BIREPORT_NODRCR where 1=1 "; } /// /// 获取查询语句 含权限和分页 /// /// /// /// /// /// public string getSQL(int start, int limit, string strCondition, string userid, out int count, string sortstring = "") { var rangestr = ""; if (!(start == 0 && limit == 1)) rangestr = BasicDataRefDAL.GetRangeCondition(BasicDataRefDAL.RangeType.Visable, "modOp_InternalTrade", userid, GetCompanyFieldName(), new string[] { "OP", "CUSTSERVICE", "SALE" }); var param = new BasicDataRefDAL.PagedQuaryParam(); param.strSql = getBaseSql(); param.strCondition = strCondition; param.rangestr = rangestr; param.sortstring = sortstring; param.defaultsortstr = "ETD desc"; param.start = start; param.limit = limit; var result = BasicDataRefDAL.PagedQuaryStr(param); count = BasicDataRefDAL.PagedCount(param); return result.ToString(); } public string getSumSql(int start, int limit, string strCondition, out int count, List GroupField, List SumField) { var param = new BasicDataRefDAL.PagedQuaryParam(); param.strSql = getSumSqlStr(GroupField, SumField); param.strCondition = strCondition; param.rangestr = ""; param.sortstring = ""; param.defaultsortstr = ""; param.start = start; param.limit = limit; var result = BasicDataRefDAL.PagedQuaryStr(param); count = BasicDataRefDAL.PagedCount(param); return result.ToString(); } private string getSumSqlStr(List GroupField, List SumField) { if (GroupField == null || GroupField == null || GroupField.Count == 0 || GroupField.Count == 0) { return "select Id=1"; } var result = ""; var selectfield = string.Join(",", GroupField); var sumfield = ""; foreach (var item in SumField) { if (sumfield != "") sumfield += ","; sumfield += $"sum(isnull({item},0))as {item}"; } result = $"select {selectfield},{sumfield} from BIREPORT_NODRCR group by {selectfield} where 1=1 "; return result; } public BIREPORT_NODRCRmb() { TableName = "BIREPORT_NODRCR"; } public override string GetBillNoFieldName() { return "Id"; } //public override string GetTimeMarkFieldName() //{ // return "TIMEMARK"; //} } }