王 垚
2020-12-28 3fea7b751b0fe095dd05ce772f364e55bf1f7fdb
src/BLL/Demo.Report/PRD/prd_ExtractionPlanDetail.cs
@@ -24,6 +24,7 @@
    public class prd_ExtractionPlanDetail : SysReportBaseService
    {
        string date = "";
        string TableName = "";
        //初始化
        public override void Initialize()
        {
@@ -108,6 +109,33 @@
        //设置单据列
        public override ReportHeader GetReportHeaders(IRptParams filter)
        {
            //更新总拖期数量 和 总提料数量
            List<string> sqlList = new List<string>();
            string sql = string.Format(@"/*dialect*/ update a set a.TQSum = b.FHQTY from {0} a
            join (
            select SUM(b.FHQTY)FHQTY, FIDENTITYID from {0} c
            join Cg_PODemandPlanBillMain a  on c.FSUPPLIERID = a.FSUPPLIERID and c.FHPURCHASEORGID = a.FHPURCHASEORGID
            join(select SUM(FHQTY)FHQTY, FHMATERID, FID from Cg_PODemandPlanBillSub GROUP BY FHMATERID, FID)  b on a.FID = B.FID and c.FHMATERID = b.FHMATERID
            where {1} and datediff(d, FHDATE, getdate())> 0
            group by FIDENTITYID
            ) b on a.FIDENTITYID = b.FIDENTITYID",
            TableName, date);
            //DBServiceHelper.Execute(Context, sql);
            sqlList.Add(sql);
            sql = string.Format(@"/*dialect*/ update a set a.PlanSum = b.FHQTY from {0} a
            join (
            select SUM(b.FHQTY)FHQTY,FIDENTITYID from {0} c
            join   Cg_PODemandPlanBillMain a  on c.FSUPPLIERID = a.FSUPPLIERID and c.FHPURCHASEORGID = a.FHPURCHASEORGID
            join   (select SUM(FHQTY)FHQTY, FHMATERID, FID from Cg_PODemandPlanBillSub GROUP BY FHMATERID,FID)  b on a.FID = B.FID and c.FHMATERID = b.FHMATERID
            where {1} and  datediff(d,FHDATE,getdate())<=0
            group by FIDENTITYID
            ) b on a.FIDENTITYID=b.FIDENTITYID",
            TableName, date);
            //DBServiceHelper.Execute(Context, sql);
            sqlList.Add(sql);
            DBServiceHelper.Execute(Context,string.Join(";", sqlList));
            ReportHeader header = new ReportHeader();
            header.AddChild("FRogNUMBER", new LocaleValue("供应商信息&采购组织", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar);
            header.AddChild("FNAME", new LocaleValue("供应商信息&供应商", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar);
@@ -120,11 +148,19 @@
            header.AddChild("FQTY", new LocaleValue("物料信息&库存数量", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar);
            header.AddChild("FTRANSITQTY", new LocaleValue("物料信息&在途数量", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar);
            //header.AddChild("FNUMBER", new LocaleValue("拖期明细&拖期数量", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar);
            //header.AddChild("FNUMBER", new LocaleValue("计划明细&合计", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar);
            DataSet ds = DBServiceHelper.ExecuteDataSet(Context, "/*dialect*/select distinct convert(nvarchar(50),FHDATE,111) FHDATE from Cg_PODemandPlanBillMain");
            header.AddChild("TQSum", new LocaleValue("拖期明细&拖期数量", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar);
            DataSet ds = DBServiceHelper.ExecuteDataSet(Context, "/*dialect*/select distinct convert(nvarchar(50),FHDATE,23) FHDATE from Cg_PODemandPlanBillMain where " + date + " and datediff(d,FHDATE,getdate())>0   ");
            DataTable dt = ds.Tables[0];
            if (dt.Rows.Count > 0)
            {
                foreach (DataRow dr in dt.Rows)
                {
                    header.AddChild(dr[0].ToString(), new LocaleValue("拖期明细&" + dr[0].ToString() + "", this.Context.UserLocale.LCID), SqlStorageType.SqlDecimal);
                }
            }
            header.AddChild("PlanSum", new LocaleValue("计划明细&合计", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar);
            DataSet _ds = DBServiceHelper.ExecuteDataSet(Context, "/*dialect*/select distinct convert(nvarchar(50),FHDATE,23) FHDATE from Cg_PODemandPlanBillMain  where " + date + " and  datediff(d,FHDATE,getdate())<=0");
            dt = _ds.Tables[0];
            if (dt.Rows.Count > 0)
            {
                foreach (DataRow dr in dt.Rows)
@@ -137,18 +173,13 @@
        //创建临时报表
        public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName)
        {
            TableName = tableName;
            string Filter = GetFilterWhere(filter);
            string seqFld = string.Format(base.KSQL_SEQ, OrderColumn(filter));
            // 取数SQL
            // FID, FEntryId, 编号、状态、物料、数量、单位、单位精度、单价、价税合计 ,t1M_L.FNAME as FMaterialName
            string sql = string.Format(@"/*dialect*/
                           exec 提料计划报表 '{0}','{1}','{2}'
                            ",
                        seqFld,
                        tableName
                        , Filter
                        );
            string sql = string.Format(@"/*dialect*/exec 提料计划报表 '{0}','{1}'", tableName, Filter.Trim());
            DBUtils.ExecuteDynamicObject(this.Context, sql);
        }
        ////获取过滤条件
        private string GetFilterWhere(IRptParams filter)
@@ -160,7 +191,7 @@
            string startValue = (customFilter["FBeginConveyDate"] == null) ? string.Empty : Convert.ToDateTime(customFilter["FBeginConveyDate"]).ToString("yyyy/MM/d");
            string endValue = (customFilter["FEndConveyDate"] == null) ? string.Empty : Convert.ToDateTime(customFilter["FEndConveyDate"]).ToString("yyyy/MM/d");
            strwhere.AppendLine(string.Format(" AND FHDate>=''{0}'' and FHDate<=''{1}'' ", startValue, endValue));
            date = string.Format("  FHDate>=''{0}'' and FHDate<=''{1}'' ", startValue, endValue);
            date = string.Format("  FHDate>='{0}' and FHDate<='{1}' ", startValue, endValue);
            //物料
            var baseDataNameValue = customFilter["FMATERIALID"];
            string MaterailName = baseDataNameValue == null