Exemplo n.º 1
0
        public ActionResult GetProFilesList(Pagination pagination, string queryJson)
        {
            pagination.p_kid       = "t.ID";
            pagination.p_fields    = @"e.departmentid,t.engineername,e.fullname,t.planenddate,t.actualenddate,t.createuserorgcode";
            pagination.p_tablename = @" epg_outsouringengineer t left join base_department e on t.outprojectid=e.departmentid";
            Operator user = ERCHTMS.Code.OperatorProvider.Provider.Current();
            string   role = user.RoleName;

            if (!user.IsSystem)
            {
                pagination.conditionJson = " t.isdeptadd=1 ";
                if (role.Contains("省级"))
                {
                    pagination.conditionJson += string.Format(@" and t.createuserorgcode  in (select encode
                from BASE_DEPARTMENT d
                        where d.deptcode like '{0}%' and d.nature = '厂级' and d.description is null)", user.NewDeptCode);
                }
                else if (role.Contains("公司级用户") || role.Contains("厂级部门用户"))
                {
                    pagination.conditionJson += string.Format(" and t.createuserorgcode  = '{0}'", user.OrganizeCode);
                }
                else if (role.Contains("承包商级用户") || role.Contains("分包商级用户"))
                {
                    pagination.conditionJson += string.Format(" and (t.outprojectid ='{0}' or t.supervisorid='{0}')", user.DeptId);
                }
                else
                {
                    var deptentity = departmentbll.GetEntity(user.DeptId);
                    while (deptentity.Nature == "班组" || deptentity.Nature == "专业")
                    {
                        deptentity = departmentbll.GetEntity(deptentity.ParentId);
                    }
                    pagination.conditionJson += string.Format(" and t.engineerletdeptid in (select departmentid from base_department where encode like '{0}%')", deptentity.EnCode);
                }
            }
            else
            {
                pagination.conditionJson = " 1=1 ";
            }
            var queryParam = queryJson.ToJObject();

            //查询条件
            if (!queryParam["txtSearch"].IsEmpty())
            {
                pagination.conditionJson += string.Format(" and (t.engineername like '%{0}%'  or e.fullname like'%{1}%')", queryParam["txtSearch"].ToString(), queryParam["txtSearch"].ToString());
            }
            var watch    = CommonHelper.TimerStart();
            var data     = protocolbll.GetProFilesList(pagination, queryJson);
            var jsonData = new
            {
                rows     = data,
                total    = pagination.total,
                page     = pagination.page,
                records  = pagination.records,
                costtime = CommonHelper.TimerEnd(watch)
            };

            return(ToJsonResult(jsonData));
        }