Ejemplo n.º 1
0
        public Tuple <DataTable, DataTable> GetProgressForm(OrderProgressRequest request)
        {
            DataTable dt1 = GetScProgress(request);
            DataTable dt2 = GetDdProgress(request);

            return(new Tuple <DataTable, DataTable>(dt1, dt2));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 获取生产进度展示报表数据
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public DataTable GetScProgress(OrderProgressRequest request)
        {
            StringBuilder sbSiteCode = new StringBuilder();
            string        sqlChilde  = "";
            string        sqlwhere   = "";

            if (!string.IsNullOrWhiteSpace(request.TypeName))
            {
                sqlwhere += " and op.TypeName like '%" + request.TypeName + "%' ";
            }
            if (!string.IsNullOrWhiteSpace(request.OrderCode))
            {
                sqlwhere += " and op.OrderCode like '%" + request.OrderCode + "%' ";
            }
            if (request.HistoryMonth.HasValue)
            {
                string InsertTime = Convert.ToDateTime(request.HistoryMonth).ToString("yyyy-MM");
                sqlwhere += " and CONVERT(VARCHAR(7),op.InsertTime,120)='" + InsertTime + "'";
            }
            #region 数据权限

            if (!string.IsNullOrWhiteSpace(request.ProcessFactoryCode))
            {
                sqlwhere += "and ProcessFactoryCode='" + request.ProcessFactoryCode + "'";
            }
            if (!string.IsNullOrWhiteSpace(request.ProjectId))
            {
                sqlwhere += "and ProjectId='" + request.ProjectId + "'";
            }
            if (!string.IsNullOrWhiteSpace(request.SiteCode))
            {
                List <string> SiteList = orderProLogic.GetCompanyWorkAreaOrSiteList(request.SiteCode, 5);
                for (int i = 0; i < SiteList.Count; i++)
                {
                    if (i == (SiteList.Count - 1))
                    {
                        sbSiteCode.Append("'" + SiteList[i] + "'");
                    }
                    else
                    {
                        sbSiteCode.Append("'" + SiteList[i] + "',");
                    }
                }
                if (SiteList.Count > 0)
                {
                    sqlwhere += " and SiteCode in(" + sbSiteCode + ")";
                }
            }

            #endregion

            sqlChilde = @"select op.SiteCode,cp.CompanyFullName as SiteName,op.ProcessFactoryCode,SUM(op.WeightTotal) as SumWeightTotal,SUM(AccumulativeQuantity) as JgWcWeightTotal,(SUM(op.WeightTotal)-SUM(AccumulativeQuantity)) as JgWwcWeightTotal from TbOrderProgress op
                              left join TbCompany cp on op.SiteCode=cp.CompanyCode
                              where 1=1 " + sqlwhere + @"
                              group by op.SiteCode,cp.CompanyFullName,op.ProcessFactoryCode order by op.SiteCode asc";
            var dt = Db.Context.FromSql(sqlChilde).ToDataTable();
            return(dt);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 获取数据列表(分页)
        /// </summary>
        public PageModel GetDataListForPage(OrderProgressRequest request)
        {
            //组装查询语句
            #region 模糊搜索条件

            var where = new Where <TbOrderProgress>();

            if (!string.IsNullOrWhiteSpace(request.TypeName))
            {
                where.And(p => p.TypeName.Like(request.TypeName));
            }
            if (!string.IsNullOrWhiteSpace(request.OrderCode))
            {
                where.And(p => p.OrderCode.Like(request.OrderCode));
            }
            if (!string.IsNullOrWhiteSpace(request.ReportedStatus))
            {
                where.And(p => p.ReportedStatus == request.ReportedStatus);
            }
            if (!string.IsNullOrWhiteSpace(request.ProcessingState))
            {
                where.And(p => p.ProcessingState == request.ProcessingState);
            }
            if (request.HistoryMonth.HasValue)
            {
                var historyMonth = new WhereClip("YEAR(TbOrderProgress.InsertTime)=" + request.HistoryMonth.Value.Year + " and MONTH(TbOrderProgress.InsertTime)=" + request.HistoryMonth.Value.Month);
                where.And(historyMonth);
            }
            if (!string.IsNullOrWhiteSpace(request.ProgressType))
            {
                if (request.ProgressType == "进度正常")
                {
                    var progressType = new WhereClip("(TbOrderProgress.FinishProcessingDateTime is not null and CONVERT(varchar(100),TbOrderProgress.FinishProcessingDateTime,23)=CONVERT(varchar(100),TbOrderProgress.DistributionTime,23)) or (TbOrderProgress.FinishProcessingDateTime is null and CONVERT(varchar(100),TbOrderProgress.DistributionTime,23)>=CONVERT(varchar(100),GETDATE(),23))");
                    where.And(progressType);
                }
                else if (request.ProgressType == "进度超前")
                {
                    var progressType = new WhereClip("(TbOrderProgress.FinishProcessingDateTime is not null and CONVERT(varchar(100),TbOrderProgress.FinishProcessingDateTime,23)<CONVERT(varchar(100),TbOrderProgress.DistributionTime,23))");
                    where.And(progressType);
                }
                else if (request.ProgressType == "进度滞后")
                {
                    var progressType = new WhereClip("(TbOrderProgress.FinishProcessingDateTime is not null and (CONVERT(varchar(100),TbOrderProgress.FinishProcessingDateTime,23)>CONVERT(varchar(100),TbOrderProgress.DistributionTime,23)) or (TbOrderProgress.FinishProcessingDateTime is null and CONVERT(varchar(100),TbOrderProgress.DistributionTime,23)<CONVERT(varchar(100),GETDATE(),23)))");
                    where.And(progressType);
                }
            }
            #endregion

            #region 数据权限新

            if (!string.IsNullOrWhiteSpace(request.ProcessFactoryCode))
            {
                where.And(p => p.ProcessFactoryCode == request.ProcessFactoryCode);
            }
            if (!string.IsNullOrWhiteSpace(request.ProjectId))
            {
                where.And(p => p.ProjectId == request.ProjectId);
            }
            if (!string.IsNullOrWhiteSpace(request.SiteCode))
            {
                List <string> SiteList = orderProLogic.GetCompanyWorkAreaOrSiteList(request.SiteCode, 5);
                if (SiteList.Count > 0)
                {
                    where.And(p => p.SiteCode.In(SiteList));
                }
            }

            #endregion

            try
            {
                var ret = Db.Context.From <TbOrderProgress>()
                          .Select(
                    TbOrderProgress._.All
                    , TbCompany._.CompanyFullName.As("SiteName")
                    , TbSysDictionaryData._.DictionaryText.As("ProcessingStateNew")
                    , TbUser._.UserName)
                          .LeftJoin <TbCompany>((a, c) => a.SiteCode == c.CompanyCode)
                          .AddSelect(Db.Context.From <TbCompany>().Select(p => p.CompanyFullName)
                                     .Where(TbCompany._.CompanyCode == TbOrderProgress._.ProcessFactoryCode), "ProcessFactoryName")
                          .AddSelect(Db.Context.From <TbSysDictionaryData>().Select(p => p.DictionaryText)
                                     .Where(TbSysDictionaryData._.DictionaryCode == TbOrderProgress._.UrgentDegree && TbSysDictionaryData._.FDictionaryCode == "UrgentDegree"), "UrgentDegreeNew")
                          .LeftJoin <TbSysDictionaryData>((a, c) => a.ProcessingState == c.DictionaryCode && c.FDictionaryCode == "ProcessingState")
                          .LeftJoin <TbUser>((a, c) => a.InsertUserCode == c.UserCode)
                          .Where(where).OrderByDescending(d => d.OrderCode).ToPageList(request.rows, request.page);
                return(ret);
            }
            catch (Exception)
            {
                throw;
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 导出
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public DataTable GetExportList(OrderProgressRequest request)
        {
            //组装查询语句
            #region 模糊搜索条件

            var where = new Where <TbOrderProgress>();

            if (!string.IsNullOrWhiteSpace(request.TypeName))
            {
                where.And(p => p.TypeName.Like(request.TypeName));
            }
            if (!string.IsNullOrWhiteSpace(request.OrderCode))
            {
                where.And(p => p.OrderCode.Like(request.OrderCode));
            }
            if (!string.IsNullOrWhiteSpace(request.ReportedStatus))
            {
                where.And(p => p.ReportedStatus == request.ReportedStatus);
            }
            if (!string.IsNullOrWhiteSpace(request.ProcessingState))
            {
                where.And(p => p.ProcessingState == request.ProcessingState);
            }
            if (request.HistoryMonth.HasValue)
            {
                var historyMonth = new WhereClip("YEAR(TbOrderProgress.InsertTime)=" + request.HistoryMonth.Value.Year + " and MONTH(TbOrderProgress.InsertTime)=" + request.HistoryMonth.Value.Month);
                where.And(historyMonth);
            }
            #endregion

            #region 数据权限新

            if (!string.IsNullOrWhiteSpace(request.ProcessFactoryCode))
            {
                where.And(p => p.ProcessFactoryCode == request.ProcessFactoryCode);
            }
            if (!string.IsNullOrWhiteSpace(request.ProjectId))
            {
                where.And(p => p.ProjectId == request.ProjectId);
            }
            if (!string.IsNullOrWhiteSpace(request.SiteCode))
            {
                List <string> SiteList = orderProLogic.GetCompanyWorkAreaOrSiteList(request.SiteCode, 5);
                if (SiteList.Count > 0)
                {
                    where.And(p => p.SiteCode.In(SiteList));
                }
            }

            #endregion

            try
            {
                var ret = Db.Context.From <TbOrderProgress>()
                          .Select(
                    TbOrderProgress._.All
                    , TbCompany._.CompanyFullName.As("SiteName")
                    , TbSysDictionaryData._.DictionaryText.As("ProcessingStateNew")
                    , TbUser._.UserName)
                          .LeftJoin <TbCompany>((a, c) => a.SiteCode == c.CompanyCode)
                          .AddSelect(Db.Context.From <TbCompany>().Select(p => p.CompanyFullName)
                                     .Where(TbCompany._.CompanyCode == TbOrderProgress._.ProcessFactoryCode), "ProcessFactoryName")
                          .AddSelect(Db.Context.From <TbSysDictionaryData>().Select(p => p.DictionaryText)
                                     .Where(TbSysDictionaryData._.DictionaryCode == TbOrderProgress._.UrgentDegree && TbSysDictionaryData._.FDictionaryCode == "UrgentDegree"), "UrgentDegreeNew")
                          .LeftJoin <TbSysDictionaryData>((a, c) => a.ProcessingState == c.DictionaryCode && c.FDictionaryCode == "ProcessingState")
                          .LeftJoin <TbUser>((a, c) => a.InsertUserCode == c.UserCode)
                          .Where(where).OrderByDescending(d => d.OrderCode).ToDataTable();
                return(ret);
            }
            catch (Exception)
            {
                throw;
            }
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 获取当前登录人的组织机构下所有的下级站点/
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public List <string> GetSiteCodList(OrderProgressRequest request)
        {
            List <string> SiteList = new List <string>();

            #region 数据权限新

            bool Flog = OperatorProvider.Provider.CurrentUser == null;
            if (!Flog)
            {
                int    orgType   = Convert.ToInt32(OperatorProvider.Provider.CurrentUser.OrgType);
                string CompanyId = OperatorProvider.Provider.CurrentUser.CompanyId;
                SiteList = orderProLogic.GetCompanyWorkAreaOrSiteList(CompanyId, 5);                                //加载当前登录的组织机构下所有的站点
                if (!string.IsNullOrWhiteSpace(request.OrgType) && !string.IsNullOrWhiteSpace(request.CompanyCode)) //选择左侧组织机构
                {
                    SiteList.Clear();                                                                               //清空SiteList的集合
                    //第一步判断当前登录账号的,下级组织机构
                    if (orgType == 2)                                                                               //经理部
                    {
                        //第二步判断当前点击的组织机构类型
                        if (request.OrgType == "3" || request.OrgType == "4" || request.OrgType == "5")//这个人就可以加载任意分部工区下的站点数据
                        {
                            SiteList = orderProLogic.GetCompanyWorkAreaOrSiteList(request.CompanyCode, 5);
                        }
                        else
                        {
                            SiteList = orderProLogic.GetCompanyWorkAreaOrSiteList(CompanyId, 5);
                        }
                    }
                    else if (orgType == 3)                                    //分部
                    {
                        if (request.OrgType == "4" || request.OrgType == "5") //这个人只能加载该分部下的所有所以工区下的所有站点数据
                        {
                            //第三步判断当前点击的组织机构类型是不是属于当前登录账号的下级
                            List <string> a = orderProLogic.GetCompanyAllChild(CompanyId);
                            if (a.Contains(request.CompanyCode))
                            {
                                SiteList = orderProLogic.GetCompanyWorkAreaOrSiteList(request.CompanyCode, 5);
                            }
                            else
                            {
                                SiteList = orderProLogic.GetCompanyWorkAreaOrSiteList(CompanyId, 5);
                            }
                        }
                        else
                        {
                            SiteList = orderProLogic.GetCompanyWorkAreaOrSiteList(CompanyId, 5);
                        }
                    }
                    else if (orgType == 4)          //工区
                    {
                        if (request.OrgType == "5") //这个人只能加载这个工区下的站点数据
                        {
                            //第三步判断当前点击的组织机构类型是不是属于当前登录账号的下级
                            List <string> a = orderProLogic.GetCompanyAllChild(CompanyId);
                            if (a.Contains(request.CompanyCode))
                            {
                                SiteList = orderProLogic.GetCompanyWorkAreaOrSiteList(request.CompanyCode, 5);
                            }
                            else
                            {
                                SiteList = orderProLogic.GetCompanyWorkAreaOrSiteList(CompanyId, 5);
                            }
                        }
                        else
                        {
                            SiteList = orderProLogic.GetCompanyWorkAreaOrSiteList(CompanyId, 5);
                        }
                    }
                    else if (orgType == 5)                                                   //站点
                    {
                        SiteList = orderProLogic.GetCompanyWorkAreaOrSiteList(CompanyId, 5); //这个人只能加载该站点下的数据
                    }
                    else if (orgType == 1)                                                   //加工厂
                    {
                    }
                }
            }

            #endregion

            return(SiteList);
        }
Ejemplo n.º 6
0
        public DataTable GetDdProgress(OrderProgressRequest request)
        {
            try
            {
                string where = "";

                #region 查询条件

                if (!string.IsNullOrWhiteSpace(request.TypeName))
                {
                    where += " and a.TypeName like '%" + request.TypeName + "%' ";
                }
                if (!string.IsNullOrWhiteSpace(request.OrderCode))
                {
                    where += " and a.OrderCode like '%" + request.OrderCode + "%' ";
                }

                if (!string.IsNullOrWhiteSpace(request.ProjectId))
                {
                    where += " and a.ProjectId='" + request.ProjectId + "'";
                }
                if (!string.IsNullOrWhiteSpace(request.ProcessFactoryCode))
                {
                    where += " and a.ProcessFactoryCode='" + request.ProcessFactoryCode + "'";
                }
                if (!string.IsNullOrWhiteSpace(request.SiteCode))
                {
                    List <string> SiteList   = orderProLogic.GetCompanyWorkAreaOrSiteList(request.SiteCode, 5);
                    StringBuilder sbSiteCode = new StringBuilder();
                    for (int i = 0; i < SiteList.Count; i++)
                    {
                        if (i == (SiteList.Count - 1))
                        {
                            sbSiteCode.Append("'" + SiteList[i] + "'");
                        }
                        else
                        {
                            sbSiteCode.Append("'" + SiteList[i] + "',");
                        }
                    }
                    if (SiteList.Count > 0)
                    {
                        where += " and a.SiteCode in(" + sbSiteCode + ")";
                    }
                }
                if (request.HistoryMonth.HasValue)
                {
                    string InsertTimeMonth = Convert.ToDateTime(request.HistoryMonth).ToString("yyyy-MM");
                    where += " and CONVERT(VARCHAR(7),a.InsertTime,120)='" + InsertTimeMonth + "'";
                }

                #endregion

                string    sql = @"select TbProgressType.ProgressType,ISNULL(TbProgress.WeightTotal, 0) as JdCount from (select '进度正常' as ProgressType
union all
select '进度超前' as ProgressType
union all
select '进度滞后' as ProgressType) TbProgressType
left join (select sum(a.WeightTotal) as WeightTotal,'进度超前' as  ProgressType from TbOrderProgress a
where 1=1 " + where + @" and (a.FinishProcessingDateTime is not null and CONVERT(varchar(100),a.FinishProcessingDateTime,23)<CONVERT(varchar(100),a.DistributionTime,23)) 
union all
select sum(a.WeightTotal) as WeightTotal,'进度正常' as  ProgressType from TbOrderProgress a
where 1=1 " + where + @" and (a.FinishProcessingDateTime is not null and CONVERT(varchar(100),a.FinishProcessingDateTime,23)=CONVERT(varchar(100),a.DistributionTime,23)) 
or (a.FinishProcessingDateTime is null and CONVERT(varchar(100),a.DistributionTime,23)>=CONVERT(varchar(100),GETDATE(),23))
union all
select sum(b.WeightSmallPlan) as WeightTotal,'进度滞后' as  ProgressType from TbOrderProgress a
left join TbOrderProgressDetail b on a.OrderCode=b.OrderCode
where 1=1 " + where + @" and (a.FinishProcessingDateTime is not null and (CONVERT(varchar(100),a.FinishProcessingDateTime,23)>CONVERT(varchar(100),a.DistributionTime,23)) 
or (a.FinishProcessingDateTime is null and CONVERT(varchar(100),a.DistributionTime,23)<CONVERT(varchar(100),GETDATE(),23)))) TbProgress on TbProgressType.ProgressType=TbProgress.ProgressType ";
                DataTable dt  = Db.Context.FromSql(sql).ToDataTable();
                return(dt);
            }
            catch (Exception ex)
            {
                throw;
            }
        }
Ejemplo n.º 7
0
        /// <summary>
        /// 加载报表数据
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public ActionResult GetProgressForm(OrderProgressRequest request)
        {
            var data = _orderProLogic.GetProgressForm(request);

            return(Content(data.ToJson()));
        }
Ejemplo n.º 8
0
        /// <summary>
        /// 获取分页列表数据
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public ActionResult GetGridJson(OrderProgressRequest request)
        {
            var data = _orderProLogic.GetDataListForPage(request);

            return(Content(data.ToJson()));
        }